Use case

Replace wp-cron with a real scheduler so tasks fire with zero site traffic.

wp-cron is pseudo-cron: it runs scheduled tasks when a page loads. Zero traffic equals zero runs. Crontap fires the tasks on a real external clock, regardless of site traffic, at any cadence in any IANA timezone.

Get started

Free plan · no credit card required

The problem

Why this is painful without the right tool

  • A scheduled post did not publish at 08:00 because nobody visited the site until 08:14.
  • Your WooCommerce renewal reminders fire hours late or skip entirely on slow days.
  • Shared hosting does not give you system cron, so the documented fix in the WordPress Plugin Handbook is not available to you.
  • Every plugin schedules its own wp-cron events and you can't see them in one place when something stops firing.

The fix

How Crontap solves it

Define DISABLE_WP_CRON in wp-config.php (or keep pseudo-cron on and rely on Crontap as a top-up). Point Crontap at /wp-cron.php?doing_wp_cron=1 or at WP Webhooks Pro receivable URLs on the cadence you actually want. Any IANA timezone. Alerting on 5xx or missed runs, to email / webhook (Slack / Discord / Telegram).

cron expression
*/5 * * * *
Fire wp-cron.php every 5 minutes so scheduled posts, WooCommerce tasks, and WP Webhooks all run on time, even when the site is idle.

Two patterns are common in the field. First, disable wp-cron entirely with define('DISABLE_WP_CRON', true); in wp-config.php and let Crontap call wp-cron.php externally every 5 to 10 minutes. This is the documented best practice in the WordPress Plugin Handbook. Second, keep wp-cron on and have Crontap call specific WP Webhooks Pro receivable URLs for the exact tasks that cannot miss, leaving the rest to pseudo-cron as a fallback.

Three patterns from the dataset, all archetyped: a UK restaurant on WordPress firing a weekly sales report at 5am Monday in Europe/London via WP Webhooks Pro; a per-minute inbox-automation task runner in America/Los_Angeles polling four /wp-content/tasks/*.php endpoints (email, read, spam, daily hygiene); and an Austrian events-listings WordPress site importing event feeds every minute in Europe/Berlin. None of these can run reliably on wp-cron alone.

FAQ

Common questions

How often should I hit wp-cron.php?
Every 5 to 10 minutes is typical. Heavy sites with many scheduled actions can go tighter (every 1 minute on paid Crontap plans); idle marketing sites can go looser. Match the cadence to the most time-sensitive task you have.
Do I need WP Webhooks Pro?
No. Crontap can hit any wp-json or wp-cron URL directly. WP Webhooks Pro is a convenient layer for specific one-off HTTP receivers; if you already use it, point Crontap at the receivable URL and you are done.
What about WooCommerce?
WooCommerce schedules actions through wp-cron, so the same external trigger fixes the same problem. Action Scheduler is idempotent at the action level, so calling wp-cron.php every minute is safe even on busy stores.
Will this conflict with wp-cron?
No. The documented best practice is to disable wp-cron entirely with DISABLE_WP_CRON and schedule wp-cron.php externally. If you keep wp-cron on, Crontap simply augments it, calling the same endpoint more reliably than visitor traffic does.

Ready to fix it?

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

Free forever tier ・ No credit card required

GET

/wp-cron.php?doing_wp_cron=1

Running
Your next schedule

Schedule

"every 5 minutes"

Next

in 23s