Uno dei meccanismi meno noti ma più importanti in WordPress è il sistema di cron interno, utilizzato per eseguire operazioni pianificate come pubblicazione post programmati, aggiornamenti automatici, pulizia del database, invio di email e altro ancora.
Tuttavia, su ambienti shared (hosting condivisi) questo sistema può causare rallentamenti e un inutile consumo di risorse, soprattutto in siti con traffico elevato o molti plugin.
La soluzione? Disattivare il cron interno di WordPress e sostituirlo con un cron job esterno configurato direttamente dal pannello di controllo dell’hosting.
Indice dei contenuti
Perché disattivare il cron interno di WordPress?
Il cron interno (wp-cron.php) si attiva a ogni visita al sito. Questo significa che:
- Su siti con traffico medio-alto può sovraccaricare il server.
- Su siti con poco traffico, le attività pianificate potrebbero non avviarsi nei tempi previsti.
- Nei piani di hosting economici, può causare latenze, timeout o errori interni.
1. Disattivare il cron interno di WordPress
Apri il file wp-config.php nella root del tuo sito WordPress e inserisci questa riga di codice prima del commento finale:
define('DISABLE_WP_CRON', true);2. Creare un cron job esterno dal pannello di controllo dell’hosting
Ora bisogna sostituire il cron interno con un cron job vero e proprio, che esegue periodicamente wp-cron.php dall’esterno.
Esempio per cPanel (ma simile su molti altri pannelli):
- Accedi al pannello di controllo del tuo hosting (es. cPanel, DirectAdmin, Plesk).
- Vai nella sezione Cron Jobs (o azioni programmate).
- Imposta la frequenza (es. ogni 15 minuti).
- Inserisci uno dei seguenti comandi:
wget -q -O - https://www.tuosito.it/wp-cron.php?doing_wp_cron >/dev/null 2>&1oppure
curl https://www.tuosito.it/wp-cron.php?doing_wp_cron >/dev/null 2>&1Importante: sostituisci https://www.tuosito.it con l’URL reale del tuo sito.
La maggior parte degli hosting supportano cron job personalizzati, anche nei piani base.
Frequenza consigliata
- Ogni 15 minuti è generalmente sufficiente per la maggior parte dei siti.
- Per siti con traffico più alto o operazioni frequenti (es. e-commerce), puoi abbassarla a 5 minuti.
Disattivare il cron interno di WordPress e sostituirlo con un cron job esterno è una best practice spesso trascurata, ma fondamentale per migliorare le performance in ambienti di hosting condiviso.
Vantaggi: facciamo un po’ di conti
Capisco perfettamente che decidere di intervenire sul cron di WordPress possa sembrare, a prima vista, un’operazione un po’ tecnica o complessa. Ma fidati: non lo è, soprattutto se segui passo-passo questa guida.
E per aiutarti a capire quanto vale davvero la pena, vediamolo con un esempio pratico.
Scenario:
Il tuo sito è visitato da circa 100 utenti al giorno. Ognuno di loro visita in media 5 pagine. Questo significa che, in un giorno, WordPress riceve 500 visite.
Con il cron interno attivo, ogni visita attiva wp-cron.php, quindi stiamo parlando di 500 attivazioni del cron in 24 ore — oltre 20 ogni ora!
Ora, se invece configuri un cron job esterno:
- Con una frequenza di 15 minuti, il cron si attiverà solo 4 volte ogni ora.
- Con una frequenza di 5 minuti, saranno 12 attivazioni all’ora.
In entrambi i casi, la differenza è netta.
Attenzione: wp-cron.php non genera una pagina web. Viene eseguito in background per gestire operazioni pianificate, e non è ottimizzato dalla cache. Ogni attivazione implica un’elaborazione reale da parte del server, a volte anche pesante se hai molti plugin o script collegati.
Risultato?
Questa semplice modifica può ridurre il carico causato dal cron dal 50% fino al 75%, anche con un sito di medio traffico.
E se il tuo sito riceve molto più traffico, la riduzione diventa ancora più significativa, arrivando a ridurre il carico cron fino al 90% o più!
Esempio comparativo
| Visite al giorno | Attivazioni wp-cron con WordPress | Attivazioni con cron ogni 15 min | Attivazioni con cron ogni 5 min | Riduzione |
|---|---|---|---|---|
| 500 | 500 | 96 | 288 | 81% |
| 2.000 | 2.000 | 96 | 288 | 95% |
| 5.000 | 5.000 | 96 | 288 | 98% |
Conclusioni
Disattivare il cron interno di WordPress e sostituirlo con un cron job esterno è una best practice spesso trascurata, ma fondamentale per migliorare le performance in ambienti di hosting condiviso.
Con pochi minuti di configurazione, puoi:
- Ridurre il carico sul server
- Evitare rallentamenti
- Garantire un’esecuzione regolare delle operazioni pianificate
Vuoi un altro motivo per farlo? Migliora anche la tua SEO. Sì, hai letto bene: un sito più veloce e stabile viene premiato dai motori di ricerca. Usa questa e altre tecniche di ottimizzazione per migliorare il tuo posizionamento e aumentare il numero di visite.
Scopri di più consultando gli altri articoli dedicati alla SEO.
FAQ – Cron di WordPress
Disattivare il cron interno di WordPress è sicuro?
Sì, è una pratica sicura e consigliata, purché venga configurato un cron job esterno. In questo modo WordPress continua a gestire tutte le attività pianificate senza dipendere dalle visite degli utenti.
Cosa succede se disattivo il cron interno senza crearne uno esterno?
Le operazioni pianificate non verranno più eseguite automaticamente. Questo può causare problemi come post programmati non pubblicati, email non inviate o plugin che smettono di funzionare correttamente.
Posso configurare un cron esterno anche su hosting condiviso?
Sì, nella maggior parte dei casi. Pannelli come cPanel, DirectAdmin o Plesk permettono di creare cron job personalizzati anche sui piani di hosting condiviso.
È necessario usare WP-CLI?
No, non è obbligatorio. Tutta la configurazione può essere fatta dal pannello di controllo dell’hosting, senza accesso SSH o strumenti avanzati.
Qual è la frequenza migliore per il cron esterno?
Per la maggior parte dei siti è sufficiente una esecuzione ogni 15 minuti. Per e-commerce o siti con molte operazioni pianificate, è preferibile una frequenza di 5 minuti.
Il cron di WordPress viene gestito dalla cache?
No, wp-cron.php viene sempre eseguito in background e non beneficia dei sistemi di cache. Ogni chiamata comporta un carico reale sul server.
Ci sono reali benefici sulle performance?
Sì. Riducendo il numero di esecuzioni del cron, diminuiscono l’uso di CPU e RAM, migliorando la velocità e la stabilità del sito.
Questa modifica ha effetti anche sulla SEO?
Sì. Un sito più veloce e stabile offre una migliore esperienza utente, fattore che contribuisce positivamente al posizionamento sui motori di ricerca.
