Troubleshooting
Diagnose "Missed schedule"
After scheduling a post, Missed schedule may appear (Programación perdida on Spanish installations). The notice confirms that publishing did not complete at the planned time, but does not establish whether there was not enough traffic, a loopback request failed or an error occurred while publishing.
1. Run a controlled test
Schedule a test post for a few minutes later and note the time and time zone. When that time has passed, visit the website once:
- If it is published after the visit, traffic-dependent execution is a strong hypothesis.
- If it is still pending, check the PHP log for that time, Tools > Site Health and any loopback request error.
Also check whether wp-config.php contains define('DISABLE_WP_CRON', true);. That value stops visits from starting WP-Cron; do not change it until you have confirmed whether a real cron job exists on the server.
2. Check the event
With WP-CLI you can list the events and compare their next run with the current time:
wp cron event list --fields=hook,next_run_gmt,next_run_relative
Find the test's publishing event. Do not delete recurring events without identifying the component that registered them. The following command runs all due events, not just publishing: it may send emails or trigger shop tasks. Use it on staging or after reviewing and authorising its effects on that installation:
wp cron event run --due-now
Then check whether the post is published and review the PHP log for the same time. This run only confirms that the event could complete at that moment; it does not explain the delay.
3. Set up a real cron job only if needed
If you have confirmed there is not enough traffic, follow the guide to replace WP-Cron with a server task. Create and test the task first. You can then set DISABLE_WP_CRON to true to avoid duplicate runs.
Schedule another post and confirm that it is published without visiting the website. Check several runs and keep a temporary error log. A cron plugin can help you inspect the queue, but it does not fix a blocked loopback, a PHP error or a misconfigured server task.
Time and scope of the test
next_run_gmt is expressed in UTC and may differ from the time configured for the site. Check both before concluding that the event is late. Run WP-CLI from the correct directory and with that installation's PHP and user; on multisite, also identify which site the post belongs to.
A test post may become public and trigger notifications to subscribers. Use staging or content prepared for that purpose. wp cron event list shows the current schedule, not a history of successful runs.
You may also find useful
- 404 errors on static files slow down browsing Detect missing static resources that trigger PHP and use CPU, serve them as lightweight 404s and gui...
- Elementor 3.6.x, historical compatibility issues Historical guide to diagnosing errors that appeared after updating to Elementor 3.6 without attribut...
- Elementor shows a 500 error when saving changes Identify the request and the Elementor PHP error before changing memory limits, plugins or server ru...
- Error updating WordPress, "cURL operation timed out" Identify the URL and phase of a timed-out request before attributing cURL error 28 to WordPress, a p...
Something wrong or out of date? Tell us and we will review it.