TL;DR
- WP-Cron only runs when someone visits your site.
- Disable WP-Cron and add a real server cron for consistent schedules.
- Use WP-CLI when possible for reliable task execution.
Why WP-Cron Is Unreliable
WP-Cron triggers only on page loads. On low-traffic sites, scheduled events can be delayed for hours. On high-traffic sites, it can run too often and increase server load.
A real server cron job gives you predictable scheduling and better performance.
Disable WP-Cron Safely
Add define( 'DISABLE_WP_CRON', true ); to wp-config.php.
Generate the exact snippet and cron command with the WP-Cron Disable Helper.
Add a Real Server Cron Job
- Use
wp cron event run --due-nowif WP-CLI is available. - Otherwise, call
/wp-cron.phpvia curl. - Schedule every 5–10 minutes for most sites.
Monitoring & Common Pitfalls
- Make sure the server cron runs under the correct user.
- Verify logs for failed events or stuck jobs.
- Adjust schedule for high-volume WooCommerce or membership sites.
Use the Server Log Analyzer to catch cron errors and timeouts.
Frequently Asked Questions
Will disabling WP-Cron break my site?
Not if you add a real server cron. Scheduled tasks will still run on time.
How often should I run the cron job?
Every 5 minutes is a common default. High-traffic sites can go shorter if needed.
Is WP-CLI required?
No. WP-CLI is recommended but not required. You can call wp-cron.php with curl instead.
Should I keep WP-Cron enabled on localhost?
It is fine for local development, but production sites should use a real cron.
Key Takeaways
- Disable WP-Cron and move to server cron for reliability.
- Use WP-CLI for cleaner execution when possible.
- Monitor logs to catch failed jobs early.
Generate your cron snippet instantly
Use the WP-Cron Disable Helper to create the exact config and cron line.