Adzbyte
All Articles
TutorialsWordPress

WordPress Cron Jobs: Why They Are Unreliable and How to Fix Them

Adrian Saycon
Adrian Saycon
January 23, 20261 min read
WordPress Cron Jobs: Why They Are Unreliable and How to Fix Them

WordPress has a built-in task scheduler called WP-Cron. Unlike real system cron jobs, WP-Cron only fires when someone visits your site. On a low-traffic site, your “hourly” task might not run for days.

How WP-Cron Actually Works

Every page load, WordPress checks if any scheduled tasks are overdue. If they are, it fires an async request to wp-cron.php to process them. This means:

  • No traffic = no cron execution
  • High traffic = unnecessary checks on every request
  • The visitor who triggers cron gets a slightly slower page load

The Fix: Real System Cron

Disable WP-Cron and use a real cron job instead:

// In wp-config.php
define("DISABLE_WP_CRON", true);

Then add a system cron job that hits wp-cron.php on a schedule:

# Run WordPress cron every 5 minutes
*/5 * * * * curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Or better yet, use WP-CLI:

*/5 * * * * cd /var/www/html && wp cron event run --due-now > /dev/null 2>&1

When This Matters

If your site relies on scheduled tasks — publishing scheduled posts, sending email digests, clearing transient caches, or processing WooCommerce orders — WP-Cron is a ticking time bomb. Switch to real cron and your scheduled tasks will actually run when they are supposed to.

Adrian Saycon

Written by

Adrian Saycon

A developer with a passion for emerging technologies, Adrian Saycon focuses on transforming the latest tech trends into great, functional products.

Discussion (0)

Sign in to join the discussion

No comments yet. Be the first to share your thoughts.