WordPress implements background processes using WP-Cron jobs that include posting of the scheduled post, updates, WooCommerce processes, notifications, and plugin tasks. However, when WordPress cron jobs do not work, there may be problems with the above-listed processes.
The cause may vary from low web traffic, WP-Cron disabling, problems with the loopback call, plugin interference, PHP issues, security settings, server cron configuration, to limited host resources. It is important to find out if there is an issue with WP-Cron not firing at all or just with a particular scheduled event.
With this guide, you will discover how to troubleshoot faulty WordPress cron jobs as well as when to use a server cron job instead. You will find out whether your hosting environment is the root cause of the issue.
Table of Contents
What is WordPress Cron?
Cron is the native task scheduling utility of WordPress, often referred to as WP-Cron.
WP-Cron does not work like a server-side cron job, which operates on a defined schedule by the server. Instead, WP-Cron typically fires when a user accesses your website. WordPress checks if any scheduled actions are due and tries to perform them.
Some of the tasks that the WP-Cron can manage include:
- Publishing of scheduled posts
- Check for updates
- Sending scheduled emails
- Maintenance tasks
- WooCommerce actions
- Plugin tasks
- Automated backups
One downside of WP-Cron is that it relies on website activity. Therefore, a website with little traffic will have delays.
What are Some Reasons that WordPress Cron Jobs Do Not Work?
Some common reasons are:
- WordPress Cron is not enabled
- Queued events
- Little traffic on the website
- Loopback fails
- Incompatibilities between plugins and themes
- PHP issues
- Restrictions by the hosting company
- Wrongly configured server cron jobs
- Cache or CDN issues
- Security or firewall restrictions
The primary thing that must be identified is whether it’s a problem with WP-Cron in general or whether there’s a particular task which isn’t working.
How to Fix “WordPress Cron Jobs Not Working”
1. See If WP-Cron Has Been Disabled
Among the first things you might want to look at is the wp-config.php file.
WP Cron can be disabled by WordPress through this setting:
| define(‘DISABLE_WP_CRON’, true); |
When this is set, WP Cron will no longer be run automatically by WordPress every time someone visits the site.
This feature is sometimes deliberately used on websites where WP Cron is run through a cron job on the server side. It happens in cases where WP-Cron has been disabled but there has been no set server cron for this.
Go to wp-config.php and look for:
| DISABLE_WP_CRON |
If it says:
| define(‘DISABLE_WP_CRON’, true); |
see if there is an equivalent server cron in your hosting plan.
Don’t just delete it if you have intentionally configured a server cron as you will be running the same cron in two places.
2. WordPress Site Health
The built-in Site Health tool in WordPress might identify issues that affect your scheduled jobs.
Access:
| Tools → Site Health → Status |
Check the following warnings related to:
- Scheduled Events
- Loopback Requests
- REST API
- HTTP requests
- PHP errors
Take special note of broken loopback requests. WordPress sometimes makes requests to its own site for various background processes. This could be stopped by the firewall, a security plugin, server settings, an authentication problem, or even a PHP problem.
A fix to the problem of the loopback request might fix the cron problem without using another system.
3. Check Your Scheduled Events
If WP-Cron is enabled, look at the scheduled events directly.
Use an application like WP Crontrol to see WordPress cron events.
Watch out for things like:
- Too many overdue events
- Failed attempts by one plugin multiple times
- Scheduled events that never get processed
- Way too many scheduled tasks
In case many of the unsuccessful events relate to one particular plugin, the issue might actually lie in this plugin rather than in WP-Cron. This will allow you not to modify your whole cron schedule in case one of the tasks is problematic.
4. Consider the Website Traffic
WP-Cron is triggered by WordPress requests and thus when traffic is low, the WP-Cron functions will most likely be performed late.
For instance, a post may have been scheduled for 8:00 AM but due to lack of website traffic at that time, it may take until 9:30 AM for a request to occur.
It doesn’t mean that WordPress Cron is broken. A server cron would be more appropriate if precision in scheduling is an issue since it does not depend on visitor behavior.
Out tutorial on setting up cron jobs shows how server cron jobs can be set up using cPanel.
5. Look for Plugin, Theme and PHP Error
A plugin or theme could be conflicting with cron jobs, especially if it throws out a PHP error on the execution of a cron job.
Try to remember what might have been the reason for such a problem. You could have either newly installed or upgraded some plugins or your theme, or have moved the site to a new server.
Deactivate temporarily the plugin in question and run the task again. In case the issue goes away, activate one by one all the plugins to pinpoint the source. Check for any PHP errors in your WordPress and server logs as well. To know more about WordPress troubleshooting, see our WordPress troubleshooting page.
6. Consider Your Hosting Limits of Resources
Scheduled tasks utilize resources just like any other WordPress functions. Websites that use WooCommerce, automated backups, automated email sending features, have big databases, or lots of plugins can generate lots of background activities. In case your hosting service account exceeds the CPU, memory, process, or any other resources limit, it can affect your scheduled tasks.
This is especially important in case of shared hosting as several sites run on the same server environment. The HarmonWeb Shared Server Resources Guide describes how resources like CPU, I/O and process entrance have an impact on websites.
In case you frequently experience cron failures during busy times, your hosting environment could be the source of the issue.
7. Review your Server Cron Setup
If you’ve disabled WP-Cron and set up an alternative through server cron, make sure that your server job is properly set up.
In cPanel, navigate to:
| cPanel -> Advanced -> Cron Jobs |
Review:
- Execution schedule
- Command
- PHP path
- WordPress installation path
- Job execution
According to the server used, the cron could be running WP-CLI or wp-cron.php.
Avoid copying a cron command directly from other servers as the PHP paths may vary.
8. Caching and Security Solutions
Caching and security solutions could hinder the requests needed for WordPress.
In case you use any caching plugins, CDNs, firewalls, security plugins, or even server-side caching, make sure that it does not block the wp-cron.php or WordPress loopback requests.
Avoid disabling security settings to get cron working. Try to find out which particular setting is blocking cron from functioning and set it up correctly. Please keep in mind that any changes in hosting, CDN, DNS, and security settings recently could be the cause of the cron issue.
How to Prevent WordPress Cron Issues
After your schedule functions begin to work again:
- Ensure your WordPress, theme, and plugins remain up-to-date.
- Keep track of overdue scheduled actions
- See how much resources your hosting uses
- Make backups regularly.
- Avoid unnecessary plugins which generate a lot of background processes.
- Use server cron if precision is necessary.
- Pick up hosting that can cope with the load of your website.
When the Hosting Becomes an Issue
If you find that everything is configured properly with WordPress, the plugin, and cron, yet scheduled tasks still fail, then the hosting may be the reason behind it.
CPU and memory limitations, restrictions, PHP settings, internal requests failure, and high background loads may all influence WordPress Cron. Such issues become especially relevant for sites that use scheduled tasks for ordering, subscribing, backup, posting, or email tasks.
The hosting environment with the right amount of resources and server control can offer you a better foundation as your website expands. The WordPress Hosting from HarmonWeb provides a WordPress-specific hosting platform which includes caching, auto-updates, daily backups, and staging.
Conclusion
There are several reasons why WordPress cron jobs fail. These include low traffic, WP-Cron being disabled, failure of the loopback request, plugin/PHP issues, server settings, or inadequate hosting services. Firs
Start by checking your scheduled events, wp-config.php, Site Health, plugins, and hosting environment before switching to a server-side cron job.
If you depend much on scheduled posts, backup, WooCommerce, and other backend tasks in your website, then proper hosting will help you do them reliably.
Need reliable WordPress hosting service?
Consider opting for HarmonWeb WordPress Hosting to enjoy a dedicated WordPress hosting experience that has all the capabilities required to perform tasks on time.


