With WP-Cron
Post is due
Nobody is on the site, so nothing happens.
Still waiting
The post is late, and so is the email that goes with it.
First visitor arrives
Their page load finally triggers the task, and is a little slower for it.
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.
The problem
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
Post is due
Nobody is on the site, so nothing happens.
Still waiting
The post is late, and so is the email that goes with it.
First visitor arrives
Their page load finally triggers the task, and is a little slower for it.
With CronEngine
CronEngine calls WordPress
Right on schedule, whether anyone is on the site or not.
Post goes live
The post and its email go out on time.
The run is recorded
Status and time are in your history. If it failed, you would already know.
No visit, no run. Quiet sites suffer most.
A 09:00 task runs whenever the next page load happens.
The task rides along on someone’s page request.
WordPress does not show what ran, or tell you when it failed.
The solution
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.
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
Schedule
Every 5 minutes from the Starter plan, every 15 minutes on Free.
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.
// WordPress tasks are now started by CronEngine.
define( 'DISABLE_WP_CRON', true );
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
Posts and pages go live at the time you set, not when traffic picks up.
Background work such as order follow-ups, stock updates and cleanups stops piling up.
Email plugins that send through WP-Cron go out on the schedule you configured.
Scheduled backups from plugins such as UpdraftPlus and scans from plugins such as Wordfence run on time.
Expired transients and other housekeeping happen on schedule, keeping the database lean.
Nightly reports and statistics finish predictably, visitors or not.
Look after the whole site
The same account can watch the site itself and tell your visitors or clients how it is doing.
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
Get an email before the site’s certificate runs out, at the countdowns you choose.
From the Starter plan
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
Set up in about five minutes. Free plan, no credit card.