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 wp-config.php
:
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.
- http://domain.com/subsite/wp-cron.php?doing_wp_cron
- http://subsite.domain.com/wp-cron.php?doing_wp_cron
You’re managing your own server
Checked that 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
The 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 localhost
.
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 http://yourdomain.com/wp-cron.php?doing_wp_cron
. If /ect/hosts
point to your domain first, WP-Cron get 404s URL. That’s why WordPress Posts Missed Schedule.
Here is my /ect/hosts
127.0.0.1 localhost localhost.localdomain
xxx.xxx.xxx.xxx yourdomain.com yourdomain
Conclusion
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.
For those who has no Cron support on their hosting, they can try online cron job service like easycron.com. It provides free cron jobs that run every 10 minutes.
I have a new blog and I have zero knowledge and understanding of Linux and coding in it. I’ve got my blog up and running but have one issue. I normally am three days ahead in my writing each day for my daily entries so I have a lot of scheduled posts. The only way to get them to post is to have someone visit my site. That works, but it’s something that my old blog tool didn’t have to do. It just did it on its own. Sadly that tool is going away so I had to migrate to WordPress and I don’t understand why they even have it set up this way. A scheduled post should post automatically when the time is selected for it. Anyway, I did do the WP missed schedule plug in but it doesn’t seem to do anything? My posts still don’t get published unless I go to the site and trigger it to post or someone else does? Why would that be? My time zone is fine, it’s EST and like i said my posts publish as long as I trigger it by visiting my page or someone else does. Can someone please help me understand this problem?
Thank you, It has happende to me few times, hope I will solve it
Omg, I had the time zone problem. LOL Thank you! I just recently moved to a self host blog & I’m just learning about the process. You saved me a massive headache!