If your scheduled posts aren’t publishing, WooCommerce orders aren’t updating, or critical background tasks have stopped running, this is not something to delay. Cron issues can silently break your site’s core functionality. Get instant expert help with our Emergency WordPress Support and have your cron jobs diagnosed and fixed by WordPress professionals — fast, safely, and without downtime.
WordPress cron jobs are one of those “invisible” systems that most site owners don’t think about—until they stop working.
If scheduled posts aren’t publishing, WooCommerce orders aren’t updating, backups aren’t running, or emails are delayed, there’s a very high chance WordPress cron jobs are failing silently.
And here’s the worst part:
WordPress often doesn’t tell you when cron jobs break.
In this in-depth guide, you’ll learn exactly why WordPress cron jobs stop working, how to diagnose the issue, and step-by-step methods to fix WordPress cron jobs permanently—even on low-traffic or shared hosting sites. In some setups, disabling WP-Cron without properly configuring a server cron can cause cron jobs to run twice, leading to serious performance and WooCommerce issues. If you suspect duplicate executions, see our complete guide on fixing WordPress cron jobs running twice.
This is not a surface-level tutorial. We’ll go deep enough to help you fix cron issues once and for all.
What Are WordPress Cron Jobs?
A cron job is a scheduled task that runs automatically at specific intervals.
In WordPress, cron jobs handle tasks like:
-
Publishing scheduled posts
-
Checking for plugin and theme updates
-
Sending scheduled emails
-
Running WooCommerce actions (subscriptions, abandoned carts, order cleanups)
-
Clearing transients and caches
-
Executing plugin-specific background tasks
However, WordPress does not use a real system cron by default.
Instead, it uses WP-Cron, a pseudo-cron system that depends on site visits.
How WP-Cron Actually Works (Important)
WP-Cron runs only when someone visits your website.
When a visitor loads any page, WordPress checks:
-
Are there any scheduled tasks that are due?
-
If yes, run them in the background.
This design works fine for high-traffic websites.
But for low-traffic sites, membership portals, staging environments, or admin-only sites, it often fails.
That’s why WordPress cron jobs are one of the most common silent failures.
Common Symptoms of WordPress Cron Jobs Not Working
You might be dealing with broken cron jobs if you notice:
-
Scheduled posts stuck on “Scheduled” and never publishing
-
WooCommerce subscriptions not renewing
-
Backup plugins not creating backups
-
Delayed or missing emails
-
Plugin updates failing to run automatically
-
Logs showing “missed schedule” errors
-
Performance issues due to stacked cron events
If any of these sound familiar, keep reading.
Why WordPress Cron Jobs Stop Working
Let’s break down the real reasons WP-Cron fails.
1. Low or No Traffic
Since WP-Cron relies on page visits, low-traffic websites often don’t trigger scheduled events.
This is the number one cause.
2. wp-config.php Blocking Cron
Some hosting environments or developers disable WP-Cron intentionally using:
If this exists and no real cron job is configured, nothing runs.
3. Server-Level Restrictions
Some hosts block:
-
Loopback requests
-
Background HTTP calls
-
PHP execution time
WP-Cron relies on loopback requests, and if they’re blocked, cron fails.
4. Plugin Conflicts
Poorly coded plugins can:
-
Register cron events incorrectly
-
Flood cron with excessive tasks
-
Cause fatal errors that halt execution
5. Stuck or Corrupted Cron Events
Over time, failed cron jobs can stack up, causing:
-
Database bloat
-
Performance issues
-
New cron events never running
6. REST API or Loopback Errors
WP-Cron internally uses WordPress loopback requests.
If REST API or loopbacks fail, cron jobs fail too.
How to Check If WordPress Cron Jobs Are Working
Before fixing anything, confirm the problem.
Method 1: Use WP Crontrol Plugin
-
Install WP Crontrol
-
Go to Tools → Cron Events
-
Look for:
-
Missed schedules
-
Events stuck in the past
-
Errors or warnings
-
If you see repeated “missed schedule” entries, cron is broken.
Method 2: Enable WordPress Debug Log
When WordPress cron jobs fail, errors often happen silently in the background with no visible warning. Enabling WordPress debug mode helps uncover fatal errors, REST API failures, or plugin conflicts that are blocking cron execution.
For a step-by-step walkthrough, follow this guide:
How to Enable WordPress Debug Mode to Find Errors
Add this to wp-config.php:
Check /wp-content/debug.log for cron-related errors.
Method 3: Check Site Health
Go to Tools → Site Health.
If you see warnings like:
-
“Loopback requests are failing”
-
“REST API encountered an error”
These directly impact WP-Cron.
Fix #1: Enable WordPress Cron (If Disabled)
Open wp-config.php and look for:
If found, comment it out or remove it:
Save and test again.
If your site has good traffic, this alone may fix the issue.
Fix #2: Replace WP-Cron with a Real Server Cron (Recommended)
This is the most reliable and professional solution.
Step 1: Disable WP-Cron
Add this to wp-config.php:
Step 2: Create a Server Cron Job
Using cPanel
-
Open Cron Jobs
-
Add a new cron job
-
Set interval to every 5 minutes
-
Use this command:
OR (preferred):
Replace paths accordingly.
Why This Works Better
-
Runs on time
-
Independent of visitors
-
Faster execution
-
No missed schedules
This alone fixes 90% of cron issues.
Fix #3: Fix Loopback and REST API Errors
If Site Health reports loopback issues:
Common Fixes
-
Ask your host to allow loopback requests
-
Whitelist
wp-cron.php -
Disable aggressive firewalls temporarily
-
Check
.htaccessfor blocking rules
Example .htaccess fix:
Fix #4: Clean Up Broken or Stuck Cron Jobs
Overloaded cron tables can stop execution.
Using WP Crontrol
-
Delete old or duplicate cron events
-
Remove plugin-related events for plugins you no longer use
Using WP-CLI
This reduces execution load.
Fix #5: Identify Plugin Conflicts
To isolate the issue:
-
Disable all plugins
-
Test cron functionality
-
Enable plugins one by one
Plugins commonly causing issues:
-
Backup plugins
-
Email schedulers
-
Poorly coded WooCommerce extensions
If a broken plugin is preventing WordPress cron jobs from running — or has locked you out of the admin dashboard entirely — you can still disable plugins safely without logging in.
We’ve covered multiple proven methods (FTP, File Manager, database) in this guide:
Fix #6: Increase PHP Limits
If your WordPress cron jobs start but fail midway, or scheduled tasks never complete, insufficient PHP memory is often the hidden cause. When WordPress runs out of memory, background processes like WP-Cron and WooCommerce scheduled actions can stop silently.
If you’re seeing fatal errors related to memory limits, follow this complete fix:
How to Fix the “Allowed Memory Size Exhausted” Error in WordPress Low PHP limits can interrupt cron execution.
Recommended values:
Add to php.ini or ask your host.
Fix #7: Fix Scheduled Posts Not Publishing
If scheduled posts fail specifically:
Quick Fix
Edit wp-config.php:
Reduce overhead and clean cron queues.
WooCommerce Cron Jobs Not Working – Special Fixes
WooCommerce relies heavily on cron.
Common failures include:
-
Subscription renewals
-
Cart cleanup
-
Order status updates
Fix WooCommerce Action Scheduler
WooCommerce uses Action Scheduler.
Go to:
WooCommerce → Status → Scheduled Actions
-
Look for failed actions
-
Run pending actions manually
-
Clean completed actions
Or via WP-CLI:
Best Practices to Prevent Cron Issues
-
Always use a real server cron
-
Monitor Site Health monthly
-
Remove unused plugins
-
Avoid low-quality plugins
-
Keep WordPress updated
-
Check cron events quarterly
When to Contact Hosting Support
Contact your host if:
-
Loopback requests are blocked
-
Cron jobs are disabled at server level
-
PHP CLI is unavailable
-
Firewall rules block wp-cron.php
Ask them specifically about:
“Loopback requests and cron execution for WordPress.”
Final Thoughts
WordPress cron jobs are powerful—but fragile if misconfigured.
If your site depends on:
-
Scheduled posts
-
WooCommerce automation
-
Email delivery
-
Backups
Then fixing cron jobs is not optional.
The most reliable solution is replacing WP-Cron with a real server cron job. Once configured correctly, cron problems almost never return.
If you want more deep WordPress fixes like this, bookmark WPThrill—where we fix WordPress problems the right way.
FAQs
Why are my WordPress cron jobs not running?
Because WP-Cron relies on site traffic, and low traffic or blocked loopback requests often prevent execution.
Is it safe to disable WP-Cron?
Yes, if you replace it with a real server cron job. This is actually recommended for performance and reliability.
How often should WordPress cron run?
Every 5 minutes is ideal for most sites. High-traffic or WooCommerce sites may need tighter intervals.
Can plugins break WordPress cron?
Yes. Poorly coded plugins can flood cron events or cause fatal errors that stop execution.
Does WooCommerce need cron jobs?
Absolutely. WooCommerce depends heavily on scheduled actions for core functionality.
How do I know if cron jobs are working?
Use WP Crontrol, Site Health, debug logs, or WP-CLI to verify execution.