Come disabilitare WP-Cron (wp-cron.php) per migliorare le prestazioni

I cron job vengono utilizzati per programmare attività a orari, date o intervalli periodici sul tuo sito WordPress. Alcuni esempi di un cron job in WordPress possono includere la programmazione della pubblicazione di un post, il controllo degli aggiornamenti o l’esecuzione di un plugin di backup secondo uno schema prestabilito.

In WordPress, questo compito è gestito da WP-Cron, che viene utilizzato per simulare un cron di sistema. Tuttavia, in base al volume di traffico del tuo sito, l’uso del cron handler integrato può iniziare a influire sui tempi di caricamento delle pagine. Oggi ti mostreremo quindi come disabilitare WP-Cron (wp-cron.php) e utilizzare invece un cron di sistema per ottenere prestazioni superiori.

Problemi di prestazioni con WP-Cron

Gestiamo molti siti ad alto traffico e molto esigenti. Per questo motivo, abbiamo riscontrato numerosi problemi di prestazioni con il gestore Cron integrato in WordPress: WP-Cron. Innanzitutto, è importante capire che WP-Cron non è un vero cron job, ma è semplicemente ciò che WordPress ha creato per emulare il funzionamento del cron di sistema.

WP-Cron non viene eseguito continuamente. Di default, il file wp-cron.php viene attivato ad ogni caricamento della pagina, il che può causare problemi sui siti ad alto traffico. Se un sito non dispone di abbastanza PHP worker, può capitare che arrivi una richiesta, WordPress avvii il cron, ma quest’ultimo debba attendere il worker, rimanendo quindi in sospeso.

Lo stesso vale per lo scenario opposto. Se un sito non ha molto traffico, le pianificazioni potrebbero saltare perché non è stata caricata alcuna pagina.

L’approccio migliore consiste nel disabilitare WP-Cron e utilizzare invece il cron di sistema. Quest’ultimo viene eseguito secondo una pianificazione predefinita ed è persino raccomandato nel Plugin handbook ufficiale.

Come disabilitare WP-Cron

Per disabilitare WP-Cron, aggiungi quanto segue al tuo file wp-config.php, subito prima della riga che riporta: “That’s all, stop editing! Happy blogging.

Nota: Questa operazione ne impedisce l’esecuzione al caricamento della pagina, non quando viene richiamato direttamente tramite wp-cron.php.

define('DISABLE_WP_CRON', true);
disabilita-wp-cron

Come pianificare il cron di sistema

Dovrai quindi pianificare l’esecuzione di wp-cron.php dal tuo server.

Se il tuo sito è in modalità multisite, sono necessari alcuni passaggi di configurazione aggiuntivi affinché i cron job vengano eseguiti correttamente anche per i tuoi subsite. Ecco alcune risorse che ti consigliamo:

Crea un Cron Job in cPanel

Se utilizzi un hosting con cPanel, puoi anche creare un cron di sistema dal relativo pannello di controllo.

Nota: Assicurati di disabilitare per prima cosa il WP-Cron predefinito indicato sopra.

Passaggio 1

Accedi a cPanel. Nella sezione Avanzata, clicca su Cron Jobs.

Passaggio 2

Nella sezione Aggiungi nuovo cron job, è possibile scegliere tra diverse frequenze predefinite, come due volte all’ora o una volta alla settimana. È molto probabile che il tuo provider di hosting abbia un limite sulla frequenza con cui consente l’esecuzione dei cron job. Due volte all’ora è un’impostazione comune per i piani di shared hosting.

Passo 3

Aggiungi il seguente comando. Sostituisci https://domain.com con il tuo nome di dominio. Questo comando potrebbe variare leggermente in base alla configurazione del tuo hosting. Successivamente, clicca su “Aggiungi nuovo Cron Job”.

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

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

Scegli il pacchetto web più adatto alla tua attività e inizia subito a sviluppare la tua presenza online.

  • Hosting
  • Dominio
  • Server
  • Altri Servizi
  • Assistenza
This is a staging environment