How can we help?

Search the documentation or ask the AI agent anything about the plugin.

How to Check if Cron Jobs are Working in WordPress

Updated April 21, 2025

WordPress cron jobs (WP-Cron) handle scheduled tasks like publishing posts, sending emails, or running plugin updates. Unlike traditional server cron jobs, WP-Cron is triggered by website visits, which can sometimes lead to issues if not properly configured. This guide explains how to verify that WP-Cron is functioning correctly.

Prerequisites

  • Access to your WordPress admin dashboard.
  • FTP/SFTP access or file manager access to your WordPress installation (optional for some methods).
  • Basic knowledge of WordPress plugins and server environments.

Coupon Affiliates Cron Jobs

Coupon Affiliates creates and runs the following cron jobs:

  • wcusage_reports – For scheduled affiliate reports.
  • wcusage_payoutschedule – For scheduled payout requests.
  • wcusage_cronjob – For checking delayed commission for orders daily.
  • wcusage_twicedaily_conversion_rates – For checking and updating conversion rates.

Methods to Check WP-Cron

1. Use a Cron Monitoring Plugin

Plugins like WP-Crontrol or Advanced Cron Manager provide a user-friendly way to inspect and manage cron jobs.

Steps:

  1. Install the Plugin:
    • Go to your WordPress admin dashboard.
    • Navigate to Plugins > Add New.
    • Search for “WP-Crontrol” or “Advanced Cron Manager”.
    • Install and activate the plugin.
  2. Check Cron Events:
    • For WP-Crontrol:
      • Go to Tools > Cron Events in the WordPress admin menu.
      • Review the list of scheduled cron jobs, their hooks, schedules, and next run times.
    • For Advanced Cron Manager:
      • Go to Tools > Cron Manager.
      • Inspect the events table for details on active cron jobs.
  3. Test a Cron Job:
    • In WP-Crontrol, you can manually run a cron job by clicking Run Now next to an event.
    • Verify if the task (e.g., a scheduled post) executes as expected.
  4. Check for Errors:
    • Look for any error messages or jobs that are stuck (e.g., no “Next Run” time or repeated failures).
    • Ensure the cron schedule aligns with your expectations.

Why Use This Method?

Plugins provide a visual interface, making it easy to debug issues without touching code. They also allow manual triggering and show real-time status.

2. Check Server Logs or Debugging

If WP-Cron isn’t running as expected, server issues or disabled cron might be the cause.

Steps:

  1. Enable Debugging in WordPress:
    • Edit your wp-config.php file and add: define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
    • This logs errors to wp-content/debug.log.
  2. Monitor WP-Cron Activity:
    • Add the following to your wp-config.php to log WP-Cron events: define('WP_CRON_LOG', true);
    • Check the debug log for cron-related entries after triggering WP-Cron (e.g., by visiting your site).
  3. Check Server Cron (if WP-Cron is Disabled):
    • If you’ve disabled WP-Cron (via define('DISABLE_WP_CRON', true); in wp-config.php) and set up a server cron job, verify the cron job in your server’s control panel (e.g., cPanel) or crontab: crontab -l
    • Ensure the cron job runs the following command every 5–15 minutes: wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    • Check server logs (e.g., /var/log/cron) for execution errors.

Why Use This Method?

Debugging and logs help identify deeper issues, such as server misconfigurations or disabled WP-Cron.

3. Test with a Dummy Scheduled Task

Create a test cron job to confirm WP-Cron is working.

Steps:

  • Add a Test Cron Job:
    • Add the following code to your theme’s functions.php or a custom plugin:
add_action('my_test_cron_job', 'my_test_cron_function');
function my_test_cron_function() {
error_log('Test cron job ran at ' . current_time('mysql'));
}
if (!wp_next_scheduled('my_test_cron_job')) {
wp_schedule_event(time(), 'hourly', 'my_test_cron_job');
}
  • Trigger WP-Cron:
    • Visit your site or manually run wp-cron.php as described earlier.
  • Verify Execution:
    • Check the wp-content/debug.log file for the logged message (ensure WP_DEBUG_LOG is enabled).
    • Alternatively, use WP-Crontrol to confirm the my_test_cron_job event is scheduled and running.

Why Use This Method?

This method confirms WP-Cron functionality in a controlled way, isolating issues to WP-Cron itself.

Common Issues and Fixes

  • WP-Cron Not Triggering:
    • Ensure your site has enough traffic to trigger WP-Cron. For low-traffic sites, consider disabling WP-Cron and using a server cron job.
    • Check for define('DISABLE_WP_CRON', true); in wp-config.php. If present, ensure a server cron job is set up.
  • Stuck or Delayed Jobs:
    • Clear stuck jobs using WP-Crontrol or Advanced Cron Manager.
    • Check for plugin conflicts by deactivating plugins temporarily.
  • Server Restrictions:
    • Some hosts block wp-cron.php or limit cron execution. Contact your hosting provider to confirm.
  • SSL Issues:
    • If your site uses HTTPS, ensure the server cron job uses the correct protocol (https://).

Best Practices

  • Use a Server Cron for High-Traffic Sites: Disable WP-Cron and set up a server cron job to reduce load on page visits:
  • Monitor Regularly: Use plugins like WP-Crontrol to periodically check cron health.
  • Keep Plugins Updated: Outdated plugins can cause cron conflicts or errors.
  • Test After Changes: Always test cron jobs after modifying plugins, themes, or server settings.

Conclusion

Checking WP-Cron in WordPress is straightforward with plugins like WP-Crontrol or manual methods like database inspection and debugging. By following the steps above, you can confirm that your scheduled tasks are running as expected and troubleshoot any issues. For optimal performance, consider offloading WP-Cron to a server cron job, especially for sites with significant traffic or complex tasks.

Was this article helpful?