Skip to main content
WordPress WP-Cron relies on site visits to trigger scheduled tasks, which can be unreliable for low-traffic sites. You can disable WP-Cron and use your server’s cron system for more consistent task execution.

What You’ll Learn

  • How to disable WP-Cron for MainWP
  • How to set up server cron jobs
  • Cron commands for each extension

Prerequisites

  • Access to your server’s cron system (cPanel, Plesk, or SSH)
  • Knowledge of your WordPress installation path
  • PHP binary location on your server

Disable WP-Cron

Once you disable WP-Cron via MainWP > Settings > Advanced Settings, MainWP removes its schedules and you’ll need to set up manual cron jobs through your hosting provider.
Need help setting up cron jobs? Check your hosting provider’s documentation for cPanel or Plesk.

Commands to Use in Crontab

Two command options are available: Preferred method (direct PHP call - eliminates HTTP timeout issues):
/usr/bin/php /path/to/public_html/wp-content/plugins/mainwp/cron/FILE > /dev/null 2>&1
Alternative method (HTTP call):
wget -O /dev/null http://example.com/wp-content/plugins/mainwp/cron/FILE > /dev/null 2>&1
Replace FILE with the specific cron file for each job listed below.

Cron Jobs by Extension

Check for available updates

Frequency: *every minute (crontab schedule: * * * * )
wget -O /dev/null http://yourdashboard.com/wp-content/plugins/mainwp/cron/updatescheck.php > /dev/null 2>&1
This cron job will perform two actions. First, it will first synchronize the Dashboard and then perform auto-updates if any exist.

Ping Child Sites

Frequency: *every day (crontab schedule: 0 0 * * )
wget -O /dev/null http://yourdashboard.com/wp-content/plugins/mainwp/cron/pingchilds.php > /dev/null 2>&1

Check Sites Status

Frequency: *every minute (crontab schedule: * * * * )
wget -O /dev/null http://yourdashboard.com/wp-content/plugins/mainwp/cron/checkstatuschilds.php > /dev/null 2>&1
This cron also controls built-in Uptime Monitoring.

Check Sites Health

Frequency: *every hour (crontab schedule: 0 * * * )
wget -O /dev/null http://yourdashboard.com/wp-content/plugins/mainwp/cron/sitehealthmonitoring.php > /dev/null 2>&1

Reconnect Sites

Frequency: *every hour (crontab schedule: 0 * * * )
wget -O /dev/null http://yourdashboard.com/wp-content/plugins/mainwp/cron/stats.php > /dev/null 2>&1
Replace /path/to/ with your actual WordPress installation path. The PHP binary location (/usr/bin/php) may also vary depending on your server configuration.

Self-Check Checklist

  • WP-Cron disabled in Dashboard Advanced Settings
  • Server cron jobs created for required tasks
  • Paths updated to match your installation
  • Cron jobs tested and running