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.Option 1 (Recommended): Keep Use WP Cron enabled and trigger it externally
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 regularGET requests to your MainWP Dashboard URL.
Examples of external services:
- Uptime Robot
- Better Uptime
- Pingdom
- StatusCake
Method B: Server cron request (hosting panel or server)
If you prefer host-level scheduling, configure a cron job that callswp-cron.php.
Most users set this up in:
- cPanel
Cron Jobs - Plesk
Scheduled Tasks - SSH
crontab
- Replace
https://example.comwith 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/orhttps://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
| Symptom | Likely cause | Fix |
|---|---|---|
Last Run does not change for long periods | Trigger requests are not reaching WordPress | Validate monitor/cron logs and switch to direct wp-cron.php URL |
Next Run looks stale or missing | Scheduling is disabled or misconfigured | Re-enable Use WP Cron, save settings, and recheck |
| External monitor says “up” but cron is still stale | Homepage check is cached or not executing WordPress | Point monitor to wp-cron.php?doing_wp_cron |
401 or 403 when calling wp-cron.php | Auth, firewall, or WAF restriction | Allow request access for the cron endpoint |
| Inconsistent or duplicate behavior | Mixed cron modes are configured | Keep 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