Skip to main content
This is an advanced manual setup and is not the recommended solution for a low-traffic MainWP Dashboard. Direct worker files invoke specific MainWP tasks; they do not replace WordPress’s complete cron and background-event processing.For most installations, keep MainWP Dashboard > Settings > Advanced Settings > Use WP Cron enabled and configure the server to request wp-cron.php every minute. Follow Manage WP Cron on a Low-Traffic MainWP Dashboard.
This page documents the individual workers currently available for administrators who intentionally choose to maintain direct server cron jobs.

What You’ll Learn

  • How MainWP’s cron control differs from WordPress’s DISABLE_WP_CRON setting
  • How the recommended low-traffic setup differs from direct-worker mode
  • Which MainWP Dashboard and Add-on workers can be invoked directly
  • Which scheduled work direct workers do not cover

Prerequisites

  • Access to your server’s cron system, such as cPanel, Plesk, or SSH
  • Knowledge of your MainWP Dashboard WordPress installation path
  • The PHP binary location on your server
  • A complete inventory of enabled MainWP features and Add-ons

Understand the cron controls

Cron event registration, cron triggering, and direct worker execution are separate mechanisms:
  • MainWP Use WP Cron controls whether MainWP Dashboard and compatible MainWP Add-ons register and retain their recurring events in WordPress’s cron queue. Turning it off removes the MainWP recurring hooks that honor this setting. It does not disable WordPress WP-Cron globally.
  • DISABLE_WP_CRON is a WordPress-wide setting. define( 'DISABLE_WP_CRON', true ); stops normal page visits from spawning WP-Cron, but it does not remove registered events.
  • A server request to wp-cron.php processes due registered events even when DISABLE_WP_CRON is true. It cannot recreate MainWP recurring hooks removed by turning Use WP Cron off.
  • A server scheduler using WP-CLI can run due registered events with wp cron event run --due-now even when DISABLE_WP_CRON is true. It does not rely on normal page visits.
  • A direct MainWP worker invokes only that worker’s callback. It does not dispatch WordPress’s general WP-Cron queue.
WordPress documents its external scheduler pattern in Hooking WP-Cron Into the System Task Scheduler.

Select the correct cron configuration

Keep Use WP Cron enabled and do not configure individual MainWP worker files. Have the server request wp-cron.php every minute:
After verifying that the direct wp-cron.php trigger runs reliably, you can prevent normal page visits from also spawning WP-Cron by adding:
When enabled, normal visits no longer spawn WP-Cron, but a direct server request to wp-cron.php or a scheduler running wp cron event run --due-now continues to process due registered events. If an uptime monitor requests only the Dashboard homepage or another normal page, leave DISABLE_WP_CRON undefined or set it to false. Enable it only after verifying a direct external runner is reliable. If it is enabled without one, scheduled WordPress events can stop processing. This setting is unrelated to MainWP’s Use WP Cron toggle.
Avoid mixed or incomplete configurations:
  • Use WP Cron enabled with matching direct worker jobs: The same work may be invoked twice.
  • Use WP Cron disabled with only wp-cron.php requested: MainWP recurring hooks removed by the setting do not exist for wp-cron.php to run.
  • DISABLE_WP_CRON enabled without an external runner: The ordinary WordPress cron queue can stall.
  • DISABLE_WP_CRON enabled with only homepage or normal-page requests: Those requests cannot spawn WP-Cron; target wp-cron.php directly or use a WP-CLI runner.
  • Direct worker files only: Specific handlers run, but queued follow-up events and recurring tasks without direct files may not run.
If you require complete MainWP Dashboard and Add-on behavior, use the recommended low-traffic configuration.

Enable direct-worker mode

Before switching, inventory every enabled MainWP feature and Add-on and identify all required workers. Do not execute files merely because they exist in a plugin’s /cron directory.
1

Inventory enabled functionality

Record every MainWP Dashboard feature and Add-on that relies on scheduled processing, including multi-stage workflows.
2

Turn off Use WP Cron

Turn off MainWP Dashboard > Settings > Advanced Settings > Use WP Cron. This removes the MainWP recurring schedules controlled by the setting; it does not disable WordPress WP-Cron globally.
3

Configure each documented worker

Create a separate server job for every required worker at the exact cadence shown below.
4

Verify feature results

Confirm that expected data, state changes, and notifications are saved. A successful command response alone is not sufficient verification.

Configure direct-worker commands

Direct PHP invocation is the primary command format within this advanced mode. It avoids the HTTP request path, but the PHP process can still fail or time out. For MainWP Dashboard core jobs:
For MainWP Add-on jobs:
Use the job-specific examples below to identify the correct cron filename. For Add-on jobs, take both the Add-on directory and cron filename from the documented path.

Alternative HTTP invocation

If direct PHP execution is unavailable, use an HTTPS request with the complete job-specific plugin directory and filename:
Replace /path/to/public_html with the MainWP Dashboard WordPress installation path and /usr/bin/php with the correct PHP binary. Hosting providers document cron setup for tools such as cPanel and Plesk.
The > /dev/null 2>&1 redirection discards all output, including errors. Temporarily remove it during troubleshooting or redirect output to a log file. A successful HTTP response, exit code 0, or OK log entry proves only that the command returned successfully. It does not prove that all sites were processed or that results were saved.

Understand direct-worker coverage

Direct worker files cover only the callbacks documented below. MainWP Dashboard, MainWP Add-ons, WordPress, and other plugins can also schedule one-time events or background actions without a corresponding direct PHP file. Therefore, this method is not a feature-complete replacement for WordPress WP-Cron.
  • Multi-stage Add-ons require independent start and continuation jobs at their documented cadences.
  • Calling a start worker, waiting briefly, and calling the continuation worker once does not drain a queue. Continuation workers must run repeatedly.
  • A returned command does not establish that queued sites were processed successfully or that results were stored.
  • Direct worker requirements can change between MainWP Dashboard and Add-on releases. Review this page and current source after every update.

Direct workers by product

Process Update Checks and Automatic Updates

Frequency: *every minute (crontab schedule: * * * * )
Runs MainWP’s incremental update-check and automatic-update workflow, including continuation and related notification handling.

Ping Child Sites

Frequency: *every day (crontab schedule: 0 0 * * )
Requests wp-cron.php on managed Child Sites so their due WordPress events can run.

Run Built-in Uptime Monitoring

Frequency: *every minute (crontab schedule: * * * * )
Runs built-in Uptime Monitoring.

Send Deactivated License Alerts

Frequency: *every day (crontab schedule: 0 0 * * )
Sends notifications when MainWP detects deactivated MainWP Add-on licenses and the deactivated_license_alert notification is enabled.

Run General Schedules

Frequency: *every minute (crontab schedule: * * * * )
Runs registered MainWP regular-sequence processes incrementally. It is not the general WordPress WP-Cron dispatcher and does not execute arbitrary due WP-Cron events.

Start Legacy Backups

Frequency: *every hour (crontab schedule: 0 * * * )

Continue Legacy Backups

Frequency: *every 5 minutes (crontab schedule: */5 * * * )
Configure these two workers only when the built-in MainWP Legacy Backup feature is enabled. They do not run backup Add-ons.

Send Site Health Notifications

Frequency: *every hour (crontab schedule: 0 * * * )
Sends Site Health notifications from stored monitoring data when Site Health Monitoring is enabled.

Reconnect Sites

Frequency: *every hour (crontab schedule: 0 * * * )

Self-Check Checklist

  • I understand that direct-worker mode is advanced and not equivalent to full WP-Cron processing
  • Use WP Cron is disabled only because direct-worker mode was intentionally selected
  • Every required worker has its own server job at the documented cadence
  • Start and continuation workers are configured separately
  • MainWP recurring hooks and matching direct workers are not both running
  • DISABLE_WP_CRON is not enabled unless a general external WP-Cron runner is working
  • Legacy Backup workers are configured if the Legacy Backup feature is enabled
  • Regression Testing uses the recommended WP-Cron setup when complete automation is required
  • Newly connected sites appear in Domain Monitor, and eligible HTTPS sites appear in SSL Monitor, after automatic reconciliation
  • Actual saved data and feature-specific results were verified, not only command exit status