Contact Us

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:

define('DISABLE_WP_CRON', true);

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

  1. Install WP Crontrol

  2. Go to Tools → Cron Events

  3. 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:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

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:

define('DISABLE_WP_CRON', true);

If found, comment it out or remove it:

// define('DISABLE_WP_CRON', true);

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:

define('DISABLE_WP_CRON', true);

Step 2: Create a Server Cron Job

Using cPanel

  1. Open Cron Jobs

  2. Add a new cron job

  3. Set interval to every 5 minutes

  4. Use this command:

wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

OR (preferred):

php /home/username/public_html/wp-cron.php >/dev/null 2>&1

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 .htaccess for blocking rules

Example .htaccess fix:

<Files wp-cron.php>
Order allow,deny
Allow from all
</Files>

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

wp cron event list
wp cron event delete event_name

This reduces execution load.

Fix #5: Identify Plugin Conflicts

To isolate the issue:

  1. Disable all plugins

  2. Test cron functionality

  3. 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:

memory_limit = 256M
max_execution_time = 300

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:

define('WP_POST_REVISIONS', 5);

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:

wp action-scheduler run

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter & Get Latest Updates.

Copyright @ 2025 WPThrill.com. All Rights Reserved.