Salta al contenuto ID

Come disattivare il CRON di WordPress e attivare quello di cPanel

WordPress non può eseguire i processi schedulati in modo regolare, deve aggirare il problema elaborando un file che si chiama wp-cron.php ad ogni visita. Questo significa che un sito web mai visitato non esegue mai processi CRON, mentre quello molto affollato li esegue più del necessario.

Nella maggioranza dei casi il traffico è sufficiente per eseguire wp-cron.php poche centinaia di volte al giorno. Tutto gira tranquillamente e il problema non sussiste. Nemmeno io sono troppo pignolo e non faccio quasi mai ciò che scrivo in questa pagina.

Però, prova a immaginare un sito che riceve 100 visite all’ora, e ogni visitatore apre in media 3 pagine, sono 300 esecuzioni all’ora. Gli utenti si sovrappongono allo stesso minuto eseguendo wp-cron.php contemporaneamente. Non tutte le ore della giornata hanno la stessa intensità di traffico, ma certamente abbiamo migliaia di esecuzioni al giorno.

In situazioni particolari le azioni di wp-cron.php potrebbero richiedere alcuni minuti, il server è dunque occupato inutilmente ad eseguire più istanze delle stesse attività. In questo modo rischi di esaurire rapidamente le quote consentite di memoria virtuale e CPU. Ciò causa il crash del sito o altri malfunzionamenti come l’interruzione delle risorse nella pagina (js, css, font, immagini) con errori 403, 404 e 508.

Per risolvere questo problema devi disattivare il CRON di WordPress e aggiungerne uno lato server con la cadenza più consona alle tue reali necessità.
Puoi decidere di avviarlo una volta all’ora, o addirittura una volta al giorno. Fai una valutazione: il sito ha plugin che fanno pulizia automatica di commenti? Pianifichi la pubblicazione automatica di articoli con date e ore posticipate? Nel tuo sito pubblichi eventi che iniziano e finiscono a orari specifici? Hai un plugin che fa backup giornaliero? Il tuo sito è sincronizzato con sistemi esterni come l’importazione di prodotti da/verso altre piattaforme? Il sito manda notifiche automatiche via email agli utenti registrati? Queste sono situazioni molto specifiche di cui sei ovviamente a conoscenza. In tutti gli altri casi il CRON non è importante.

Iniziamo modificando il file wp-config.php, normalmente si trova nella cartella dell’installazione WordPress. Puoi modificarlo utilizzando un editor di testo. Va aggiunto il codice seguente.

define('DISABLE_WP_CRON', true);

A questo punto puoi entrare in cPanel per aggiungere un CRON JOB (va bene anche qualsiasi altro pannello ti fornisca l’hosting provider).

Scegli l’intervallo di tempo giusto, ce ne sono di predefiniti nel primo menu a tendina. Secondo me “Once Per Day” è buono, a meno che tu non abbia ragioni per aumentare la frequenza. Se hai esigenze speciali, come una volta ogni tre minuti, prendi l’esempio di “Once Per Five Minutes” e cambia il valore di minuti.

Il comando da inserire è il seguente.

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

La parte finale “>/dev/null 2>&1” serve a evitare che venga inviata una comunicazione via email dell’avvenuta esecuzione (al postmaster), mentre fai debug forse è meglio togliere questa parte, così ti accorgi se il CRON funziona. Questo è tutto.

Comments (0)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna su