Reliable wp-cron Monitoring at Scale
Monitor wp-cron across single sites or hundreds of WordPress installations with the Saturn plugin.
Why Monitor wp-cron?
WordPress's wp-cron is notoriously unreliable:
- Visitor-dependent: Only runs when someone visits your site
 - Race conditions: Multiple simultaneous executions
 - Silent failures: No built-in alerting when tasks fail
 - Performance impact: Can slow down page loads
 
Saturn provides visibility and reliability for wp-cron at any scale.
Single Site Installation
Prerequisites
- WordPress 5.8 or higher
 - PHP 7.4 or higher
 - A Saturn organization token
 
Step 1: Install Plugin
Option A: WordPress Admin (Recommended)
- Go to Plugins → Add New
 - Search for "Saturn Watchdog"
 - Click Install Now
 - Click Activate
 
Option B: Manual Upload
- Download 
saturn-watchdog.zipfrom WordPress.org - Go to Plugins → Add New → Upload Plugin
 - Choose the ZIP file and click Install Now
 - Click Activate
 
Step 2: Configure Token
- Go to Settings → Saturn Watchdog
 - Enter your Organization Token (from Saturn dashboard)
 - Click Save Settings
 - Click Test Connection to verify
 
Step 3: View Health Dashboard
The plugin adds a Saturn Health widget to your admin dashboard showing:
- Active cron events being monitored
 - Last execution times
 - Health status (A-F grade)
 - Recent incidents
 
By default, Saturn monitors all recurring wp-cron events. You can exclude specific events in settings.
Bulk Agency Rollout
For agencies managing 50-500+ WordPress sites, automate the deployment.
Prerequisites
- WP-CLI installed
 - SSH/SFTP access to all sites
 - Same Saturn org token for all sites
 
Rollout Strategy
1. Install Plugin via WP-CLI
#!/bin/bash
# deploy-saturn.sh
SITES=(
  "example1.com"
  "example2.com"
  "example3.com"
  # ... add all your sites
)
ORG_TOKEN="YOUR_ORG_TOKEN"
for site in "${SITES[@]}"; do
  echo "Deploying to $site..."
  
  # Install plugin
  wp plugin install saturn-watchdog --activate --path="/var/www/$site"
  
  # Configure token
  wp option update saturn_org_token "YOUR_ORG_TOKEN" --path="/var/www/$site"
  
  # Test connection
  wp saturn test --path="/var/www/$site"
  
  echo "✓ $site complete"
done
2. Using MainWP / ManageWP
If you use a management dashboard:
- MainWP: Install extension from MainWP marketplace
 - ManageWP: Add to favorites, bulk install
 - Configure token in Global Settings
 - Apply to all sites with one click
 
3. Docker/Composer for New Sites
Add to your WordPress deployment:
{
  "require": {
    "wpackagist-plugin/saturn-watchdog": "^1.0"
  }
}
Set token via environment variable:
SATURN_ORG_TOKEN=YOUR_ORG_TOKEN
Verification Script
#!/bin/bash
# verify-saturn.sh
for site in "${SITES[@]}"; do
  STATUS=$(wp option get saturn_connection_status --path="/var/www/$site")
  
  if [ "$STATUS" == "connected" ]; then
    echo "✓ $site: Connected"
  else
    echo "✗ $site: Not connected - check logs"
  fi
done
Settings Reference
Navigate to Settings → Saturn Watchdog:
| Setting | Description | Default | 
|---|---|---|
| Organization Token | Your Saturn org token | (required) | 
| Monitor All Events | Auto-monitor all recurring cron events | true | 
| Excluded Events | Comma-separated list of hooks to ignore | (empty) | 
| Report Interval | How often to ping Saturn | 5 minutes | 
| Capture Output | Include task output in pings | false | 
| Max Output Size | Output size limit in KB | 10 | 
Health Dashboard Widgets
After installation, your admin dashboard shows:
Cron Events Widget
- List of all monitored events
 - Last run time
 - Next scheduled run
 - Current status (✓ Healthy, ⚠ Warning, ✗ Critical)
 
Health Score Widget
- Overall site health (0-100)
 - Grade (A-F)
 - 7-day uptime percentage
 - Recent incidents count
 
Troubleshooting
Events Not Running
Problem: wp-cron events never trigger
Solution: Disable WordPress pseudo-cron and use real cron:
define('DISABLE_WP_CRON', true);
Then add to system crontab:
*/5 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Or with WP-CLI:
*/5 * * * * cd /var/www/example.com && wp cron event run --due-now > /dev/null 2>&1
Connection Fails
Problem: "Connection test failed"
Checklist:
- Token is correct (copy-paste from dashboard)
 - Outbound HTTPS allowed (firewall/hosting provider)
 -  No PHP 
disable_functionsblockingcurlorfile_get_contents -  WordPress site can reach 
api.saturn.example.com 
Test manually:
curl -H "Authorization: Bearer YOUR_ORG_TOKEN" https://api.saturn.example.com/api/health
High Memory Usage
Problem: Plugin causes memory issues
Solution: Disable output capture for large sites:
define('SATURN_CAPTURE_OUTPUT', false);
SLA Reporting
For agencies with SLA commitments:
- Go to Saturn dashboard
 - Filter by tag (e.g., 
client:acme) - Export 30-day SLA report (PDF/CSV)
 - Send to client
 
Reports include:
- Uptime percentage
 - Incident count and types
 - MTTR (mean time to repair)
 - Health score trend
 
Next Steps
You should now see your first healthy monitor within 10 minutes.
Learn more:
- Bulk Agency Guide for advanced rollout strategies
 - Troubleshooting for common wp-cron issues
 - Alert Channels to set up notifications
 - Health Scores to understand the grading system