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