WordPress has an internal task scheduling system called WP-Cron, which handles automated tasks such as publishing scheduled posts or checking for updates. While similar to Linux cron, WP-Cron only triggers during page loads, meaning tasks won’t run unless someone visits the site. For most websites, this design is sufficient. However, some plugins register cron jobs that persist even after deactivation, potentially leading to unnecessary background processes. To help identify and disable these lingering tasks, I developed this simple plugin.
Cron Management
Unlike Linux, WordPress doesn’t offer a built-in user interface to view scheduled cron events. However, you can easily access the cron event list through WP-CLI (WordPress Command Line Interface) by running:
wp cron event list
noah@reddwarf:~/public_html/wptest$ wp cron event list
+------------------------------------+---------------------+-----------------------+------------+
| hook | next_run_gmt | next_run_relative | recurrence |
+------------------------------------+---------------------+-----------------------+------------+
| wp_version_check | 2025-01-06 03:22:42 | 10 minutes 47 seconds | 12 hours |
| wp_update_plugins | 2025-01-06 03:22:42 | 10 minutes 47 seconds | 12 hours |
| wp_update_themes | 2025-01-06 03:22:42 | 10 minutes 47 seconds | 12 hours |
| wp_privacy_delete_old_export_files | 2025-01-06 03:22:42 | 10 minutes 47 seconds | 1 hour |
| schedule_unpublish_event | 2025-01-06 03:49:00 | 37 minutes 5 seconds | 1 hour |
| wp_update_user_counts | 2025-01-06 08:04:55 | 4 hours 53 minutes | 12 hours |
| recovery_mode_clean_expired_keys | 2025-01-06 15:22:41 | 12 hours 10 minutes | 1 day |
| delete_expired_transients | 2025-01-06 15:22:47 | 12 hours 10 minutes | 1 day |
| wp_scheduled_auto_draft_delete | 2025-01-06 15:22:48 | 12 hours 10 minutes | 1 day |
| wp_scheduled_delete | 2025-01-07 02:59:59 | 23 hours 48 minutes | 1 day |
| wp_delete_temp_updater_backups | 2025-01-12 01:49:47 | 5 days 22 hours | 1 week |
| wp_site_health_scheduled_check | 2025-01-12 20:04:55 | 6 days 16 hours | 1 week |
+------------------------------------+---------------------+-----------------------+------------+

The Code
I won’t dive into the functionality for this plugin, you can view the source code on GitHub, as well as download a zip of the plugin to use on your site.
GitHub repo: https://github.com/revnoah/wordpress-cron-zombies
Conclusion
Managing cron in WordPress doesn’t need to be mysterious. With tools like WP-CLI and lightweight plugins, you can easily take control of scheduled tasks, ensuring your site runs smoothly and efficiently. By keeping an eye on lingering cron jobs, you prevent unnecessary resource usage and maintain a cleaner, faster WordPress environment.