CronPup

← Guides

WP-Cron not running? Monitor WordPress scheduled tasks

WordPress doesn't have a real scheduler. WP-Cron runs scheduled events when a page is loaded, so on a quiet site, "every hour" means "whenever someone visits". Behind full-page caching it may not run at all, which is why scheduled posts get "Missed schedule" and backup plugins go quiet.

Step 1: drive WP-Cron from a real cron

In wp-config.php:

define('DISABLE_WP_CRON', true);

Then on the server (or a host's cron panel), every 5 minutes:

*/5 * * * *  cd /var/www/site && wp cron event run --due-now --quiet && curl -fsS -m 10 https://cronpup.com/p/YOUR-UUID

Step 2: alert when it stops

Create a period monitor for every 5 minutes with 10 minutes of grace. If the server cron stops, WP-CLI breaks after an update, or the site's PHP fails, you hear about it within 15 minutes instead of when a reader asks why the newsletter didn't go out.

Backups get their own monitor

If a backup plugin runs on WP-Cron, give the backup its own monitor with a daily schedule, so "cron runs but the backup fails" is caught too. Monitor your site free.