Come disabilitare wp-cron in WordPress (e utilizzare invece un vero Cron Job)
Vuoi disabilitare wp-cron e sostituirlo con il tuo vero cron lavoro?
Sostituire wp-cron con il tuo cron job può aiutarti a eseguire le attività pianificate del tuo sito in modo più affidabile e anche a ridurre il carico sul tuo server per i siti ad alto traffico.
In questo post, spiegheremo cos’è wp-cron e perché potresti volerlo disabilitare se non hai familiarità con questa tattica. Quindi, ti mostreremo passo dopo passo come disabilitare wp-cron e sostituirlo con un vero cron job.
Se hai già familiarità con ciò che è wp-cron e perché potresti volerlo disabilitare, puoi farlo clicca qui per passare direttamente al tutorial.
Cos’è wp-cron?
Wp-cron è un file/funzione responsabile del controllo delle attività urgenti del tuo sito WordPress.
Ad esempio, supponiamo che tu abbia programmato la pubblicazione di un post mercoledì prossimo alle 9:30. Wp-cron si assicura che ciò avvenga in tempo (o almeno il più vicino possibile a “in tempo” – ne parleremo tra un secondo).
Oltre a garantire il funzionamento delle funzionalità principali di WordPress, molti plug-in di WordPress si affidano anche a wp-cron per gestire parti del plug-in sensibili alla pianificazione.
Se desideri visualizzare tutte le attività pianificate sul tuo sito, puoi utilizzare a plugin gratuito come WP-Crontrol. Se vai a Strumenti → Eventi Cronpuoi vedere tutte le attività automatiche che WordPress ha pianificato di eseguire e con quale frequenza vengono eseguite:

Come suggerisce il nome, wp-cron deriva dal più generale sistema di pianificazione cron utilizzato dai sistemi operativi Unix. Tuttavia, wp-cron è distinto da quei sistemi di pianificazione e wp-cron non è un vero lavoro cron.
La grande differenza è che wp-cron viene eseguito solo quando tu o un’altra persona visitate il vostro sito web (sul front-end o nella vostra dashboard). Ogni volta che qualcuno visita il tuo sito, WordPress eseguirà il file wp-cron.php e verificherà le attività pianificate. Se c’è un’attività, la eseguirà.
Tuttavia, questo può rappresentare un problema per i siti a basso traffico perché wp-cron viene eseguito solo quando c’è una visita. Ad esempio, supponiamo che tu abbia programmato quel post per mercoledì alle 9:30, ma che il tuo sito non riceva visite a quell’ora. In effetti, il tuo sito non riceve la visita successiva fino alle 11:30.
Bene, in quello scenario, il tuo post non verrebbe pubblicato fino alle 11:30 perché wp-cron non poteva essere eseguito quando non c’erano visite. Mostrerebbe comunque il timestamp come 9:30 – semplicemente non apparirebbe sul tuo sito fino alle 11:30.
Perché dovresti disabilitare wp-cron?
Ci sono due ragioni dietro la disabilitazione di wp-cron e la sua sostituzione con il tuo cron job dedicato:
- Affidabilità – come illustrato nell’esempio sopra, wp-cron non è sempre affidabile su siti a basso traffico perché ha bisogno di una visita al sito web per essere eseguito. Con un vero cron job, puoi impostare le tue attività in modo che vengano eseguite ogni X minuti non importa cosa – anche se non ci sono visite.
- Prestazione – su siti ad alto traffico, ad alcune persone non piace wp-cron perché WordPress eseguirà il file wp-cron.php su quasi ogni singola visita. WordPress cerca di limitare questo non eseguendolo più di una volta ogni 60 secondi, ma possono comunque verificarsi rallentamenti delle prestazioni per vari motivi tecnici, come visite simultanee che attivano entrambi wp-cron.
In poche parole, imparare a disabilitare wp-cron può essere utile sia per i siti a basso traffico che per quelli ad alto traffico, anche se per motivi diversi.
Come disabilitare wp-cron (e impostare un vero cron job)
Ora che conosci il “cosa” e il “perché”, entriamo nel “come”. Ti mostreremo come disabilitare wp-cron e poi sostituirlo con il tuo cron job del server (o un’altra soluzione).
Ci sono due parti del processo:
- Devi disabilitare la funzione wp-cron integrata in modo che WordPress non esegua wp-cron.php ad ogni visita. Per fare ciò, devi solo aggiungere una riga di codice al file wp-config.php del tuo sito.
- Devi impostare il tuo lavoro cron per chiamare wp-cron.php nella pianificazione che hai impostato. Con questo, puoi eseguire wp-cron.php su una pianificazione specifica, indipendentemente dal fatto che il tuo sito riceva traffico.
Disabilita wp-cron su WordPress
Per disabilitare wp-cron, devi aggiungere una riga di codice al file wp-config.php del tuo sito. Poiché si tratta di un file di configurazione chiave, ti consigliamo vivamente di eseguire il backup del tuo sito prima di apportare modifiche (o almeno di creare una copia del file wp-config.php originale in modo da poter ricaricare la copia di lavoro se qualcosa va storto ).
Per accedere al file wp-config.php, puoi:
- Connettiti al tuo server tramite FTP e trova il file nella directory principale (la stessa directory che contiene le cartelle wp-admin e wp-content).
- Usa qualcosa come cPanel File Manager per sfogliare i file del tuo server dal tuo browser web.
Una volta che hai un backup del tuo sito e/o del file wp-config.php originaleaggiungi il seguente frammento di codice sopra la riga che dice /* That's all, stop editing! Happy publishing. */
define('DISABLE_WP_CRON', true);
Così:

Salva le modifiche e ricarica il file se necessario.
Una volta fatto ciò, WordPress non chiamerà più il file wp-cron.php quando le persone visitano il tuo sito web.
Imposta il tuo cron job
Quando hai disabilitato wp-cron, devi impostare il tuo cron job in modo che le attività automatiche del tuo sito continuino a essere eseguite.
Ci sono due modi per farlo:
- Puoi creare il tuo cron job a livello di server usando il tuo hosting. Il processo esatto varia a seconda del provider di hosting.
- Puoi utilizzare un servizio cron online, ovvero strumenti basati su cloud che ti consentono di eseguire il processo cron utilizzando i server del servizio. In genere, questi servizi hanno piani gratuiti limitati, quindi potrebbe essere necessario pagare. Per fortuna, anche i servizi a pagamento sono abbastanza convenienti (ad esempio $ 12 per anno).
Ti mostrerò come configurare entrambi, ma devi solo utilizzare uno di questi metodi.
Imposta un cron job del server tramite il tuo hosting
Il processo di impostazione di un cron job del server varia a seconda del tuo host. Alcuni lo rendono molto semplice, mentre altri no.
Userò cPanel per questo esempio perché è la soluzione più popolare, ma ti consiglio di consultare i documenti di supporto del tuo host se il tuo host non usa cPanel o se non sei sicuro di dove trovare questa funzione (o se il tuo host lo consente).
Per iniziare, accedi alla tua dashboard di hosting e vai su cPanel. Nell’interfaccia cPanel, dovresti trovare uno strumento chiamato Lavori Cron (o qualcosa di simile). In genere, è sotto il Avanzate categoria, ma potrebbe essere diverso a seconda del tuo host.
Seleziona quello strumento:

Nella pagina successiva, trova il Aggiungi nuovo lavoro Cron sezione. Dovresti vedere le opzioni per specificare i tempi, così come a Comando.
La tempistica dipende da te, ma di solito eseguirlo ogni 30 minuti è un buon punto di partenza, specialmente sull’hosting condiviso. In effetti, alcuni host condivisi non ti consentono di eseguirli più spesso.
Puoi scegliere Due volte all’ora dal Impostazioni comuni menu a discesa, che preconfigurerà il resto delle impostazioni di temporizzazione. Oppure puoi usare Crontab.guru per generare tu stesso la sintassi, devi solo inserire i dettagli nelle caselle corrispondenti.
Quindi, aggiungi la seguente riga di codice al file Comando scatola:
wget -q -O - >/dev/null 2>&1
Assicurati di sostituire con l’URL effettivo del tuo sito web.
Ad esempio, se il tuo sito web è https://basketballfanatic.com
allora il comando corretto sarebbe:
wget -q -O - >/dev/null 2>&1

Assicurati di fare clic su Aggiungi nuovo lavoro Cron pulsante per salvare il tuo cron job. Quindi, dovresti vederlo apparire nell’elenco di Lavori Cron attuali qui di seguito.
Usa un servizio cron online
Se il tuo host non ti consente di impostare cron job o se preferisci semplicemente un’esperienza più semplice, potresti invece voler utilizzare un servizio cron dedicato.
Ci sono diverse opzioni popolari qui, tra cui le seguenti:
Useremo EasyCron per questo tutorial.
EasyCron è gratuito per un massimo di 200 chiamate cron giornaliere a un intervallo massimo di 20 minuti (che ti consente di eseguire una singola attività ogni 20 minuti ogni giorno), che dovrebbe essere sufficiente per un singolo sito WordPress. I piani a pagamento sono anche abbastanza convenienti, a partire da soli $ 12 per anno.
Per iniziare, Registrati per avere un account gratuito.
Quindi, fare clic su + lavoro Cron pulsante nell’interfaccia di EasyCron:

Vedrai quindi un popup in cui puoi impostare il tuo cron job.
Nel URL da chiamare campo, entra assicurandosi di sostituire
con l’URL effettivo del tuo sito web.
Poi, sotto Quando eseguirescegliere Ogni 30 minuti (puoi scegliere più spesso se necessario, ma 30 minuti sono un buon punto di partenza per la maggior parte dei siti web).
Quindi, fai clic Crea lavoro Cron per salvare le tue impostazioni e rendere attivo il tuo cron job:

Fatto!
Disabilita wp-cron oggi per una pianificazione delle attività più affidabile
Wp-cron è il sistema di pianificazione WordPress integrato che garantisce che le varie attività del tuo sito vengano eseguite in tempo, come i post del blog programmati.
Tuttavia, la funzionalità integrata presenta alcuni inconvenienti quando si tratta di affidabilità (per siti a basso traffico) e le prestazioni (per siti ad alto traffico). Per questi motivi, potresti voler disabilitare wp-cron e sostituirlo con un vero cron job, che è quello che ti abbiamo mostrato in questo post.
Per altri modi per migliorare le prestazioni del tuo sito, consulta la nostra guida completa per migliorare le prestazioni di WordPress.