What You’ll Learn
- Why low traffic affects scheduled MainWP tasks
- How to interpret Dashboard and child-site cron warnings
- 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.Understand Cron Warnings
Starting with MainWP Dashboard 6.2, cron monitoring runs automatically. You do not need to enable Custom Event Monitor. Keep MainWP Dashboard and MainWP Child updated to receive child-site reports. An overdue warning can appear when the scheduled monitoring check has not run for more than 15 minutes. It signals that scheduled work may be delayed; it does not check whether every individual task completed successfully.
This example shows a warning about a child site:
Respond to an Overdue Warning
1
Identify which site needs attention
A warning on Operations concerns the Dashboard site. A warning that names child-site scheduled tasks concerns the child site whose Overview you are viewing. Check scheduling on the affected site’s host.
2
Check the cron trigger
If the message says WP-Cron is disabled, verify that the site’s external cron job is running. Disabling WordPress’s page-triggered cron is valid when a reliable external runner is configured.Otherwise, check whether low traffic, a failed external trigger, or an access restriction is preventing cron execution. For the Dashboard, use the setup instructions below and the troubleshooting checklist.
3
Verify recovery
After correcting the trigger, allow scheduled monitoring to run again and refresh the page. Check the Dashboard’s task activity at MainWP > Info > Cron Schedules.For a child site, sync it again after its monitoring check has recovered so the Dashboard receives the updated report. See Child Site Cron Warnings for the site-specific steps.
Dismissal and the Disabled-Cron Reminder
You can dismiss a Dashboard notice with its close icon. This hides the current incident for your user account; it does not fix scheduling. After MainWP detects recovery, a later occurrence can show a new notice. Child-site warnings have no dismiss control and clear from the Dashboard when a subsequent sync reports recovery. If Use WP Cron is intentionally disabled for direct-worker mode, verify that all required server jobs are configured. MainWP skips the Dashboard’s overdue WP-Cron check in this mode and shows the disabled-setting reminder instead. The reminder does not verify the individual external jobs. For the recommended setup below, keep Use WP Cron enabled.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
- WordPress’s
DISABLE_WP_CRONsetting controls automatic spawning from normal page requests; it does not remove registered events or block direct requests towp-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 regularGET 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 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
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:
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) DISABLE_WP_CRONmatches the trigger method: undefined orfalsefor homepage requests, ortrueonly with a reliable directwp-cron.phpor 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
