Why it shows up in your week
A campaign page was set to go live Saturday at 08:00. Nobody visited the site overnight. Monday morning the page is still draft. That is default WP-Cron behaviour, not a mysterious CMS bug.
In plain language
Scheduled publishing, some backup plugins, licence checks, and other deferred tasks depend on WP-Cron firing.
On quiet sites, no visit means no job run. On busy sites, every visit may try to spawn work and cause contention.
A common hardening step is DISABLE_WP_CRON in wp-config.php plus a system cron (or host scheduler) calling wp-cron.php on a fixed interval, often every five minutes.
Heavy plugins that schedule frequent jobs need review. Cron is not a free background worker for unlimited tasks.
After a migration, verify cron still runs. New hosts often leave default visit-triggered behaviour in place.
Facts worth keeping
- Default trigger
- Page visit (not a real wall-clock daemon)
- Common harden
- DISABLE_WP_CRON + system cron to wp-cron.php
- Typical interval
- Every 5 minutes on many production setups
- Jobs include
- Scheduled posts, update checks, many plugin tasks
- Failure mode
- Missed schedules on low traffic; overlap on high traffic
Not the same as
- Linux/system cronA real OS scheduler. Production WordPress often uses system cron to call WP-Cron reliably.
- Action Scheduler (WooCommerce)A more robust queue used by WooCommerce and some plugins. It still needs a reliable trigger underneath.
- A forever background workerWP-Cron is best-effort deferred work inside WordPress requests or cron hits, not a dedicated job cluster.
Where it bites
WP-Cron hurts when a "scheduled" campaign page never goes live over a weekend, or when a backup plugin never finishes because visits never triggered the queue.
Teams waste hours debugging content while the scheduler was simply never called.
What to check
- Is default visit-triggered WP-Cron still enabled in production?
- Does a real cron hit wp-cron.php on a fixed interval?
- Which plugins schedule heavy recurring jobs?
- After the last host migration, did anyone verify scheduled posts still publish?
- Are failed jobs visible in logs or a cron UI plugin you trust?
Common questions
What is WP-Cron?
WordPress's internal scheduler for deferred tasks such as scheduled posts, update checks, and plugin background jobs.
Why do scheduled posts sometimes not publish?
Default WP-Cron runs when the site receives a visit. On low-traffic sites, no visit means the job waits until someone loads a page.
How do you fix WP-Cron in production?
Disable default visit-triggered cron and call wp-cron.php from a real system cron or host scheduler on a fixed interval.
Is WP-Cron a security risk?
Exposing wp-cron.php without rate controls can be abused for resource exhaustion. Follow host guidance and keep WordPress updated.
What should you check first?
Confirm whether production uses visit-triggered cron or a real system cron, then review which plugins schedule recurring heavy work.
Related terms
