Replace wp_cron with a Real Cronjob

The native WordPress cron doesn’t run true cronjobs. Whenever your site gets a page load, WordPress checks for overdue jobs and then runs them. If you don’t get any site traffic then your jobs will never run. If your site gets tons of traffic, wp_cron may┬ácause unnecessary server load. Replace this behavior with a real cronjob on your server.

Disable the native WordPress cron in wp-config.php:

define('DISABLE_WP_CRON', 'true');

Set up a cronjob on the server. This example runs every 15 minutes. Make sure the path to wp-cron.php is correct for your site.

*/15 * * * * /usr/bin/php /home/$USER/public_html/wp-cron.php >/dev/null 2>&1

Adam Walter is a front-end developer, lover of WordPress, and Director of Development at Vital in Portsmouth, NH. Read more about me →