WordPress Missed Scheduled Posts and Cron Issues

Notice Frequency: Common
Error message: Missed schedule

WordPress uses a pseudo-cron system (WP-Cron) that fires on page loads. Unlike a real server cron job that runs at fixed intervals, WP-Cron only runs when someone visits your site. On low-traffic sites, this means scheduled posts can be published late and maintenance tasks are missed.

Common Causes

  1. WP-Cron depends on site visits u2014 low-traffic sites miss scheduled events
  2. DISABLE_WP_CRON is set to true but no system cron is configured
  3. Caching plugin serving cached pages instead of triggering wp-cron.php
  4. Server blocking wp-cron.php requests (firewall or security plugin)
  5. Long-running cron tasks blocking subsequent executions

How to Fix It

  1. Set up a real system cron: Add define('DISABLE_WP_CRON', true); to wp-config.php, then add a system cron: */5 * * * * curl -s https://yourdomain.com/wp-cron.php > /dev/null 2>&1
  2. Use WP-CLI cron: */5 * * * * cd /path/to/wordpress && wp cron event run --due-now
  3. Check if wp-cron.php is accessible: curl -I https://yourdomain.com/wp-cron.php should return 200
  4. Manually trigger missed posts: Use WP-CLI wp post list --post_status=future --fields=ID,post_title to find and publish them

Frequently Asked Questions

Why are my WordPress scheduled posts not publishing on time?
WP-Cron only fires on page visits. If nobody visits your site around the scheduled time, the post won't publish until the next visit. Set up a real system cron job to fix this.
Should I disable WP-Cron?
On production sites, yes u2014 disable WP-Cron and use a real system cron instead. This is more reliable and prevents cron from adding latency to page loads.
Get WordPress Performance Tips

Plugin reviews, speed optimization guides, and error debugging — straight to your inbox.

No spam. Unsubscribe anytime. We respect your privacy.