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.

Articoli simili