Cronjob.de › Guides › Contao
Setting up a Contao cronjob: calling _contao/cron from outside
For a Contao cronjob without a command line, have the address https://your-domain.com/_contao/cron called by GET every minute and switch off execution on visitor requests. Contao answers with status 204 and works through the due tasks. At Cronjob.de you just enter the address and choose “every minute”.
Updated:
Why at all
The scheduler runs inside the visitor request
According to the Contao manual, cron jobs run by default whenever somebody visits the website. So they only run when somebody drops by, and the manual notes that this can hurt website performance. It recommends a single cron job every minute, after which Contao runs all registered tasks at their own intervals.
This mainly concerns cleanup work, according to the developer documentation for example expired comment subscriptions, registrations and opt-in tokens, plus the tasks of extensions.
The Contao documentation names one limitation explicitly: only the tasks meant for the web call run through _contao/cron. Indexing for the back end search and starting worker processes for asynchronous messaging (since Contao 5.3) only run through a real cron on the command line. The web call is also subject to PHP's time limit, typically 30 seconds according to the docs.
If you have no command line access or would rather not deal with crontab lines, use the address call. You do not need to program anything, and you do not need to book a hosting plan with cronjobs.
- URL to call
https://ihre-domain.de/_contao/cron- Recommended interval
- every minute
- Tested with
- Contao 4.9 bis 6.0
- Sufficient Cronjob.de plan
- Contao assumes a one-minute interval, which needs Cronjob.de Plus (€17.88 a year). On the free plan it runs every five minutes, coarser than intended.
Setup
Step by step
The AI does it faster
You do not have to transfer any of this by hand. Paste this guide – or the one for your own system – into the assistant, and Cronjob.de fills in address, method, schedule and headers. Where something is unclear it asks instead of guessing. At the end you see what was entered and create the job with one click.
Included in the free plan at no extra cost. You will find it after signing in under "Cronjobs" → "Create with AI".
-
Disable execution inside visitor requests (Contao 5 and 6)
Add the following setting to
config/config.yaml. The defaultautoonly switches off the visitor cron when Contao detects a cron on the command line, not when the address is called. Withfalsethe_contao/cronaddress stays reachable.contao: cron: web_listener: false -
On Contao 4 disable it in the back end
In Contao 4 you find the setting under
System › Settings › Cron job settings: enable “Disable the command scheduler”. Alternatively set it in the configuration.contao: localconfig: disableCron: true -
Check the address
Open
https://your-domain.com/_contao/cronin a browser. An empty response with no content is correct, technically status 204. -
Create the cronjob with a one-minute interval
Create a cronjob with this address at Cronjob.de and choose “every minute” in the schedule. Leave the method on GET: according to the source code Contao only runs the tasks on GET requests; a HEAD request also gets 204 but triggers nothing.
* * * * *
You can enter this expression at Cronjob.de exactly as it is – the schedule field understands crontab notation. But you do not have to know it: simply click the schedule together instead.
What the five fields of an expression like */5 * * * * mean is explained in the crontab reference – with examples and the most common pitfalls. You can build the expression in the crontab generator. Whether you need an outside service at all is shown in the comparison of the three ways.
Verification
Is it actually running?
The Cronjob.de call log shows status 204 and usually a short runtime for every run. That is the correct response, Contao deliberately returns no content here. Whether the tasks actually get done is best seen in the extension you run with it, for example the delivery log of a newsletter.
FAQ
Common questions about Contao
- How do I set up a cron job for Contao without a command line?
- Switch off the visitor cron (Contao 5 and 6:
web_listener: false, Contao 4: “Disable the command scheduler”) and havehttps://your-domain.com/_contao/croncalled by GET every minute, for example with Cronjob.de. - Does the _contao/cron address need a key?
- No. Contao provides no key for
_contao/cron. The address only triggers execution and returns no content. - Does everything really run through _contao/cron?
- No, and the Contao documentation says so too. Only the tasks meant for the web call run that way. Indexing for the back end search and the worker processes for asynchronous messaging still need a real cron on the server.
- Is the free plan enough for Contao?
- It works, but it is coarser than intended. Contao recommends a cron job every minute, the free plan calls every five minutes. For time-critical tasks such as newsletter delivery the one-minute interval from Plus is the right choice.
Cronjob.de
in the user agent. Ask your host for an exception for it; that is more reliable than allowing IP addresses, because ours can change. Addresses and details in the FAQ.
Other errors such as 401, 404 or 500 are explained in the troubleshooting guide.
Create your cronjob now
Create an account, enter the address, click the schedule. Five cronjobs are free forever, the first 14 days run on the Unlimited plan.
Start for free See pricingMore guides
- Webspace
- Windows
- WordPress
- Nextcloud
- Drupal
- Joomla
- All-Inkl (KAS)
- STRATO
- IONOS
- Matomo
- Dolibarr
- phpList
- SuperWebMailer
- Firefly III
- Host Europe
- Hetzner Webhosting
- Gambio
- Shopware
- JTL-Shop
- PrestaShop
- Moodle
- WooCommerce
- WP All Import
- Doofinder
- GitHub Actions
- MySQLDumper
Official documentation of Contao
The details about Contao come from their own documentation, as of October 2026. Please check there whether anything has changed since. Contao is a trademark of its respective owner. This guide comes from Cronjob.de and has no business relationship with that provider.
By Joscha Schultze, operator of Cronjob.de · Written with AI assistance, provider details checked against their official pages.