o

HomeGuides › Contao

Setting up a Contao cronjob: calling _contao/cron from outside

Contao ships a dedicated address for scheduled tasks. This guide shows how to disable visitor-dependent execution and have the address triggered from outside every minute instead.

Why at all

The scheduler runs inside the visitor request

Without a cron from outside, Contao attaches its scheduled tasks to a visitor page view. They only run when somebody drops by, and they cost that visitor waiting time.

This affects, among other things, cleaning up expired sessions and previews, delivery from form and newsletter extensions, and clearing caches.

The Contao documentation names one limitation explicitly: only the tasks designed for this route run through the address. The back end search index, for example, is still only built by a real cron on the command line. For everything else the call from outside is the documented route.

URL to call
https://ihre-domain.de/_contao/cron
Recommended interval
every minute
Tested with
Contao 4.9 bis 5.x
Sufficient plan
Contao expects a one-minute interval, which requires at least Plus. On the free plan it runs every five minutes, coarser than intended.

Setup

Step by step

  1. Disable execution inside visitor requests (Contao 5)

    Add the following setting to config/config.yaml. The _contao/cron address is unaffected and stays reachable.

    contao:
        cron:
            web_listener: false
  2. On Contao 4 disable it in the back end instead

    In Contao 4 you find the setting under System, Settings, in the cron job settings section: disable the command scheduler there. Alternatively in the configuration.

    contao:
        localconfig:
            disableCron: true
  3. Check the address

    Open https://your-domain.com/_contao/cron in a browser. An empty response with no content is correct, technically status 204.

  4. Create the cronjob with a one-minute interval

    Create the cronjob at Cronjob.de and select all minutes in the schedule.

    * * * * *

Verification

Is it actually running?

The Cronjob.de call log shows status 204 and a very 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 are running with it, for example the delivery log of a newsletter.

FAQ

Common questions about Contao

Does the address need a key?
No. Contao provides no key for _contao/cron. The address only triggers execution and returns nothing.
Does everything really run this way?
No, and the Contao documentation says so too. Only the tasks designed for this route run through the outside call. The back end search index still needs a real cron on the server. For most installations that is not an obstacle.
Is the free plan enough?
It works, but it is coarser than intended. Contao assumes a one-minute interval, 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.

Create your cronjob now

Create an account, enter the address, click the schedule. Three cronjobs are free forever, the first 14 days run on the Unlimited plan.

Start for free See pricing

More guides

Official documentation of Contao

The details about Contao come from their own documentation, as of September 2026. Please check there whether anything has changed since.