Since I moved to DigitalOcean, all my scheduled posts are not working then it’s labeled as
Missed Schedule. I have faced this problem for two times without any notices. After digging around a bit I realised this error was very widely reported, I found a lot of suggestions from other frustrated bloggers. So I wasted about one hour trying to find out what was wrong before it’s fixed.
In this article, you will learn How did I FIX WordPress Posts Missed Schedule Problem?
The main reason why WordPress Posts Missed Schedule
WordPress doesn’t use real cron jobs because in order to set them up, you have to configure things on your server. If WordPress doesn’t have permission to access to that, your WordPress posts won’t publish at specified time.
There are several reasons of Missed Schedule problem:
- Too low traffic website.
- Difference timezone between your location and your server.
- WordPress can’t creat WP-CRON or it’s not working.
Too low traffic website
Scheduled posts don’t actually appear until someone visits the blog after the scheduled time of publication. Basically, the post is published upon visit and back-dated to the schedule time. The next time you schedule a post, could you logout and visit your blog a few minutes after the scheduled time to see it.
Difference timezone between your location and your server.
Change to correctly timezone by navigate to
Setting > General.
Use WordPress plugin
The first and second reasons can fix by use WordPress plugins (sometimes it works with third reason): WP Missed Schedule Fix Failed Future Posts
This plugin not decrease server performance why check the internal wordpress virtual cron job, to not waste resources, and not the real cron job of the server at scale. Thankfully, it is very easy to set up considering there are no settings to configure in the plugin. The way how this plugin works is that it check and fix only missed schedule failed future posts scheduled virtual cron job items, and no others, to not waste resources.
If you are still having the problems, let’s go to next solution.
Using a Real WordPress Cron Job
Before use Real WordPress Cron Job, you must disable virtual cron job first by add the line below to configuration file
define( 'DISABLE_WP_CRON', true );
Once WordPress’ built-in cron thingy is disabled in your configuration, we need to set up a real cron job to trigger it as a separate process.
Hosting Provide with Control Panel
The most popular Web Hosting Control Panel is CPanel, if your web hosting provider doesn’t CPanel, you need looking for Cron Job setting.
Remember change your correct domain and path in Command field:
wget -O /dev/null http://yoursite.com/wp-cron.php?doing_wp_cron
Notes: If you’re running WordPress Multisite, the URL for each subsite would be like one of these, depending on if you use subdirectories or subdomains.
You’re managing your own server
cron was running and restart it if needs.
$ pgrep cron # service cron restart
Then enter cron jobs list and add:
$ crontab -e > */1 * * * * wget http://www.domain.com/wp-cron.php?doing_wp_cron 2>&1 > /dev/null
What’s about 2>&1 > /dev/null
2>&1 > /dev/null bit just redirects all output to
/dev/null, which discards it.
/etc/hosts is pointing to wrong domain
After some debugging, I found
/ect/hosts point to my domain first instead
127.0.0.1 narga.net www.narga.net localhost localhost.localdomain
This might also cause issues for other people, because to execute cron tasks, WordPress needs to post to the URL
/ect/hosts point to your domain first, WP-Cron get 404s URL. That’s why WordPress Posts Missed Schedule.
Here is my
127.0.0.1 localhost localhost.localdomain xxx.xxx.xxx.xxx yourdomain.com yourdomain
That’s it, congrats you just fixed the pesky “Missed Schedule” error in WordPress and made scheduled tasks in WordPress just much more reliable and awesome in general. Did you get affected by this issue? If so, then hopefully this solution fixed the problem. Please let us know if you have any questions or comments regarding the WordPress Posts Missed Schedule Problem.