1,433 24/05/2025 07/04/2026 5 min

Il debug in WordPress parte da wp-config.php, il file che governa il comportamento diagnostico del sito. Da qui puoi decidere se mostrare gli errori a schermo, registrarli su file oppure limitarti a raccogliere informazioni utili senza esporre dettagli sensibili agli utenti.

La costante più importante è WP_DEBUG: quando vale true, WordPress abilita la modalità di debug e rende più evidenti errori PHP, warning, notice e anomalie generate da core, plugin o tema. Su un sito pubblico va usata con cautela, perché può mostrare informazioni tecniche che non dovrebbero essere visibili ai visitatori.

Configurazione consigliata in produzione

In un ambiente online, la combinazione più sicura è quella che attiva il debug senza mostrare gli errori sul frontend:

  • WP_DEBUG a true per attivare la diagnostica
  • WP_DEBUG_DISPLAY a false per non mostrare gli errori a schermo
  • WP_DEBUG_LOG a true per salvare gli errori in un file di log

Con questa impostazione, WordPress scrive i messaggi di errore in wp-content/debug.log, che diventa il riferimento principale per analizzare notice, warning, errori fatali e stack trace. Nella pratica, è spesso il modo più rapido per risalire a un plugin, a un tema o a una funzione personalizzata che sta generando il problema.

Se il sito è in produzione, conviene mantenere il debug attivo solo per il tempo strettamente necessario alla diagnosi e disattivarlo subito dopo aver raccolto le informazioni utili.

Configurazione base consigliata

Un esempio pulito e molto usato è questo:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

Questa configurazione abilita il debug, evita la visualizzazione pubblica degli errori e salva tutto nel log. Se devi analizzare un problema specifico di frontend o di caricamento degli asset, puoi aggiungere temporaneamente anche SCRIPT_DEBUG.

Costanti utili per il debug avanzato

Oltre alle impostazioni base, ci sono alcune costanti molto utili nei casi più tecnici.

  • SCRIPT_DEBUG: forza il caricamento delle versioni non minificate di JavaScript e CSS, utile per individuare conflitti, errori di sintassi e problemi legati agli asset.
  • SAVEQUERIES: registra le query SQL eseguite durante il caricamento della pagina, utile per scoprire query lente, ripetute o generate in modo inefficiente.
  • WP_DEBUG_LOG con percorso personalizzato: in alcune installazioni puoi indicare un file di log diverso da quello standard, utile per separare i log di debug da altri file applicativi.

Queste opzioni vanno usate con un obiettivo preciso: trovare un errore, misurare un comportamento o isolare un conflitto. Tenerle attive senza motivo può aumentare il carico e rendere più difficile la lettura dei log.

Esempio completo di configurazione

Se vuoi una base più completa per il troubleshooting, puoi usare una configurazione simile a questa:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
define( 'SCRIPT_DEBUG', true );

Se stai analizzando un problema di database o performance, puoi aggiungere temporaneamente anche SAVEQUERIES, ricordando però di rimuoverlo appena conclusa l’analisi.

Come leggere e interpretare il log

Il file wp-content/debug.log è il primo punto da controllare quando il sito mostra una pagina bianca, un errore 500 o un comportamento inatteso. Le informazioni più utili da cercare sono il tipo di errore, il file coinvolto, la riga di codice e la sequenza di chiamate che ha portato al problema.

  • Se l’errore cita un plugin, verifica prima quel componente e prova a disattivarlo temporaneamente.
  • Se il problema punta al tema attivo, controlla override, funzioni personalizzate e file modificati di recente.
  • Se compaiono errori di memoria, valuta il limite PHP, il carico del sito e la presenza di query o processi troppo pesanti.

Un metodo efficace è confrontare l’orario dell’errore nel log con il momento in cui il problema si è manifestato: questo aiuta a isolare più velocemente la causa reale.

Segnali da non ignorare

Alcuni messaggi meritano attenzione immediata perché spesso anticipano problemi più seri:

  • Fatal error: blocca l’esecuzione e può causare schermate bianche o errori 500.
  • Warning e Notice: non sempre interrompono il sito, ma indicano codice fragile o incompatibile.
  • Deprecated: segnala funzioni o pratiche vecchie che potrebbero smettere di funzionare con aggiornamenti futuri.

Approccio professionale al troubleshooting

Quando il debug serve davvero, conviene procedere in modo ordinato:

  1. Attiva il debug solo per il tempo necessario e in modo non visibile al pubblico.
  2. Riproduci il problema con precisione, annotando orario, pagina, azione compiuta e eventuali cambi recenti.
  3. Controlla il log e individua il primo errore utile, non solo quelli successivi.
  4. Verifica se la causa è nel core, in un plugin, nel tema o in una personalizzazione.
  5. Applica una correzione minima, poi testa di nuovo il sito prima di procedere oltre.
Il debug efficace non consiste solo nell’attivare le opzioni giuste: conta soprattutto leggere i sintomi nel posto corretto, cioè log, stack trace, console del browser e comportamento reale del sito.

Buone pratiche operative

Per usare il debug in modo professionale, conviene seguire alcune regole semplici ma fondamentali:

  1. Conserva sempre una copia di wp-config.php prima di modificarlo.
  2. Non lasciare gli errori visibili sul frontend in ambienti pubblici.
  3. Controlla il log dopo ogni modifica a plugin, tema o configurazione PHP.
  4. Disattiva le opzioni più pesanti, come SAVEQUERIES, una volta conclusa l’analisi.
  5. Se il problema è ricorrente, conserva uno storico dei log per confrontare gli eventi nel tempo.

In molti casi è utile affiancare al debug WordPress anche il log PHP del server, perché alcuni errori nascono prima che WordPress riesca a scrivere nel proprio file di diagnostica.

Conclusione

La diagnostica in WordPress funziona meglio quando è impostata con metodo: WP_DEBUG per attivare l’analisi, WP_DEBUG_DISPLAY per proteggere il frontend, WP_DEBUG_LOG per conservare le evidenze e, quando serve, SCRIPT_DEBUG e SAVEQUERIES per approfondire casi specifici. Usate correttamente, queste opzioni permettono di individuare più rapidamente errori di codice, conflitti tra plugin, problemi di tema e anomalie di performance.