Knowledgebase

Why wp-cron.php Is Blocked on Our Servers and How to Set Up a Real Cron Job Print

  • wordpress, cron, php, wpcron, firewall, cpanel, plugins, woocommerce, email, backup
  • 0

For stability reasons, HTTP requests to /wp-cron.php are blocked across the ZillionKingHost cPanel fleet. WordPress triggers wp-cron on every page load, and on busy or bot-hit sites this generates thousands of extra PHP requests per hour — it has caused genuine outages and bandwidth exhaustion on shared servers.

Nothing is lost by this. A server-side cron job does the same work, on a reliable schedule, without the overhead.

Why you must set this up

If you do not, the following will silently stop working: scheduled post publishing, WordPress core and plugin auto-updates, backup plugin schedules, WooCommerce scheduled actions, and email queues.

1. Disable the built-in cron trigger

Edit public_html/wp-config.php in cPanel File Manager and add this line above the "That's all, stop editing!" comment:

define('DISABLE_WP_CRON', true);

2. Create the cron job

  1. In cPanel open Cron Jobs under Advanced.
  2. Under Common Settings choose Twice Per Hour (or set the interval manually to */15 * * * *).
  3. Enter this command, replacing USERNAME with your cPanel username:
/usr/local/bin/php -q /home/USERNAME/public_html/wp-cron.php >/dev/null 2>&1
  1. Click Add New Cron Job.

Calling the file directly with the PHP binary bypasses the HTTP block entirely.

3. Verify it is running

Install the WP Crontrol plugin and open Tools → Cron Events. Events should show upcoming run times and the "next run" should move forward after each interval. If every event shows as overdue, the cron path or username in the command is wrong.

Every 15 minutes suits most sites. WooCommerce stores and membership sites should use every 5 minutes (*/5 * * * *). Do not schedule it every minute.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot