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
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:
https://example.com/
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:
https://example.com/wp-cron.php?doing_wp_cron

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:
* * * * * curl -fsS https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
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

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)
  • 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

SymptomLikely causeFix
Last Run does not change for long periodsTrigger requests are not reaching WordPressValidate monitor/cron logs and switch to direct wp-cron.php URL
Next Run looks stale or missingScheduling is disabled or misconfiguredRe-enable Use WP Cron, save settings, and recheck
External monitor says “up” but cron is still staleHomepage check is cached or not executing WordPressPoint monitor to wp-cron.php?doing_wp_cron
401 or 403 when calling wp-cron.phpAuth, firewall, or WAF restrictionAllow request access for the cron endpoint
Inconsistent or duplicate behaviorMixed cron modes are configuredKeep Option 1 clean: external trigger + Use WP Cron enabled

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