Get a free website with any plan

See how
WORDPRESS

Fixing "missed schedule" on scheduled posts (WP-Cron)

Last updated

IN SHORT

A missed schedule error occurs because WordPress WP-Cron only runs when a visitor loads a page. On Flashcloud hosting, solve this by disabling default WP-Cron in wp-config.php and setting up a scheduled server cron job in the portal to trigger wp-cron.php automatically regardless of site traffic.

A "missed schedule" post means WordPress never ran the task that was supposed to publish it. WordPress doesn't have a real background scheduler: it uses WP-Cron, which only fires when a visitor loads a page on your site. If nothing loads your site at the exact minute a post is due, the publish event gets skipped and the post sits there marked as missed. The fix is almost always to stop relying on visitor traffic to trigger WP-Cron and instead run it on a real schedule.

Start with the immediate problem, then fix the root cause so it doesn't happen again.

First: publish the stuck post

A missed-schedule post doesn't auto-recover. Open wp-admin → Posts, find the post, and either click Edit and hit Publish directly, or use Quick Edit to reset the status. This clears the immediate issue but does nothing for the next scheduled post, so don't stop here.

Cause 1: low traffic means WP-Cron never triggers

WP-Cron's default behavior is to check for due tasks on every page load, via a hidden request to wp-cron.php. If your site gets little to no traffic between the scheduled time and whenever the next visitor happens to arrive, scheduled events sit waiting. A post scheduled for 3am on a low-traffic blog might not actually publish until the first visitor shows up hours later, and if that visitor never comes before some threshold, WordPress gives up and marks it missed.

The fix is to replace the traffic-triggered check with a real cron job that hits wp-cron.php on a fixed interval, regardless of visitors. Two steps:

  1. Add this to wp-config.php, above the line that says /* That's all, stop editing! */:
    define('DISABLE_WP_CRON', true);
  2. Set up a real cron job from Services → your hosting → Cron Jobs in the portal to call the WP-Cron endpoint on a schedule, for example every 15 minutes:
    wget -q -O /dev/null "https://yourdomain.com/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

This guarantees WP-Cron runs on a predictable interval instead of hoping a visitor loads the site at the right moment. It also spreads out the WP-Cron overhead instead of running it on every single page load, which helps on busier sites too.

Cause 2: a plugin disabled or broke WP-Cron

Some caching and performance plugins set DISABLE_WP_CRON to true on their own, assuming you'll wire up a real cron job, then don't tell you they did it. If you didn't add that constant yourself, check wp-config.php for it. If it's there and you don't have a server-side cron job calling wp-cron.php, that's your entire problem: nothing is triggering scheduled events at all, not just intermittently.

A broken or conflicting plugin can also throw a fatal error partway through the WP-Cron request, which kills the process before it reaches the publish step. If posts started missing their schedule right after installing or updating a plugin, that's a strong signal. The isolation method is the same one used for diagnosing a white screen of death: rename /wp-content/plugins/ to /wp-content/plugins.bak/ via FTP or the file manager, confirm scheduled posts start publishing normally, then restore the folder and re-enable plugins one at a time until the problem comes back.

Cause 3: server time zone or clock mismatch

WordPress schedules posts using the time zone set in Settings → General → Timezone, then compares that against the server's actual clock. If the site's time zone setting doesn't match what you intended, or the server's system clock has drifted, WordPress can think a post's scheduled time hasn't arrived yet, or has already passed by the time WP-Cron checks, and mark it missed either way. Confirm the time zone in Settings → General matches where your audience or business actually is, not UTC by default. This is a WordPress-level setting, not something you can adjust from cPanel or the portal.

Rule out a database connection problem

If posts have been failing to publish across the board rather than occasionally, and the site is otherwise acting unstable, check that WordPress can actually reach its database. A dropped database connection at the moment WP-Cron fires would prevent the publish event from running at all, and would typically show up alongside other symptoms too. See fixing WordPress database connection errors if you're seeing connection errors anywhere else on the site.

Confirm the fix worked

After setting up the real cron job, schedule a test post a few minutes out and watch whether it publishes on time. If it does, the traffic-dependent WP-Cron was the issue. If it still misses its schedule with a server-side cron job in place and calling wp-cron.php on schedule, the problem is likely plugin-level or a time zone mismatch, and it's worth working through Cause 2 and Cause 3 in order rather than assuming it's fixed.

When to open a ticket

If you've set up the cron job, confirmed the time zone is correct, and ruled out a plugin conflict but posts are still missing their schedule, open a ticket from the portal's Support section. Describe the issue and the steps you've already tried. This is also the right move if you don't have shell or file manager access to check wp-config.php yourself.

Common questions

Will my missed post publish on its own later?

No. Missed posts do not auto-recover. You must open wp-admin, navigate to Posts, and publish the stuck item directly using Edit or Quick Edit.

Why did my scheduled post fail to go live?

Your site probably lacked visitor traffic at the scheduled time. WordPress depends on page visits to trigger publish tasks, so an absence of visitors causes due posts to be marked as missed.

Can a WordPress plugin break my post schedule?

Yes. Some plugins disable WP-Cron automatically, while broken plugins can crash the background request before it publishes anything. You can isolate this by temporarily renaming your plugins folder to verify whether posts publish without them.

Where do I add a real cron job for WordPress?

Configure it in the Flashcloud portal under Services, your hosting, and then Cron Jobs. Set the cron job to call your wp-cron.php URL on a set schedule, such as every 15 minutes.

CAN'T FIND IT?

Real humans answer fast.

Hosting with us? Open a ticket and a real person replies - no scripts, no upsells. Still choosing a host? The same team is included with every plan, from day one.