Cron Guard

Description

Cron Guard is a comprehensive monitoring solution for WordPress cron jobs. It helps you detect when cron jobs are failing, identify stalled or missed scheduled tasks, and provides host-specific instructions to fix common issues.

Features

  • Health Monitoring – Detect if WP Cron has executed within a configurable time threshold
  • Scheduled Events List – View all scheduled cron hooks with last run time, next run time, and interval
  • Overdue Detection – Flag overdue or stalled hooks with clear visual indicators
  • Rolling Log – Lightweight logging of cron execution events
  • Admin Dashboard – Clear, non-technical UI showing overall health status and detailed hook information
  • Fix Assistant – Host-specific instructions for setting up real cron jobs
  • Admin Bar Indicator – Quick status indicator in the WordPress admin bar

Premium Features

  • Email Alerts – Receive notifications when cron is stalled or repeatedly missing schedules
  • Webhook Alerts – Send alerts to any webhook endpoint
  • Slack Integration – Formatted Slack notifications with action buttons
  • Discord Integration – Formatted Discord notifications with embeds
  • Verification System – Test and confirm real cron execution
  • Advanced Diagnostics – Deep system analysis and troubleshooting

Why You Need This

WordPress relies on WP-Cron for critical tasks like:

  • Publishing scheduled posts
  • Sending emails
  • Running backups
  • Processing orders (WooCommerce)
  • Updating plugins and themes

When WP-Cron fails silently, these tasks stop working. Cron Guard gives you visibility into your cron health and alerts you before problems become critical.

Supported Hosts

The Fix Assistant provides specific setup instructions for:

  • WP Engine
  • Kinsta
  • SiteGround
  • Bluehost
  • GoDaddy
  • DreamHost
  • Cloudways
  • Flywheel
  • Pantheon
  • Pressable
  • cPanel hosts
  • Plesk hosts
  • Generic VPS/Dedicated servers

External Services

This plugin optionally connects to the following third-party services when configured by the user:

Slack API

When Slack alerts are enabled, the plugin sends notification messages to a user-configured Slack Incoming Webhook URL. Data sent includes: site name, site URL, cron health status, and alert details. No personal data is transmitted. Slack is operated by Salesforce, Inc.

Discord API

When Discord alerts are enabled, the plugin sends notification messages to a user-configured Discord Webhook URL. Data sent includes: site name, site URL, cron health status, and alert details. No personal data is transmitted.

Generic Webhooks

When webhook alerts are enabled, the plugin sends a JSON POST request to any user-configured URL. Data sent includes: site name, site URL, cron health status, and alert details. The webhook URL is entirely user-controlled.

Freemius SDK

This plugin uses the Freemius SDK for optional usage analytics and future licensing. No data is collected unless the user opts in during activation. Freemius is operated by Freemius, Inc.

External Cron Services (Referenced Only)

The Fix Assistant page references third-party cron services (EasyCron, cron-job.org, UptimeRobot) as alternatives for setting up server-side cron. The plugin does not connect to or transmit data to these services. Users who choose to use these services do so independently.

Screenshots

  • Dashboard – Overall cron health status and quick stats
  • Scheduled Events – Complete list of all cron events with status indicators
  • Fix Assistant – Host-specific setup instructions
  • Logs – Filterable log viewer with event details
  • Settings – Configuration options and premium features

Installation

  1. Upload the cron-guard folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Navigate to Cron Guard in the admin menu to view your cron health

Setting Up Real Cron (Recommended)

For best reliability, disable WordPress’s built-in cron and use a real server cron job:

  1. Add to your wp-config.php:

    define(‘DISABLE_WP_CRON’, true);

  2. Set up a server cron job (every 5 minutes recommended):

    */5 * * * * wget -q -O /dev/null “https://yoursite.com/wp-cron.php” >/dev/null 2>&1

The Fix Assistant page provides detailed, host-specific instructions for your hosting environment.

FAQ

What is WP-Cron?

WP-Cron is WordPress’s built-in task scheduler. Unlike a real server cron, WP-Cron only runs when someone visits your site. This means on low-traffic sites, scheduled tasks may be delayed or missed entirely.

Why are my cron jobs not running?

Common causes include:

  • Low site traffic (WP-Cron needs page visits to trigger)
  • DISABLE_WP_CRON is set but no real cron is configured
  • Hosting blocking loopback requests
  • Server resource limits
  • Plugin conflicts
  • SSL certificate issues

Use the Fix Assistant to diagnose your specific issue.

How do I set up a real cron job?

The Fix Assistant provides step-by-step instructions for your specific hosting provider. Generally, you need to:

  1. Add define('DISABLE_WP_CRON', true); to wp-config.php
  2. Set up a server cron job to hit wp-cron.php every 5 minutes

What’s the difference between Warning and Critical status?

  • Warning – Cron hasn’t run within your configured threshold (default: 15 minutes)
  • Critical – Cron hasn’t run for more than double your threshold (default: 30 minutes)

Can I use external cron services?

Yes! If your host doesn’t support real cron, you can use external services like:

  • EasyCron
  • cron-job.org
  • UptimeRobot

The Fix Assistant includes setup instructions for these services.

Does this plugin slow down my site?

No. Cron Guard is designed to be lightweight:

  • Logs are stored in WordPress options (no custom database tables)
  • Rolling log with maximum 500 entries
  • Automatic cleanup of old logs
  • Cron profiling only runs during cron execution

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Cron Guard” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Cron Guard” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.5

  • WordPress.org compliance: restructure premium-only code so the Freemius deploy script physically strips it from the free build (suffixed __premium_only methods and __premium_only.php files).
  • Free build no longer contains the license/plan class, the premium settings UI, the verification flow, or the alert/webhook/Slack/Discord implementations.
  • Removed the upgrade CTA from the Settings page.
  • Bumped Freemius SDK to 2.13.1.

1.0.0

  • Initial release
  • Core health monitoring functionality
  • Admin dashboard with status indicators
  • Scheduled events list with performance metrics
  • Rolling event log with filtering
  • Fix Assistant with host-specific instructions
  • Email alerts (Premium)
  • Webhook alerts (Premium)
  • Slack integration (Premium)
  • Discord integration (Premium)
  • Verification system (Premium)