Skip to main content
MainWP Dashboard sites are often private and receive little traffic. Since WP Cron depends on incoming requests, scheduled actions can be delayed unless you trigger cron regularly.

What You’ll Learn

  • Why low traffic affects scheduled MainWP tasks
  • How to set up Option 1 with external uptime monitoring or server cron requests
  • How to troubleshoot cron-triggering issues from one page

Why cron can become unreliable

WP Cron runs when requests hit the site. On low-traffic Dashboard sites, scheduled hooks may run late or not run at all. MainWP includes minute-level, hourly, and daily schedules. If cron is not triggered often enough, update checks, sync-related processing, uptime checks, and scheduled emails can be delayed.
This is the default approach for most users and the main setup this article recommends.

Important distinction (avoid confusion)

  • Keep Use WP Cron enabled at MainWP > Settings > Advanced Settings
  • For this option, “uptime monitoring” means external third-party services sending requests to your Dashboard URL
  • Do not rely on MainWP’s own uptime monitoring features to trigger WP Cron on the Dashboard site itself
  • WordPress’s DISABLE_WP_CRON setting controls automatic spawning from normal page requests; it does not remove registered events or block direct requests to wp-cron.php
MainWP uptime monitoring is for monitoring Child Sites. It is not a replacement for external cron-trigger requests to your Dashboard URL.

Method A: External uptime monitoring (no server cron needed)

Use an external service to send regular GET requests to your MainWP Dashboard URL. Examples of external services:
  • Uptime Robot
  • Better Uptime
  • Pingdom
  • StatusCake
1

Create a monitor in an external service

Create a new HTTP(s) monitor in your chosen service.
2

Set the target URL

Start with your Dashboard homepage:
3

Set request method and interval

Use GET and set the check interval to every minute.
4

Save and activate the monitor

Make sure the monitor is active and running continuously.
5

Verify requests are reaching WordPress

If cron does not update in MainWP Cron Schedules, switch the monitor URL to:

Method B: Server cron request (hosting panel or server)

If you prefer host-level scheduling, configure a cron job that calls wp-cron.php. Most users set this up in:
  • cPanel Cron Jobs
  • Plesk Scheduled Tasks
  • SSH crontab
Use this command:
Practical notes:
  • Replace https://example.com with your MainWP Dashboard URL
  • Keep Use WP Cron enabled for Option 1
  • Ensure auth/firewall/security rules do not block the request

Choose the correct DISABLE_WP_CRON setting

The correct wp-config.php setting depends on which URL or command triggers the cron queue: For a reliable direct wp-cron.php or WP-CLI trigger, add:
This prevents ordinary page visits from also spawning WP-Cron. Do not enable it when homepage or normal-page requests are the only external trigger, or when no reliable external runner is configured.

Trigger frequency (Option 1)

Set the trigger to every minute for both Method A and Method B. MainWP registers minute-level cron hooks. Slower intervals introduce avoidable delays for scheduled actions.

Option 2 (Advanced): Disable Use WP Cron and run server cron jobs directly

Use this only if you want to maintain manual MainWP cron jobs yourself. For commands and full setup details, follow Disable WP Cron.

Troubleshooting Option 1

Quick checklist

  • Use WP Cron is enabled at MainWP > Settings > Advanced Settings
  • External monitor or server cron is active and running every minute
  • Target URL is reachable (https://example.com/ or https://example.com/wp-cron.php?doing_wp_cron)
  • DISABLE_WP_CRON matches the trigger method: undefined or false for homepage requests, or true only with a reliable direct wp-cron.php or WP-CLI runner
  • No HTTP auth, firewall, CDN, or WAF rule is blocking requests
  • Cron activity is updating at MainWP > Info > Cron Schedules

Symptom to cause to fix

Final recommendation

For most MainWP Dashboard installations:
  • Keep Use WP Cron enabled
  • Use Method A or Method B to trigger WordPress every minute
  • Switch to server cron-only mode only when you can maintain the full cron setup