WordPress Schermata Bianca (WSOD): Guida alla Risoluzione Completa

La White Screen of Death (WSOD) è uno degli errori più temuti di WordPress: il sito mostra una pagina completamente bianca senza alcun messaggio di errore. Ecco come diagnosticarla e risolverla in pochi minuti.

Cos’è la WSOD e perché succede

La schermata bianca è causata da un fatal error PHP che blocca completamente il rendering della pagina. Le cause più comuni sono:

  • Plugin incompatibile dopo un aggiornamento
  • Tema con codice PHP errato
  • Limite di memoria PHP esaurito
  • Conflitto tra plugin

Step 1: Abilitare wp_DEBUG

Il primo passo è sempre abilitare il debug per vedere l’errore effettivo. Modifica wp-config.php (prima della riga “That’s all, stop editing!”):

// Debug mode - Abilitare solo in sviluppo
define( 'wp_DEBUG', true );
define( 'wp_DEBUG_LOG', true );
define( 'wp_DEBUG_DISPLAY', false );
define( 'SCRIPT_DEBUG', true );

// Memory limit aumentato per debugging
define( 'wp_MEMORY_LIMIT', '256M');

Importante: wp_DEBUG_DISPLAY è impostato su false per evitare di mostrare errori ai visitatori. Gli errori vengono scritti nel file debug.log.


Step 2: Analizzare lo Stack Trace

Controlla il file wp-content/debug.log per vedere l’errore completo:

# Via WP-CLI
wp eval "echo file_get_contents(wp_CONTENT_DIR.'/debug.log');" | tail -50

# Oppure direttamente
tail -100 wp-content/debug.log

Il log mostrerà qualcosa come:

[15-Feb-2026 10:23:45 UTC] PHP Fatal error: 
Uncaught Error: Call to undefined function wp_get_current_user() 
in /wp-content/plugins/problematic-plugin/init.php on line 42
Stack trace:
#0 /wp-includes/class-wp-hook.php(324): PluginClass->init()
#1 /wp-includes/plugin.php(205): wp_Hook->apply_filters()

Lo Stack Trace indica esattamente quale file e quale linea causa il problema. In questo caso: problematic-plugin/init.php alla linea 42.


Step 3: Disabilitazione Selettiva Plugin

Se non hai accesso al debug.log o vuoi isolare rapidamente il problema, disabilita tutti i plugin via WP-CLI:

# Lista tutti i plugin attivi
wp plugin list --status=active

# Disabilita TUTTI i plugin (emergency mode)
wp plugin deactivate --all

# Riattiva uno alla volta per isolare il problema
wp plugin activate woocommerce
wp plugin activate advanced-custom-fields-pro
# ... continua fino a trovare il colpevole

Senza WP-CLI? Rinomina la cartella wp-content/plugins in plugins-disabled via FTP. WordPress disabiliterà automaticamente tutti i plugin.


Step 4: Tema di Fallback

Se disabilitando i plugin il problema persiste, il colpevole è probabilmente il tema:

# Attiva un tema default
wp theme activate twentytwentyfour

# Se funziona, il problema è nel tema custom
# Controlla functions.php e template files

Checklist Rapida WSOD

# 1. Abilita debug
wp config set wp_DEBUG true --raw
wp config set wp_DEBUG_LOG true --raw

# 2. Controlla errori
tail -50 wp-content/debug.log

# 3. Disabilita plugin
wp plugin deactivate --all

# 4. Testa tema default
wp theme activate twentytwentyfour

# 5. Riabilita gradualmente
wp plugin activate plugin-name

Il problema persiste? Potrebbe essere un errore a livello server (PHP, permessi, .htaccess). Contattaci per un’analisi approfondita.