Cron Job cPanel: Un Cron Job in cPanel esegue un comando a intervalli stabiliti, mentre WP-Cron è il sistema interno di WordPress che avvia le attività programmate quando il sito riceve visite.
Indice dei contenuti
Cron Job cPanel
Le attività pianificate vengono utilizzate per pubblicazioni programmate, invio di notifiche, sincronizzazioni, pulizie, importazioni, backup applicativi e numerose funzioni dei plugin. Una configurazione errata può causare operazioni mai eseguite, processi duplicati, uso elevato di CPU oppure rallentamenti periodici.
Questa guida spiega come creare un Cron Job in cPanel e WP-Cron, come scegliere una frequenza prudente, come verificare il comando e quando è opportuno lasciare la configurazione predefinita.

Differenza tra cron di sistema e WP-Cron
| Sistema | Come viene avviato | Uso tipico |
|---|---|---|
| Cron Job di cPanel | Il server esegue un comando all’orario configurato | Script PHP, comandi CLI, sincronizzazioni e richiamo programmato di WP-Cron |
| WP-Cron | WordPress controlla gli eventi quando riceve una richiesta | Pubblicazioni, plugin, email, pulizie e attività interne |
WP-Cron non è un cron di sistema. Su un sito con poche visite un evento può partire in ritardo, perché WordPress deve ricevere una richiesta. Su un sito molto visitato, invece, il controllo può essere richiamato spesso, anche se WordPress utilizza meccanismi per evitare alcune sovrapposizioni.
Non tutti i siti devono sostituire WP-Cron. Se le attività funzionano, non sono presenti ritardi e le risorse restano normali, la configurazione predefinita può essere sufficiente.
Prima di creare un Cron Job
- identifica esattamente lo script o l’evento da eseguire;
- verifica il percorso completo dell’interprete e del file;
- controlla quanto dura una singola esecuzione;
- evita che una nuova esecuzione inizi prima della precedente;
- crea un backup prima di modificare
wp-config.php; - non inserire password o token direttamente in comandi visibili senza adeguate protezioni.
cPanel raccomanda di lasciare tempo sufficiente tra le esecuzioni. Un cron troppo frequente può avviare più copie dello stesso processo e degradare le prestazioni.
Come creare un Cron Job in cPanel
- accedi a cPanel;
- apri Avanzate → Cron Jobs;
- imposta un indirizzo email solo se desideri ricevere l’output del comando;
- scegli una frequenza da Impostazioni comuni oppure compila minuti, ore, giorno, mese e giorno della settimana;
- inserisci il comando completo;
- seleziona Aggiungi nuovo Cron Job;
- controlla che il nuovo elemento compaia nell’elenco.
Come leggere i cinque campi cron
minuto ora giorno-del-mese mese giorno-della-settimana comando
Per esempio, un’attività ogni 15 minuti utilizza normalmente:
*/15 * * * * comando
Non copiare una pianificazione senza comprenderla. Un asterisco significa “ogni valore” del campo e può trasformare facilmente un’attività prevista una volta al giorno in un comando eseguito ogni minuto.
Come usare un cron reale per WordPress
Prima verifica la cartella esatta dell’installazione. Nell’esempio seguente WordPress si trova in /home/UTENTE/public_html. Il percorso reale dell’account può essere differente.
1. Verifica il comando e configura il cron sostitutivo
Controlla interprete PHP, versione, estensioni e percorso dell’installazione. Esegui una prova controllata con l’utente dell’account: gli eventi scaduti possono eseguire operazioni reali, come invii e pubblicazioni.
/usr/local/bin/php -q /home/UTENTE/public_html/wp-cron.php
I percorsi sono esempi da sostituire. Non presumere che /usr/local/bin/php usi la stessa versione del sito. Durante il test conserva l’output e controlla che gli eventi previsti vengano eseguiti; un output vuoto non dimostra che tutto sia riuscito.
Configura il job in cPanel, controlla almeno un’esecuzione pianificata e passa poi alla disattivazione del trigger da visite. Evita di lasciare due pianificazioni di sistema per la stessa installazione.
In alternativa puoi richiamare l’URL, se accessibile senza autenticazione o blocchi del firewall:
/usr/bin/curl -fsS 'https://www.esempio.it/wp-cron.php?doing_wp_cron'
Il richiamo HTTP dipende anche da DNS, HTTPS e CDN. Verifica l’effetto sugli eventi: la sola risposta HTTP non garantisce il completamento delle attività.
2. Disattiva il trigger avviato dalle visite
Dopo aver verificato il sostituto, salva una copia privata di wp-config.php e modifica la definizione esistente, oppure aggiungi questa riga prima del caricamento di wp-settings.php:
define( 'DISABLE_WP_CRON', true );
Non duplicare la costante. Gli eventi restano memorizzati: cambia il modo in cui vengono avviati. Controlla nuovamente le esecuzioni; se il cron sostitutivo smette di funzionare, ripristina il valore precedente mentre risolvi il problema.
Quale frequenza scegliere
Una frequenza di 5 o 10 minuti è spesso sufficiente per siti che richiedono puntualità. Per siti informativi con poche attività possono bastare 15 o 30 minuti. Non impostare ogni minuto senza una necessità documentata.
| Scenario | Intervallo iniziale prudente |
|---|---|
| Blog e sito informativo | 15–30 minuti |
| WooCommerce con attività regolari | 5–10 minuti |
| Importazioni o sincronizzazioni pesanti | In base alla durata reale, evitando sovrapposizioni |
| Invii massivi o code | Secondo la documentazione del plugin e i limiti del servizio |
Come evitare esecuzioni sovrapposte
Se uno script dura più dell’intervallo configurato, possono avviarsi più processi. Quando il comando lo consente, utilizza un lock con flock:
/usr/bin/flock -n /home/UTENTE/cron-privati/mio-cron.lock /usr/local/bin/php -q /home/UTENTE/script.php
Prima crea la cartella privata dell’esempio, fuori dalle directory pubbliche e accessibile soltanto all’utente del job, e verifica che flock sia disponibile. Non riutilizzare lo stesso file di lock per attività differenti. Inoltre un plugin può già implementare una propria coda o un proprio blocco; leggi la relativa documentazione prima di aggiungere wrapper.
Come controllare se il Cron Job funziona
- esegui manualmente il comando da terminale, quando disponibile;
- rimuovi temporaneamente la soppressione
>/dev/null 2>&1per leggere gli errori; - invia l’output a un file di log nella tua home;
- controlla le pubblicazioni e le attività pianificate in WordPress;
- verifica data e ora dei file generati;
- controlla CPU, memoria e processi nella sezione Resource Usage.
Esempio temporaneo di log:
/usr/local/bin/php -q /home/UTENTE/public_html/wp-cron.php >> /home/UTENTE/wp-cron-test.log 2>&1
Dopo il test limita o ruota il log: la crescita dello stesso file consuma spazio, mentre la creazione di molti file aumenta anche l’uso degli inode. Conserva i log fuori dalle directory pubbliche e controlla che non contengano credenziali o dati personali non necessari.
Errori frequenti
- percorso PHP errato o versione PHP differente dal sito;
- percorso del file incompleto;
- permessi insufficienti;
- cron configurato ogni minuto senza necessità;
DISABLE_WP_CRONattivo senza cron sostitutivo;- due cron che richiamano la stessa attività;
- output inviato via email a ogni esecuzione;
- script che resta bloccato o attende un servizio esterno.
Una configurazione corretta di Cron Job in cPanel e WP-Cron deve essere verificata dopo ogni modifica importante al sito o alla versione PHP.
Domande frequenti
Qual è la differenza tra Cron Job di sistema e WP-Cron?
Un Cron Job di sistema viene eseguito dal server secondo una pianificazione reale. WP-Cron viene invece attivato dalle richieste a WordPress e può ritardare su siti con poco traffico o essere eseguito più spesso del previsto su siti molto visitati.
Come verificare che un Cron Job funzioni correttamente?
Controlla comando, percorso, frequenza e output del job e verifica che l’operazione prevista venga realmente eseguita. Per WordPress controlla anche che non restino eventi in ritardo e che non vengano avviate esecuzioni sovrapposte.
Guide Xlogic correlate
- WordPress cron spawn failed: WP-Cron non parte
- Trasferire WordPress a Xlogic senza downtime
- PHP Selector in cPanel: cambiare versione PHP ed estensioni
Fonti tecniche
- WordPress Plugin Handbook: Cron
- WordPress: wp_schedule_event
- WordPress — Collegare WP-Cron al cron di sistema
- cPanel — Cron Jobs