Optimaliseren snelheid - WordPress cron verplaatsen naar cPanel
WordPress voert automatisch cronjobs uit om bepaalde zaken in de backend op te schonen. Deze worden aangeroepen op het moment dat een gebruiker de website bezoekt, en de cronjob recent niet heeft gedraaid. Dit betekent dat je voor het uitvoeren van de cronjobs afhankelijk bent van bezoekers, wat bij websites met weinig bezoekers soms voor problemen kan zorgen.
WP Cron omzetten naar cPanel cronjob
Om beter te controleren wanneer de WordPress cronjobs precies draaien kun je deze omzetten naar cPanel. Op die manier zullen ze voortdurend draaien volgens het schema dat je zelf opgeeft, wat de load van de cronjobs beter verspreid aangezien er per job minder acties uitgevoerd zullen hoeven te worden.Je kunt dit uitvoeren in twee stappen:
- Cronjob verwijderen uit WordPress Open hiervoor het wp-config.php bestand en voeg onderstaande regel toe:
define('DISABLE_WP_CRON', 'true');
Cronjob toevoegen in cPanel Ga in cPanel naar de Cronjob pagina en voeg daar onderstaande cronjob toe zodat deze iedere 15 minuten aangeroepen word.
Pas vervolgens onderstaande regel aan met jouw domeinnaam en voeg deze toe
wget -q -O /dev/null https://www.voorbeeld.nl/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Cronjob gebruik controleren
Ben je benieuwd welke zaken precies in de cronjobs draaien, en hoe deze afgehandeld worden? Met behulp van onderstaande plugin kun je precies zien welke zaken in de planning staan en hoe deze uitgevoerd worden.
https://wordpress.org/plugins/wp-crontrol/
Individuele cronjobs draaien
Normaal gesproken zal de cron job alle taken uitvoeren die open staan. Om hier meer controle in te verkrijgen en enkel de jobs uit te voeren die je wilt laten uitvoeren zul je gebruik moeten maken van WP-CLI. Met behulp van onderstaande commando kun je de volledige lijst inzien.
wp cron event list +-------------------------------------------+---------------------+-----------------------+---------------+ | hook | next_run_gmt | next_run_relative | recurrence | +-------------------------------------------+---------------------+-----------------------+---------------+ | jetpack_v2_heartbeat | 2019-10-17 03:56:45 | now | 1 day | | action_scheduler_run_queue | 2019-10-17 04:00:08 | now | 1 minute | | jetpack_sync_cron | 2019-10-17 04:01:42 | now | 5 minutes | | jetpack_sync_full_cron | 2019-10-17 04:01:42 | now | 5 minutes | | prli_cleanup_visitor_locks_worker | 2019-10-17 04:16:11 | now | 1 hour | | jetpack_clean_nonces | 2019-10-17 04:23:01 | now | 1 hour | | wp_privacy_delete_old_export_files | 2019-10-17 04:39:57 | now | 1 hour |
Om in één keer alle cronjobs uit te voeren die klaar staan kun je onderstaande commando gebruiken:
wp cron event run --due-now
Om enkel een bepaalde job uit te voeren gebruik je onderstaande commando:
wp cron event run jetpack_v2_heartbeat
Om deze WP-CLI jobs ook via cPanel toe te voegen kun je onderstaande toevoegen als cronjob:
cd /public_html; wp cron event run --due-now >/dev/null 2>&1
Externe cronjobs
Mocht je nog meer controle over de cronjobs willen hebben en bijvoorbeeld ook e-mailmeldingen wilt ontvangen over de status hiervan kun je je het best aanmelden voor een externe cron job dienst zoals https://www.easycron.com/. Hiermee kun je precies inzien welke cronjobs draaien, hoe deze zijn uitgevoerd, en kun je notificaties ontvangen wanneer er iets niet goed gaat.