WordPress · WP-Cron replacement

WordPress cron,
without the waiting.

WP-Cron only runs when someone visits your site. On a quiet site that means scheduled posts, emails and WooCommerce tasks run late, or not at all. CronEngine calls WordPress on a fixed schedule instead, whether anyone visits or not.

One line in wp-config.php Works on any host Free plan available

The problem

A post scheduled for 09:00.

WP-Cron does not run on a clock. It checks for due tasks when a page is loaded, so the timing depends on your visitors.

With WP-Cron

09:00

Post is due

Nobody is on the site, so nothing happens.

10:15

Still waiting

The post is late, and so is the email that goes with it.

11:42

First visitor arrives

Their page load finally triggers the task, and is a little slower for it.

With CronEngine

09:00

CronEngine calls WordPress

Right on schedule, whether anyone is on the site or not.

09:00

Post goes live

The post and its email go out on time.

09:00

The run is recorded

Status and time are in your history. If it failed, you would already know.

Depends on traffic

No visit, no run. Quiet sites suffer most.

Never quite on time

A 09:00 task runs whenever the next page load happens.

Slows down visitors

The task rides along on someone’s page request.

No history, no alerts

WordPress does not show what ran, or tell you when it failed.

The solution

Three steps, about five minutes.

Set up the new schedule first and check that it works. Only then switch off the old one, so no task is ever left without a trigger.

1

Create a job that calls wp-cron.php

In CronEngine, add a job with this address. Press Test in the form, and you should get an answer of 200 from WordPress.

URL

https://yoursite.com/wp-cron.php?doing_wp_cron

Schedule

Every 5 minutes from the Starter plan, every 15 minutes on Free.

2

Switch off the built-in WP-Cron

Add this line to wp-config.php, above the line that says /* That's all, stop editing! */. Page loads stop starting tasks, and CronEngine takes over.

wp-config.php PHP
// WordPress tasks are now started by CronEngine.
define( 'DISABLE_WP_CRON', true );
3

Check the run history

After a few runs you should see a row of 200 answers. A 4xx usually means the address is wrong or a firewall blocks it. A 5xx means a WordPress task ran into an error, and the stored reply may say which one.

Prefer a server crontab or your hosting panel, or running a multisite network? Read the full guide →

What gets fixed

Everything that runs through WP‑Cron.

Scheduled posts

Posts and pages go live at the time you set, not when traffic picks up.

WooCommerce tasks

Background work such as order follow-ups, stock updates and cleanups stops piling up.

Emails and newsletters

Email plugins that send through WP-Cron go out on the schedule you configured.

Backups and security scans

Scheduled backups from plugins such as UpdraftPlus and scans from plugins such as Wordfence run on time.

Database cleanup

Expired transients and other housekeeping happen on schedule, keeping the database lean.

Reports and stats

Nightly reports and statistics finish predictably, visitors or not.

Look after the whole site

Not just the cron.

The same account can watch the site itself and tell your visitors or clients how it is doing.

Know when the site is down

An uptime monitor checks your homepage and can require a word that only appears when the page really loaded, so a database error page counts as down.

Free plan includes 1 uptime monitor

Certificate warnings

Get an email before the site’s certificate runs out, at the countdowns you choose.

From the Starter plan

A status page for clients

Show clients or visitors how their site is doing, with your logo and colours, on your own address from Pro.

From the Starter plan

Full run history

Status, time and up to 10 KB of the WordPress reply for every call.

Failure alerts

Email, Slack, Discord, Telegram or webhook when a call fails.

Many sites, one dashboard

A map per site keeps every client and staging site apart.

Response time charts

Spot when a plugin update made your cron runs slower.

Firewall or security plugin blocking the call?

Every CronEngine request comes from 45.9.188.216. If you use Wordfence, Cloudflare or another firewall in front of your site, add that address to the allowlist so the call to wp-cron.php gets through.

FAQ

Common questions

Make WordPress run on time.

Set up in about five minutes. Free plan, no credit card.