WP-Cron and scheduled tasks
Why the built-in scheduler misses jobs on a cached site, and how the platform runs it instead.
WordPress schedules work with WP-Cron, which only runs when someone visits the site. Behind a full-page cache, most visits never reach PHP, so scheduled jobs are skipped or delayed.
How we handle it
On every managed site, DISABLE_WP_CRON is set to true and a system cron calls the scheduler every five minutes. Jobs run on time whether or not anyone visits.
define( 'DISABLE_WP_CRON', true );See what is scheduled
wp cron event list
wp cron event run --due-now
wp cron testCommon problems
- A job never runs. Check it is registered at all with
wp cron event list; plugins often register hooks only on certain admin screens. - A job runs late. The scheduler fires every five minutes, so anything scheduled to the exact minute drifts by up to five.
- A job times out. Long imports should be broken into batches. Action Scheduler, which WooCommerce ships, does this correctly.
Need a shorter interval?
Open a ticket. We can run the scheduler every minute on a site that needs it, or add a dedicated cron entry for a specific command.
