Ti è mai capitato che un backup automatico non si esegua?
O che le email del modulo contatti arrivino in ritardo?
O ancora, che un aggiornamento programmato non parta?
Spesso il problema è legato ai cosiddetti cron jobs, un meccanismo fondamentale (ma poco conosciuto) del funzionamento interno di WordPress.
In questo articolo ti spiego cos’è il sistema di cron di WordPress, perché può dare problemi e come configurarlo in modo più affidabile.
Cos’è un cron job
Un “cron job” è un’attività programmata che viene eseguita automaticamente in base a una certa frequenza.
Nel mondo dei server, è una funzione classica di Linux per dire: “esegui questa operazione ogni giorno alle 3 di notte”.
WordPress ha una sua versione interna chiamata WP-Cron, che serve a gestire eventi ricorrenti come:
- Invio automatico di email
- Backup programmati
- Controllo aggiornamenti
- Pubblicazione di articoli pianificati
- Pulizia dei transients o cache
Come funziona WP-Cron
A differenza di un cron job “vero” (gestito dal server), WP-Cron viene eseguito solo quando qualcuno visita il sito.
In pratica:
- L’utente visita una pagina
- WordPress controlla se ci sono attività pianificate da eseguire
- Se sì, le avvia
Questo funziona bene su siti con traffico costante.
Ma se il tuo sito ha pochi visitatori, o riceve solo visite ogni tanto, gli eventi programmati potrebbero non partire mai.
Quando WP-Cron causa problemi
- Il backup automatico non si esegue perché nessuno ha visitato il sito all’orario previsto
- Un post pianificato per le 10:00 del mattino viene pubblicato solo ore dopo
- Gli aggiornamenti automatici non si completano
- Alcuni plugin di newsletter o sincronizzazione smettono di funzionare
Anche l’hosting può influenzare WP-Cron: su server condivisi, può essere bloccato o limitato per motivi di performance.
Come migliorare la gestione dei cron job in WordPress
1. Disabilita WP-Cron interno
Puoi disattivare WP-Cron modificando il file wp-config.php
e aggiungendo questa riga:
define('DISABLE_WP_CRON', true);
Questo impedisce a WordPress di eseguire cron job a ogni visita.
2. Imposta un cron job vero via hosting
Accedi al tuo pannello di controllo (cPanel, Plesk, ecc.) e imposta un cron job che chiami periodicamente lo script wp-cron.php
del tuo sito.
Esempio comando (ogni 15 minuti):
wget -q -O - https://tuosito.it/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Oppure usa curl
se wget
non è disponibile.
3. Usa un plugin per monitorare i cron attivi
Puoi installare plugin come:
- WP Crontrol → ti mostra tutti i cron job attivi, puoi modificarli o eliminarli
- Advanced Cron Manager → interfaccia più chiara, utile per debug
Entrambi ti permettono di vedere se ci sono cron che si accumulano o non partono mai.
Quando conviene intervenire
- Il tuo sito ha funzionalità che dipendono da eventi programmati (backup, email, pubblicazioni)
- Hai traffico basso e cron che non si attivano
- Noti problemi che accadono “a orari precisi” e poi si risolvono da soli
In questi casi, impostare un cron job server-side è la soluzione più stabile.
Conclusione
Il sistema di cron è una delle parti meno visibili ma più importanti di un sito WordPress ben funzionante.
Capire come funziona ti permette di evitare bug silenziosi, garantire backup regolari e avere un sito davvero affidabile.
Se vuoi che controlli il tuo WP-Cron o lo configuri in modo professionale, scrivimi: posso aiutarti a evitare problemi nascosti e migliorare la stabilità del sito.