Come Disabilitare WP_CRON in wp-config.php e Verificare con WP Crontrol
Gestire le attività pianificate in WordPress è essenziale per la salute del tuo sito. Il sistema gestisce pubblicazioni, backup e notifiche automatiche in background.
Tuttavia, la configurazione predefinita del CMS non sfrutta un vero cron di sistema. Al contrario, si affida a un cron virtuale dipendente dal traffico degli utenti.
In questa guida imparerai a disattivare questo automatismo imperfetto. Se vuoi approfondire le cause degli errori di scheduling, leggi la guida per risolvere l’errore di programmazione fallita su WordPress.
1. Perché il Cron Virtuale di WordPress è un Problema
Come funziona il meccanismo predefinito
WordPress avvia il file wp-cron.php a ogni visita sul sito web. Il sistema controlla se ci sono compiti da eseguire in quel preciso momento.
Questo meccanismo simula le attività schedulate senza richiedere configurazioni avanzate sul server. Si tratta di un’ottima soluzione per utenti inesperti su hosting condivisi limitati.
Tuttavia, l’esecuzione dipende esclusivamente dall’arrivo di nuove visite sul portale. Se nessuno visita il sito, nessun processo pianificato viene avviato nei tempi previsti.
Limiti sui siti ad alto e basso traffico
Nei siti privi di traffico frequente, gli articoli programmati falliscono regolarmente l’uscita. I backup pianificati di notte non partono fino al mattino successivo.
Al contrario, nei siti con molto traffico si presenta il problema opposto. Centinaia di visitatori simultanei attivano inutilmente continue chiamate HTTP interne verso il database.
Questo carico genera rallentamenti evidenti durante la navigazione delle pagine. Il server consuma memoria e risorse preziose per controlli spesso non necessari.
2. Modifica Manuale del File wp-config.php
Accesso ai file tramite SFTP o File Manager
Per intervenire sui file principali del sito, ti serve un client FTP sicuro. Puoi utilizzare software gratuiti come FileZilla o Cyberduck collegandoti al server.
In alternativa, usa il File Manager integrato nel pannello di controllo del tuo hosting. Entrambe le soluzioni ti permettono di visualizzare i file sorgente dell’installazione.
Prima di modificare qualsiasi riga, scarica sempre una copia di sicurezza del file. Un backup rapido ti salverà da eventuali errori di sintassi imprevisti.
Inserimento della direttiva di disattivazione
Il primo passo fondamentale consiste nel disabilitare WP_CRON in wp-config.php per fermare l’esecuzione casuale.
Apri il file wp-config.php situato nella cartella principale del tuo sito. Scorri verso il basso fino a individuare la riga con il commento finale.
Cerca il testo /* That’s all, stop editing! Happy publishing. */. Subito prima di questo commento, inserisci la seguente riga di codice:
define('DISABLE_WP_CRON', true);
Questa semplice riga consente di disabilitare WP_CRON in wp-config.php senza alterare il funzionamento interno del CMS.
Salva il file modificato e ricaricalo sul server sostituendo il file precedente. Da questo momento, le visite esterne non innescheranno più alcun processo automatico.
Avviso Tecnico: Non inserire mai la costante alla fine del file. Se la posizioni dopo la riga di blocco, WordPress ignorerà completamente la configurazione.
3. Configurare un Cron Reale a Livello di Server
Impostazione del cron job su cPanel o Crontab
Ora che il cron virtuale è spento, serve un orologio reale. Dobbiamo istruire il server per eseguire i compiti a intervalli orari precisi.
Se utilizzi cPanel, cerca la sezione denominata Operazioni Pianificate o Cron Jobs. Seleziona un intervallo consigliato compreso tra 10 e 15 minuti.
Nel campo relativo al comando da eseguire, inserisci una richiesta HTTP diretta. Puoi sfruttare lo strumento wget oppure il comando curl:
wget -q -O - https://tuosito.it/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Questo comando contatta il file corretto in background senza salvare file temporanei sul disco. L’esecuzione avviene con precisione millimetrica indipendentemente dai visitatori connessi.
Alternativa avanzata tramite interfaccia a riga di comando (WP-CLI)
Sui server dedicati o VPS con accesso SSH, la scelta migliore è WP-CLI. Questo metodo esegue il codice PHP direttamente dalla shell saltando la rete web.
Il comando da inserire nel crontab di sistema è molto semplice ed efficiente:
wp cron event run --due-now --path=/var/www/tuosito/ >/dev/null 2>&1
Questo approccio azzera i limiti di timeout tipici dei web server Apache o Nginx. Le operazioni pesanti come le scansioni antimalware terminano sempre con successo.
4. Ispezionare la Coda dei Processi con WP Crontrol
Installazione e primo avvio del plugin
Dopo aver completato l’operazione per disabilitare WP_CRON in wp-config.php, puoi controllare lo stato degli eventi pianificati.
Accedi alla bacheca di WordPress e naviga nel menu Plugin > Aggiungi nuovo. Cerca WP Crontrol nella barra di ricerca a destra.
Installa il plugin sviluppato da John Blackbourn e fai clic su Attiva. Il plugin è leggero, gratuito, sicuro e privo di pubblicità invadente.
Ora vai su Strumenti > Eventi Cron per visualizzare il registro completo dei compiti. Qui troverai ogni singola operazione registrata dal core e dai tuoi plugin.
Analisi della schermata e rimozione di eventi orfani
La schermata mostra una tabella ordinata con dettagli fondamentali su ciascun processo. Puoi esaminare l’elenco seguendo questi passaggi logici:
- Hook: il nome della funzione agganciata al sistema di pianificazione.
- Argomenti: eventuali parametri passati alla funzione durante l’esecuzione programmata.
- Prossima esecuzione: il conto alla rovescia preciso che precede l’avvio del task.
- Ricorrenza: l’intervallo orario che definisce la frequenza dell’operazione.
Spesso i plugin disinstallati male lasciano compiti orfani nella coda del database. Se individui azioni legate a plugin eliminati mesi fa, clicca su Elimina.
Pulire regolarmente questa tabella evita chiamate inutili verso funzioni PHP ormai inesistenti. Il database risulterà più snello, veloce e privo di avvisi di errore.
5. Testare e Risolvere i Problemi Frequenti
Risolvere gli errori di loopback e timeout
Se vedi un avviso rosso in cima alla schermata di WP Crontrol, non allarmarti. Spesso il server ha difficoltà a contattare se stesso via HTTP locale.
Questo problema accade frequentemente in presenza di firewall troppo rigidi o certificati SSL difettosi. Verifica che il dominio risponda correttamente senza redirect infiniti.
Aumenta il tempo massimo di esecuzione in php.ini se i task scadono prima di terminare. Un valore di 300 secondi è ideale per gestire code impegnative.
Verifica dell’effettiva esecuzione
Torna nella pagina di WP Crontrol dopo mezz’ora e aggiorna la schermata. I conti alla rovescia devono resettarsi regolarmente dopo aver raggiunto lo zero.
Se noti compiti contrassegnati con diciture in ritardo, il cron reale non sta funzionando. In questo caso, controlla i log del server per verificare eventuali errori di sintassi.
Un sistema configurato correttamente mantiene la colonna Prossima esecuzione sempre verde o neutra. Non dovrai più preoccuparti di post non pubblicati o compiti saltati.
Domande Frequenti su WP-Cron e WP Crontrol
Cosa succede se non attivo un cron di sistema dopo la modifica?
Se decidi di disabilitare WP_CRON in wp-config.php senza creare un’attività programmata nel server, WordPress non elaborerà più i task.
I post programmati rimarranno in bozza per sempre. I rinnovi automatici degli abbonamenti nei negozi WooCommerce si bloccheranno. Devi assolutamente configurare il cron del server.
WP Crontrol consuma molte risorse durante l’uso?
No, WP Crontrol è progettato con grandissima attenzione per l’ottimizzazione delle prestazioni. Il plugin carica i suoi file solo quando apri la sua pagina specifica.
Durante la navigazione standard degli utenti, il plugin rimane completamente dormiente. Puoi lasciarlo attivo senza alcun impatto sulla velocità di caricamento delle pagine pubbliche.
Posso eseguire manualmente un singolo evento bloccato?
Certamente. WP Crontrol offre una comoda funzione denominata Esegui ora posizionata sotto ciascun hook.
Basta fare clic su quel pulsante per forzare l’avvio immediato dell’azione selezionata. È una funzione utilissima per sbloccare code intasate o testare l’invio immediato di email.
