Skip to main content
Home
GrN.dk

Main navigation

  • Articles
  • Cases
  • Services
  • Your Digital Project Manager
  • About Greg Nowak
  • Image Gallery
  • Contact
User account menu
  • Log in

Join my community / free newsletter — sign up here

Breadcrumb

  1. Home

WordPress Cron: When to Replace WP-Cron with Server Cron

Illustrated infographic summarizing: WordPress Cron: When to Replace WP-Cron with Server Cron

By Greg Nowak. Updated 10 August 2026.

WP-Cron is perfectly adequate until the business starts depending on it. A brochure site probably will not suffer if an internal cleanup runs late. An online store, membership platform, publication, or integration-heavy website is different: delayed renewals, imports, scheduled posts, and notifications quickly become operational problems.

The underlying issue is simple. WP-Cron checks for due work when WordPress receives a page request; it is not a continuously running system scheduler. Low traffic can therefore delay jobs, while blocked loopback requests can prevent WordPress from spawning them correctly.

Moving to server cron does not replace the WordPress event queue. Plugins and WordPress core continue scheduling the same hooks. You are only replacing the unreliable wake-up call with one controlled by the server.

When server cron is worth the change

Base the decision on the cost of delay, not traffic or company size. A quiet membership site may need more dependable scheduling than a busy editorial site where five minutes makes no material difference.

Site or workflow Recommended approach Why
Brochure site with non-critical housekeeping Keep default WP-Cron Best-effort timing is usually sufficient
Scheduled publishing, campaign changes, or feeds Server cron every 5–15 minutes Delivery no longer depends on visitors arriving
Orders, memberships, imports, or integrations Server cron with monitoring Delays can affect customers and operations
Several business-critical client sites Standardised server cron and logging The agency gains a repeatable support process
No shell access, but scheduled URL requests are available HTTP trigger It provides a clock-based wake-up call without WP-CLI
A practical decision matrix for choosing how WordPress cron should be triggered.

Server cron improves predictability, but it does not guarantee second-perfect execution. A five-minute schedule means a newly due event may wait until the next five-minute run. It also cannot repair a broken plugin callback, an overloaded database, or a job that was never registered.

Plan the cutover around business workflows

Before changing the server, list the jobs that matter in business terms: subscription renewals, order follow-ups, stock imports, feed generation, scheduled publishing, or CRM synchronisation. Record how often each should run, how much delay is acceptable, and who needs to know when it fails.

Then follow this sequence:

  1. Create the replacement scheduled job.
  2. Run its exact command manually as the same operating-system user.
  3. Verify permissions, paths, output, and at least one low-risk workflow.
  4. Only then disable page-load spawning in wp-config.php.
define( 'DISABLE_WP_CRON', true );

Do not add that setting first. The events will remain in WordPress, but nothing will wake the queue if the replacement job is missing or misconfigured.

Use WP-CLI when you control the server

WP-CLI runs due events directly and avoids relying on an HTTP request to the site. Cron environments commonly have a limited PATH, so use absolute paths for both the executable and the WordPress installation:

*/5 * * * * /usr/local/bin/wp cron event run --due-now --path=/var/www/example.com

Replace both paths with values verified on the real server. Run the command as the same user configured in cron; testing it as an administrator can hide ownership and permission problems. On WordPress multisite, specify the target site:

*/5 * * * * /usr/local/bin/wp cron event run --due-now --path=/var/www/example.com --url=https://example.com

Keep output visible while commissioning the job. Once stable, send errors to logging or alerting that somebody actually reviews. Redirecting everything to /dev/null produces a quiet setup, not necessarily a healthy one.

Use an HTTP trigger when hosting requires it

Some control panels can schedule a URL request but do not offer dependable WP-CLI access. WordPress documents using wget to request wp-cron.php:

*/5 * * * * /usr/bin/wget --delete-after https://example.com/wp-cron.php

Test this from the server rather than assuming a successful browser visit proves anything. Basic authentication, redirects, firewall rules, CDN policies, or security plugins may treat server-originated requests differently. Add quiet flags only after you have confirmed where failures will be recorded.

Verify the new trigger properly

Inspect the queue before and after a scheduled run:

wp cron event list --fields=hook,next_run_gmt,next_run_relative,recurrence
wp cron event run --due-now

The first command shows what WordPress believes is scheduled; the second executes everything currently due. For a realistic test, run the complete cron entry as its configured system user, confirm a successful exit, and check that due events move to their next expected run.

Do not rely on wp cron test after the cutover. That command tests WordPress’s HTTP spawning system and deliberately returns an error when DISABLE_WP_CRON is true. After migration, the useful health checks are the server scheduler’s run history, the WordPress event queue, and completion of a real business workflow.

Leave an operating model, not just a crontab entry

  • Document the scheduler, command, system user, interval, site path, and multisite URL.
  • Record where output and failures appear and who owns the response.
  • Remove the redundant page-load trigger after commissioning.
  • Investigate overdue or repeatedly failing hooks separately.
  • Keep a rollback note for restoring normal WP-Cron spawning.

This is a small technical change with consequences across hosting, WordPress, plugins, and business operations. If your team needs help auditing important jobs, implementing the trigger, or making the result supportable, talk to Greg about your WordPress operations.

Related on GrN.dk

  • Cloudflare Page Rules Debt: How Quiet Configuration Drift Breaks Business Websites
  • Debugging WordPress on a Live Site: A Safer Workflow
  • Recommended WordPress Plugins for Business Websites: Keep the Stack Lean

Need help with this kind of work?

Talk to Greg about WordPress operations Get in touch with Greg.

Sources

  • Cron – WordPress Plugin Handbook
  • Hooking WP-Cron Into the System Task Scheduler
  • wp cron event run – WP-CLI Command
  • wp cron event list – WP-CLI Command
  • wp cron test – WP-CLI Command
Last modified
2026-08-12

Tags

  • wordpress
  • WP-Cron
  • WP-CLI
  • Operations

Review Greg on Google

Greg Nowak Google Reviews

 

Written recommendations from Trafik og Veje, Aarhus Municipality (2011) and AgroTech (2010) — read them on LinkedIn.

Illustrated infographic summarizing: Locked out of your Apple developer account? Fix it before October 1
Locked out of your Apple developer account? Fix it before October 1
2026-08-20

Apple's updated developer agreement must be accepted by October 1, 2026, and many small app owners cannot even log in. Here is where Apple's two-factor codes really go, and how to fix your access before the deadline.

Illustrated infographic summarizing: Cloudflare Workflows Now Charges by the Step—Price the Outcome
Cloudflare Workflows Now Charges by the Step—Price the Outcome
2026-08-20

Cloudflare Workflows now bills paid plans for steps and stored state. Here is how to track cost per completed outcome without weakening reliability.

Illustrated infographic summarizing: Google’s AI Search Toggle Is a Publishing Decision, Not an SEO Setting
Google’s AI Search Toggle Is a Publishing Decision, Not an SEO Setting
2026-08-19

Google’s AI Search toggle forces a commercial choice about visibility, attribution and content use. Here’s how to make that choice responsibly.

Illustrated infographic summarizing: From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint
From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint
2026-08-18

AI can reduce the work involved in processing supplier invoices, but reliable bookkeeping requires validation, duplicate checks, approval and a clear audit trail.

Illustrated infographic summarizing: Nginx 1.30 Changed the Upstream Defaults—Test Before You Upgrade
Nginx 1.30 Changed the Upstream Defaults—Test Before You Upgrade
2026-08-17

Nginx 1.30 defaults upstream proxying to HTTP/1.1 with keepalive enabled. Here is what to inspect, model and test before upgrading.

Illustrated infographic summarizing: OpenAI’s Assistants API Shuts Down in Ten Days. Is Your App Ready?
OpenAI’s Assistants API Shuts Down in Ten Days. Is Your App Ready?
2026-08-16

OpenAI’s Assistants API shuts down on August 26, 2026. Learn what to inventory, how to preserve state and how to cut over without breaking the product.

Illustrated infographic summarizing: WordPress 7.1 Forces the Editor Into an iframe—Test Your Custom Blocks
WordPress 7.1 Forces the Editor Into an iframe—Test Your Custom Blocks
2026-08-15

WordPress 7.1 removes the non-iframe editor fallback. Learn how to audit custom blocks, test real workflows and fix compatibility issues before launch.

Illustrated infographic summarizing: GitHub will stop sending jobs to stale self-hosted runners
GitHub will stop sending jobs to stale self-hosted runners
2026-08-14

GitHub starts enforcing runner versions on August 24, 2026. Audit and upgrade self-hosted runners before builds and deployments start stalling.

Illustrated infographic summarizing: Your AI Agent Has Shell Access. What Can It Reach?
Your AI Agent Has Shell Access. What Can It Reach?
2026-08-13

A practical guide to mapping what a shell-enabled AI agent can reach, then containing its access to files, credentials, networks, tools, and high-impact actions.

Illustrated infographic summarizing: Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
2026-08-12

Cloudflare’s DoH JSON change exposes brittle DNS parsing. Find affected scripts, test both formats, and choose a safer integration contract.

More articles

Built by AI — available for your business. The daily articles on this site are researched, written and illustrated by an autonomous AI pipeline. At nowa.dk I install the same kind of AI automation in businesses at fixed prices — site in Danish, English version here, and web/marketing agencies have a dedicated page.

RSS feed

Footer

  • All articles
  • Contact

GrN.dk — AI automation, web platforms, web optimization, data handling and logistics.

© 2026 GrN.dk · LinkedIn · Contact · AI automation in Danish: nowa.dk

Behind GrN.dk: Individual Entrepreneur Codecrafter · Tax ID 305669096 · Bakhtrioni St. 22, 0194 Tbilisi, Georgia · official business register