Come Far Girare il Cron dal Server Anziché Usare quello Nativo di WordPress

Il sistema di cron di WordPress, noto come WP-Cron, è una funzione integrata per gestire attività pianificate come la pubblicazione posticipata, la pulizia del database e il controllo degli aggiornamenti. Tuttavia, WP-Cron presenta alcune limitazioni. Essendo un “cron virtuale” (non un vero cron di sistema), si attiva solo quando c’è una visita sul sito, il che può causare ritardi o rallentamenti in siti con traffico basso o estremamente alto.

Per garantire una gestione più affidabile delle operazioni pianificate, è possibile configurare il cron direttamente dal server, bypassando WP-Cron. Vediamo come fare.


Passo 1: Disattivare WP-Cron

Il primo passo consiste nel disattivare WP-Cron per evitare che si attivi automaticamente a ogni visita al sito. Per farlo, bisogna modificare il file wp-config.php.

  1. Accedi al file wp-config.php tramite FTP o File Manager nel pannello di controllo del tuo hosting.
  2. Aggiungi la seguente riga prima della linea /* That's all, stop editing! Happy publishing. */:
    php
     
    define('DISABLE_WP_CRON', true);

Questa riga di codice disabilita WP-Cron, impedendo che WordPress esegua le sue operazioni pianificate ad ogni visita del sito.
Se sei un utente di Freesoul Deactivate Plugins PRO puoi disabilitare WP-Cron direttamente nella pagina di impostazioni “General Bloat”. Leggi la documentazione per maggiori dettagli.


Passo 2: Configurare il Cron di Sistema

Ora che WP-Cron è disabilitato, possiamo impostare un cron job a livello di server. Questo richiede l’accesso alla console del server o al pannello di controllo del tuo provider di hosting (come cPanel o Plesk).

2.1 Configurare il Cron in cPanel (Metodo comune per molti hosting condivisi)

  1. Accedi a cPanel.
  2. Vai alla sezione Cron Jobs.
  3. Nella sezione per l’aggiunta di un nuovo cron job, seleziona l’intervallo di esecuzione desiderato. Per una gestione simile a quella di WP-Cron, puoi impostarlo per eseguire ogni 5 o 10 minuti.
  4. Nel campo Comando, inserisci il seguente comando, sostituendo https://www.tuosito.com con l’URL del tuo sito:
    bash
    wget -q -O - https://www.tuosito.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

    Oppure, puoi usare direttamente curl:

    bash
    curl -s https://www.tuosito.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

    Questo comando richiama il file wp-cron.php ogni X minuti, eseguendo le operazioni pianificate di WordPress.

2.2 Configurare il Cron tramite Terminale (per server dedicati o VPS)

Se hai accesso alla console del server tramite SSH, puoi configurare il cron direttamente.

  1. Connettiti al server tramite SSH.
  2. Apri il file crontab per l’utente attuale con il comando:
    bash
    crontab -e
  3. Aggiungi una nuova linea al file crontab per richiamare wp-cron.php a intervalli regolari. Ad esempio, per eseguire il cron ogni 10 minuti, puoi aggiungere:
    bash
    */10 * * * * curl -s https://www.tuosito.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
  4. Salva e chiudi il file. Questo comando attiverà wp-cron.php ogni 10 minuti, eseguendo le operazioni pianificate di WordPress direttamente dal server.

Passo 3: Verificare il Funzionamento

Una volta impostato il cron job, puoi verificarne il funzionamento in diversi modi:

  • Controlla i log di sistema (se hai accesso) per vedere quando il cron job è stato eseguito.
  • Monitora il sito per assicurarti che le operazioni pianificate (come i post programmati) vengano eseguite all’orario previsto.
  • Usa un plugin come WP Crontrol per vedere lo stato e la frequenza delle attività pianificate.

Vantaggi dell’uso del Cron di Sistema

  • Maggiore Precisione: A differenza di WP-Cron, il cron di sistema esegue le attività all’ora esatta specificata, indipendentemente dal traffico sul sito.
  • Minore Carico sul Server: Poiché WP-Cron viene eseguito ad ogni visita, può aumentare il carico del server nei momenti di traffico elevato. Con un cron di sistema, esegui le attività solo quando necessario.
  • Ottimizzazione delle Prestazioni: Utilizzando un cron di sistema, puoi ridurre il tempo di caricamento delle pagine, poiché il cron di WordPress non si attiverà ad ogni richiesta del sito.

Considerazioni Finali

Spostare il cron su un sistema esterno può fare una grande differenza per le prestazioni e l’affidabilità di un sito WordPress, soprattutto in ambienti con molto traffico o con un uso intensivo delle funzionalità di pianificazione. Questa configurazione non solo aiuta a mantenere le prestazioni del sito stabili, ma assicura anche che le operazioni pianificate vengano eseguite regolarmente senza dipendere dalle visite degli utenti.

Configurare il cron direttamente dal server è quindi una soluzione pratica, relativamente semplice da attuare, e in grado di migliorare la gestione delle attività in WordPress.