WordPress relies on a scheduling system called WP-Cron to handle important background tasks — publishing scheduled posts, checking for plugin updates, sending email notifications, and more. By default, WP-Cron only runs when someone visits your site, which makes it inconsistent and unreliable.
To address this, WP Engine introduced Alternate Cron, which triggers WordPress’ cron system on a server-level schedule — typically once per minute — instead of waiting for visitor traffic. While this sounds like a solid solution, many site owners and developers have discovered that Alternate Cron isn’t always as dependable as it seems.
In fact, one of its biggest flaws is that it can sometimes trigger jobs twice within the same minute, creating a ripple effect of duplicate tasks and unintended consequences.
How Alternate Cron Is Supposed to Work
Alternate Cron runs wp-cron.php at a steady, server-based interval, designed to ensure jobs run regularly. The goal is to improve reliability compared to the default “visitor-triggered” WP-Cron, while reducing performance overhead.
But in practice, its timing isn’t perfect.
The Major Issue: Duplicate Runs
Instead of running once per minute, Alternate Cron has been known to occasionally run twice in the same minute. This happens when:
-
Long-running tasks: If one job takes too long, WordPress’ internal lock expires, and another cron process kicks off before the first one finishes.
-
Timing drift: Even small offsets of just a few seconds can cause jobs to overlap, leading to two executions in the same minute.
-
Scheduling conflicts: Plugins or custom code that rely on exact timing are especially prone to being triggered more than once.
Why This Is a Serious Problem
At first glance, a job running twice might not seem catastrophic. But consider what happens if your scheduled task is:
-
Sending invoices → Customers may get billed twice.
-
Publishing posts → Content might be duplicated or pushed out of sequence.
-
Processing payments → Transactions may fire more than once, creating accounting nightmares.
-
Syncing data with an external API → Duplicate or conflicting records may clog your database.
For businesses that rely on precision and consistency, duplicate cron runs can cause real operational damage.
Why Alternate Cron Fails for Time-Sensitive Tasks
Alternate Cron is “close to once per minute,” but not exact. If your workflow requires a task to run at 12:00:00 on the dot, Alternate Cron can’t guarantee it. The system might fire slightly late, or worse, it may fire twice in quick succession.
This makes Alternate Cron a poor fit for jobs where timing and accuracy matter, such as:
-
Financial transactions
-
API integrations with strict time windows
-
High-traffic content publishing that depends on exact scheduling
The Recommended Fix: Use a Traditional Cron Job
The best way to ensure precise, reliable scheduling in WordPress is to bypass Alternate Cron altogether and use a traditional server-level cron job.
A real cron job, configured directly on your hosting server, offers:
-
Exact timing: Runs at the precise minute you schedule, without drift.
-
No duplicates: Prevents overlapping runs that can occur with Alternate Cron.
-
Better performance: Runs independently of visitor traffic and avoids unnecessary overhead.
-
Greater control: You decide the exact frequency and behavior.
While Alternate Cron is a convenient solution, an “old-fashioned” cron job remains the gold standard for reliability. For businesses where accuracy and stability matter, it’s the smarter choice.
Final Takeaway
WP Engine Alternate Cron may be marketed as an upgrade, but it introduces reliability risks that can’t be ignored. Running jobs twice in the same minute isn’t just a technical hiccup — it’s a business liability.
If your workflows require precision and consistency, don’t rely on Alternate Cron. Replace it with a true server-side cron job for peace of mind and dependable performance.