Salta al contenuto

Cron Job in cPanel e WP-Cron: configurazione corretta

Pubblicato il Aggiornato il

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.

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.

Cron Job cPanel: panoramica

Differenza tra cron di sistema e WP-Cron

SistemaCome viene avviatoUso tipico
Cron Job di cPanelIl server esegue un comando all’orario configuratoScript PHP, comandi CLI, sincronizzazioni e richiamo programmato di WP-Cron
WP-CronWordPress controlla gli eventi quando riceve una richiestaPubblicazioni, 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

  1. accedi a cPanel;
  2. apri Avanzate → Cron Jobs;
  3. imposta un indirizzo email solo se desideri ricevere l’output del comando;
  4. scegli una frequenza da Impostazioni comuni oppure compila minuti, ore, giorno, mese e giorno della settimana;
  5. inserisci il comando completo;
  6. seleziona Aggiungi nuovo Cron Job;
  7. 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.

ScenarioIntervallo iniziale prudente
Blog e sito informativo15–30 minuti
WooCommerce con attività regolari5–10 minuti
Importazioni o sincronizzazioni pesantiIn base alla durata reale, evitando sovrapposizioni
Invii massivi o codeSecondo 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>&1 per 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_CRON attivo 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

Fonti tecniche

Cron Job in cPanel e WP-Cron: configurazione corretta ultima modifica: 2026-08-01T16:29:36+02:00 da Team tecnico Xlogic

Ti è piaciuto questo Post?