o

HomeGuides › WordPress

Setting up a WordPress cronjob: making WP-Cron reliable

WordPress ships its own scheduler called WP-Cron, but it is not a real cron. It only starts when somebody opens your site. This guide shows how to disable it and have it triggered from outside at a fixed interval instead.

Why at all

WP-Cron depends on your visitors

On every page view WordPress checks whether a scheduled task is due and internally triggers a call to wp-cron.php. If no visitor comes, nothing happens. On a low-traffic site a post scheduled for 8 a.m. therefore appears at noon, whenever somebody happens to drop by.

This affects everything WordPress and its plugins do in the background: scheduled posts, backups, emptying the trash, update checks, newsletter delivery, and with WooCommerce the Action Scheduler that advances order status and subscriptions.

At the other end there is the opposite problem. On a busy site the check runs on every single request and costs processing time for nothing. A fixed interval from outside solves both cases.

URL to call
https://ihre-domain.de/wp-cron.php
Recommended interval
every 5 minutes
Tested with
WordPress 5.x, 6.x
Sufficient plan
The free plan is enough. For WooCommerce shops the one-minute interval from Plus makes sense.

Setup

Step by step

  1. Disable WP-Cron in wp-config.php

    Open wp-config.php in the root directory of your WordPress installation and add the following line above the line saying "That’s all, stop editing".

    define( 'DISABLE_WP_CRON', true );
  2. Check that the address is reachable

    Open https://your-domain.com/wp-cron.php in a browser once. A blank white page is correct. An error message means the file is being blocked, usually by a security plugin or a rule in .htaccess.

  3. Create an account at Cronjob.de

    Registration takes a minute and is free. Three cronjobs stay free forever, the first 14 days run on the Unlimited plan.

  4. Create a cronjob with that address

    Enter the address and select minutes 0, 5, 10 and so on in the schedule. If you know crontab syntax, type the expression directly instead.

    */5 * * * *
  5. Switch on error notifications

    So that you notice when your site stops responding, enter an email address in the folder settings. You will then be notified when a call fails.

Verification

Is it actually running?

In the Cronjob.de call log you will see the first calls with status 200 and their runtime within a few minutes. Inside WordPress the free WP Crontrol plugin lists all scheduled events under Tools and when they last ran. Scheduling a test post for the next minute is the quickest check.

FAQ

Common questions about WordPress

Do I really have to disable WP-Cron?
No, but it makes sense. Without disabling it both run in parallel: the call from outside plus the check on every visit. Duplicate execution is unlikely thanks to a lock inside WordPress, but the load remains.
What happens if a call fails once?
Nothing is lost. WordPress remembers due tasks and catches up on the next successful call. A single missed call only delays execution.
Is the free plan enough?
For most sites yes. The free plan calls every five minutes, which is enough for scheduled posts, backups and update checks. For a WooCommerce shop we recommend the one-minute interval, because the Action Scheduler advances orders and subscriptions there.
Is calling more often than once a minute worth it?
No. WordPress sets a lock on start that holds for 60 seconds by default (WP_CRON_LOCK_TIMEOUT). A second call within that window is discarded. One minute is therefore the sensible lower limit.
My call ends with error 403 or 401.
Something is blocking access to wp-cron.php. Common causes are security plugins such as Wordfence, directory-level password protection, or a blocking rule in .htaccess. Exempt wp-cron.php there.
Does this work on a site behind maintenance mode?
Usually not, because maintenance mode intercepts every request. Many maintenance plugins let you exempt individual addresses. Add wp-cron.php there.

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 WordPress

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