I CRON job sono utilizzati per pianificare sul sito WordPress le attività ad orari, date o intervalli periodici stabiliti. Alcuni esempi di un lavoro di cron WordPress potrebbero essere la pianificazione della pubblicazione di un post, il controllo degli aggiornamenti oppure l’esecuzione di un plugin di backup ad intervalli stabiliti.

In WordPress, questo viene gestito da WP-Cron, che viene utilizzato per simulare un cron di sistema. Tuttavia, a seconda della quantità di traffico verso il sito, l’utilizzo del gestore di cron integrato può iniziare a influenzare i tempi di caricamento delle pagine. Per questo oggi vi mostreremo come disabilitare WP-Cron (wp-cron.php) e utilizzare invece un cron di sistema per ottenere prestazioni migliori.

Problemi di Performance di WP-Cron

Da Kinsta abbiamo a che fare con molti siti ad alto traffico e molto esigenti in termini di risorse. Per questo motivo, abbiamo visto moltissimi problemi di prestazioni collegati al gestore di Cron integrato in WordPress: WP-Cron. Prima di tutto, è importante chiarire che WP-Cron non è un vero e proprio cron, è semplicemente qualcosa che è stato creato in WordPress per imitare ciò che fa un sistema cron.

WP-Cron non funziona in modo continuo. Di default, il wp-cron.php viene attivato su ogni pagina caricata, cosa che su siti ad alto traffico può causare problemi. Se un sito non ha abbastanza PHP worker, a volte arriva una richiesta, WordPress genera il cron, ma il cron deve aspettare il worker, e quindi se ne sta lì seduto.

È vero anche l’inverso. Se un sito non ha molto traffico, gli orari potrebbero saltare se nessuno ha caricato una pagina.

Un approccio migliore è quello di disabilitare WP-Cron e utilizzare al suo posto il cron di sistema. Questo funziona secondo un programma predefinito ed è anche raccomandato nel manuale ufficiale del Plugin.

Come Disattivare WP-Cron

Per disabilitare WP-Cron, aggiungete quanto segue al vostro file wp-config.php, appena prima della riga che dice “That’s all, stop editing! Happy blogging”. Nota: Questo lo disabilita al caricamento delle pagine, non quando lo invocate direttamente tramite wp-cron.php.

define ('DISABLE_WP_CRON', true);
Disattivare WP-Cron
Disattivare WP-Cron

Come Programmare il Cron di Sistema

Dovrete quindi programmare wp-cron.php dal vostro server.

Se avete un multisito, saranno necessarie alcune operazioni di configurazione aggiuntive per far sì che i cron job vengano eseguiti per i sottositi. Ecco alcune risorse utili:

Per un sito WordPress singolo, la buona notizia è che, se siete clienti di Kinsta, di default il nostro cron lato server attiva wp-cron.php ogni 15 minuti. 💪 Questo eseguirà tutti i cron di WordPress programmati. Se necessario, è possibile aumentare la frequenza contattando il nostro team di supporto.

Se avete familiarità con SSH, potete anche seguire il nostro tutorial su come gestire i cron del server dalla linea di comando di Kinsta. Tutti i nostri piani di hosting includono accesso SSH.

Se non siete clienti di Kinsta, consigliamo di leggere Impostare correttamente i Cron Job di WordPress per imparare a configurare i cron di sistema.

Creare un Cron Job in cPanel

Se utilizzate un host con cPanel, potete creare un cron di sistema dal pannello di controllo. Nota: ricordatevi di disabilitare prima il WP-Cron predefinito.

Passo 1

Entrate in cPanel. Nella sezione Avanzate, fate clic su Cron Jobs.

Cron job in cPanel
Cron job in cPanel

Passo 2

Nella sezione Add New Cron Job potete scegliere tra diversi orari predefiniti, ad esempio due volte all’ora o una volta alla settimana. Il provider di hosting impone molto probabilmente un limite alla frequenza di esecuzione dei cron job. Due volte all’ora è un’impostazione comune per gli host condivisi.

Impostazioni cron job in cPanel
Impostazioni cron job in cPanel

Passo 3

Aggiungete il seguente comando. Sostituite https://domain.com con il vostro nome di dominio. Questo comando potrebbe variare leggermente in base alla configurazione del vostro hosting. Poi fate clic su “Aggiungi nuovo Cron Job”.

wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Aggiungere un cron job in cPanel
Aggiungere un cron job in cPanel

La parte >/dev/null 2>&1 del comando qui sopra disabilita le notifiche via email.

Programmare i Cron con una Soluzione di Terze Parti

Se non vi sentite a vostro agio con la configurazione di un cron job sul server, oppure se il vostro provider di hosting non ve ne fornisce l’accesso, potete anche utilizzare una soluzione di terze parti come EasyCron.