Fix WP-Cron Not Running Scheduled Tasks
Automated tasks in WordPress—like publishing scheduled posts, sending email notifications, or triggering plugin actions—rely heavily on WP-Cron. When WP-Cron fails, it disrupts these essential workflows. This can lead to missed publishing deadlines, failed backups, and broken automation—all of which affect site performance and SEO.

In this article, you’ll learn how to fix WP-Cron not running scheduled tasks, understand why it happens, and implement effective solutions. Whether you’re a developer, SEO manager, or website owner, this guide is built to help you solve WP-Cron issues with confidence.
What Is WP-Cron and Why It Matters?
WP-Cron is WordPress’s internal scheduling system for time-based tasks. It’s not a real server cron job. Instead, it triggers when someone visits your site, checking for pending tasks.
Some common tasks managed by WP-Cron include:
- Publishing scheduled posts
- Running backup scripts
- Sending scheduled emails
- Checking for updates
The problem? WP-Cron only works when your site gets traffic. If no one visits, the cron won’t run. If it’s misconfigured or disabled, scheduled tasks fail silently.
How Do You Know WP-Cron Is Not Working?
Scheduled Posts Missed Deadline
If WordPress posts are stuck in “Missed schedule” status, your wp-cron is not firing. This is a clear sign that WP-Cron is either blocked, disabled, or malfunctioning.
Backups or Emails Don’t Trigger
Backup plugins (e.g. UpdraftPlus) or email marketing tasks may stop working. This typically means wordpress cron jobs are not running.
No Cron Activity Despite Traffic
If your site has users but cron jobs aren’t executing, WP-Cron might be blocked by your host or misconfigured. You may also notice that wp cron is not triggered or wp-cron not executing even when traffic is normal.
How to Check If WP-Cron Is Working
Use a WP-Cron Checker Plugin
Install plugins like:
- WP Crontrol
- Advanced Cron Manager
These tools allow you to view wp cron events, see their status, intervals, and if they’re stuck or delayed.
Manually Test Cron Execution
Visit this URL in your browser or via command line:
https://yourdomain.com/wp-cron.php?doing_wp_cron
Code language: JavaScript (javascript)
If it returns a blank page or 200 OK, WP-Cron is reachable. Otherwise, it’s blocked or broken.
Enable Debug Logging
Add these lines to your wp-config.php file:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Code language: JavaScript (javascript)
This will help you debug wp cron by logging any PHP errors or failed hooks to wp-content/debug.log.
What Causes WP-Cron to Stop Working?
disable_wp_cron Constant Set to True
In some setups, developers or hosts disable WP-Cron with this line:
define('DISABLE_WP_CRON', true);
Code language: JavaScript (javascript)
This disables all internal cron execution. You must replace WP-Cron with a real cron job if this constant is used.
Hosting Blocks WP-Cron Spawning
Shared hosting providers may block the wp-cron.php execution to reduce server load, leading to messages like:
- wp-cron spawning is disabled
- wp-cron disabled by hosting
- wp cron blocked by server
Server-Level Cache or Firewall Issues
Caching plugins or services (e.g. Cloudflare, Litespeed) might prevent the cron file from triggering, especially if full-page caching is aggressive.
Theme or Plugin Conflicts
Some security or optimization plugins disable WP-Cron by default. Always check their documentation and logs if WP-Cron suddenly stops working.
How to Fix WP-Cron Not Running Scheduled Tasks
Step 1: Enable WP-Cron in wp-config.php
Make sure this line does not exist or is set to false:
define('DISABLE_WP_CRON', true);
Code language: JavaScript (javascript)
Step 2: Check and Fix Plugin or Theme Conflicts
Temporarily deactivate performance, security, or caching plugins. Then test WP-Cron manually. If it starts working, one of those plugins is interfering.
Step 3: Install WP Control or Cron Manager
These plugins help you:
- See scheduled cron events
- Trigger events manually
- Delete or edit cron hooks
- Identify stuck tasks
Step 4: Replace with a Real Cron Job
For higher reliability, especially on busy or low-traffic sites, it’s best to use a real cron job for WordPress.
How to Replace WP-Cron with a Real Cron Job
Why Replace WP-Cron?
WP-Cron depends on user visits. This isn’t reliable for:
- Low-traffic sites
- Time-sensitive tasks
- E-commerce or publishing workflows
A real cron runs on the server at fixed intervals, regardless of traffic.
How to Set It Up
Disable internal WP-Cron:
define('DISABLE_WP_CRON', true);
Code language: JavaScript (javascript)
Set up a cron job via cPanel, SSH, or your hosting panel with this command:
*/5 * * * * wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Code language: JavaScript (javascript)
This setup ensures WP-Cron runs every 5 minutes, automatically.
Does WP-Cron Affect Performance?
Yes, WP-Cron can significantly affect your site’s performance—especially on high-traffic or resource-constrained environments. Unlike system-level cron jobs that run independently, WP-Cron is tied to user traffic. This architectural decision can lead to issues in both underloaded and overloaded scenarios.
Key Performance Issues Caused by WP-Cron:
High CPU Usage Under Load
When many users visit your site simultaneously, WordPress may attempt to execute multiple instances of wp-cron.php. This leads to CPU spikes and increased server load, especially if heavy tasks (e.g., backups, email campaigns) are scheduled.
Example: A scheduled newsletter blast may trigger on every user visit, spawning parallel processes. This compounds server resource usage, resulting in slow response times or even downtime.
PHP Process Overhead
Since WP-Cron runs through PHP, it can create multiple PHP workers under load, especially if the cron execution time overlaps. This causes wp-cron PHP high load, leading to:
- Increased memory usage
- Request queuing on shared hosting
- Incomplete or duplicated task runs
Slower Page Loads
Because wp-cron.php is triggered during normal page requests, it can delay the Time to First Byte (TTFB) of your site. This directly impacts Core Web Vitals, SEO performance, and user experience.
On poorly optimized servers, even lightweight cron events may cause wp-cron slowing down site noticeably.
Missed or Inconsistent Task Execution
On low-traffic sites, scheduled tasks may not run at all due to lack of trigger events. On high-traffic sites, they may run too often or simultaneously, resulting in:
- Missed scheduled posts
- Broken WooCommerce processes
- Delayed sitemaps or cache preloading
Why This Matters for SEO and Business Operations
These performance bottlenecks don’t just hurt infrastructure—they ripple into:
- Slower crawling and indexing due to reduced page speed
- Failed automation of critical SEO tasks like sitemap updates
- Broken integrations with services like Google Analytics, Mailchimp, or Zapier
Replace WP-Cron with a Real Cron Job
Using a real cron job offloads scheduling from the application layer to the server layer. This removes the dependency on user visits and improves:
- CPU efficiency
- Task execution accuracy
- Predictability of publishing workflows
Best Plugins to Manage and Monitor WP-Cron
To maintain control over WordPress cron jobs, especially in production environments, it’s essential to use dedicated plugins that offer visibility, debugging, and scheduling control.
WP Crontrol
- View, edit, and delete cron events
- See which hook runs when, and at what interval
- Useful for identifying orphaned or duplicate tasks
SEO teams can verify if content syndication or sitemap refresh jobs are running as expected.
Advanced Cron Manager
- Friendly UI for inspecting and managing events
- Allows real-time execution of scheduled tasks
- Filters and search tools help in complex cron setups
Developers and IT admins can debug scheduled database cleanups or WooCommerce stock syncs.
Cron Logger for WordPress
- Automatically logs every triggered cron event
- Helps track failures, slow executions, or skipped jobs
Performance engineers can audit whether time-based scripts are causing spikes in server load.
WP Cron Manager Plugin
- Lightweight, minimal interface
- Designed for non-technical users needing basic visibility
Site owners and content editors can confirm if their automated post scheduling or newsletter systems are working.
Frequently Asked Questions (FAQ)
What is WP-Cron and how does it work?
WP-Cron is WordPress’s built-in pseudo-cron system that handles scheduled tasks such as publishing posts, sending emails, checking for updates, and more. Unlike real cron jobs that run at specific time intervals on the server, WP-Cron only runs when someone visits your website, triggering wp-cron.php.
Why are my scheduled posts not publishing in WordPress?
If your scheduled posts are missing or stuck in “Missed Schedule” status, it’s likely because WP-Cron is not firing properly. This can happen if there’s no traffic to trigger the cron or if the cron system is disabled or blocked.
How can I check if WP-Cron is working?
You can test WP-Cron by visiting:
https://yourdomain.com/wp-cron.php?doing_wp_cron
Or use a plugin like WP Crontrol or Advanced Cron Manager to view WP-Cron events and see if scheduled tasks are running as expected.
What causes WP-Cron to stop running scheduled tasks?
Common causes include:
DISABLE_WP_CRON is set to true in wp-config.php
Hosting provider blocks wp-cron.php
Security or performance plugins disable cron execution
Server-level caching or firewalls block the request
How can I fix WP-Cron not running scheduled tasks?
To fix the issue:
Ensure DISABLE_WP_CRON is not enabled
Use plugins like WP Crontrol to debug tasks
Confirm wp-cron.php is not blocked by the server or plugins
Replace WP-Cron with a real cron job if needed
What is the best alternative to WP-Cron?
The best alternative is to use a real server-side cron job, which is more reliable and doesn’t depend on user visits. Set it up via cPanel or SSH using a command like:
*/5 * * * * wget -q -O – https://yourdomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Can WP-Cron cause high CPU usage?
Yes. WP-Cron can cause high CPU usage or PHP load spikes, especially if tasks are triggered too frequently or during peak traffic. This is why many high-performance sites replace WP-Cron with real cron jobs.
Which plugins help manage WP-Cron?
The most useful plugins include:
WP Crontrol
Advanced Cron Manager
Cron Logger WordPress
WP Cron Manager Plugin
These tools help you debug wp cron, monitor scheduled tasks, and manage execution intervals.
Is WP-Cron reliable for high-traffic or eCommerce websites?
No, WP-Cron is not ideal for high-traffic or mission-critical sites. For better reliability, task control, and performance, it’s recommended to disable WP-Cron and use a real cron job.
How does WP-Cron impact SEO?
When WP-Cron fails, automated SEO tasks such as sitemap updates, post scheduling, and content refreshing can break. It may also degrade Core Web Vitals by slowing down page loads due to background cron executions. Proper cron configuration ensures reliable automation and SEO health.
Conclusion
WP-Cron is a critical component of WordPress automation. When it fails, your scheduled tasks, SEO workflows, and user experience suffer. Whether you’re troubleshooting missed posts, failed backups, or just want more reliable scheduling—knowing how to fix WP-Cron not running scheduled tasks is essential.
For business-critical websites, replacing WP-Cron with a real cron job is often the best long-term solution. And with the help of monitoring plugins, you can ensure that nothing slips through the cracks.
Take control of your WordPress automation—because a reliable cron system means a reliable website.