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

MainWP Dashboard Core

TaskFrequencyFile
Check for available updatesEvery minuteupdatescheck.php
Ping child sitesDailypingchilds.php
Check sites statusEvery minutecheckstatuschilds.php
Check sites healthHourlysitehealthmonitoring.php
Reconnect sitesHourlystats.php
Example crontab entries:
# Check for updates every minute
* * * * * /usr/bin/php /path/to/wp-content/plugins/mainwp/cron/updatescheck.php > /dev/null 2>&1

# Ping child sites daily at midnight
0 0 * * * /usr/bin/php /path/to/wp-content/plugins/mainwp/cron/pingchilds.php > /dev/null 2>&1

# Check sites status every minute
* * * * * /usr/bin/php /path/to/wp-content/plugins/mainwp/cron/checkstatuschilds.php > /dev/null 2>&1

# Check sites health hourly
0 * * * * /usr/bin/php /path/to/wp-content/plugins/mainwp/cron/sitehealthmonitoring.php > /dev/null 2>&1

# Reconnect sites hourly
0 * * * * /usr/bin/php /path/to/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