Página branca no WordPress (white screen of death): como diagnosticar e resolver

Uma página completamente branca — sem mensagem, sem erro, sem nada — é o famoso "white screen of death" do WordPress. Tecnicamente é um erro fatal de PHP com a exibição de erros desligada: o PHP morreu a meio e não disse porquê ao visitante. A causa está registada no servidor; este guia mostra onde a encontrar e como resolver os casos típicos.

Passo 1 — Tornar o erro visível

Trabalhar às cegas é a pior estratégia. Duas formas de ver o erro real:

Log de erros do alojamento — cPanel/Plesk → registos de erros. A última entrada "PHP Fatal error" identifica o ficheiro e a linha. É o caminho mais rápido.

Modo debug do WordPress — por FTP, adicione ao wp-config.php:

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

Recarregue a página branca e leia wp-content/debug.log. Remova as linhas no fim do processo.

Com o erro identificado, os cenários seguintes cobrem praticamente todos os casos.

Cenário A — O erro aponta a um plugin ou tema

O caminho no erro contém /wp-content/plugins/xyz/ ou /wp-content/themes/xyz/. Desative o componente por FTP (renomear a pasta) e o site volta. As causas de fundo e o procedimento completo — incluindo o modo de recuperação por email do WordPress — estão no nosso guia do erro crítico do WordPress: página branca e "erro crítico" são o mesmo problema; a diferença é só se o WordPress conseguiu ou não mostrar a mensagem elegante.

Cenário B — Memória esgotada

"Allowed memory size exhausted" no log. Aumente o limite no wp-config.php (define('WP_MEMORY_LIMIT', '256M');). Página branca só no wp-admin mas site público a funcionar é frequentemente isto — o painel consome mais memória do que o site.

Cenário C — Edição recente de código

Editou o functions.php do tema (ou colou um snippet de um tutorial) e o site ficou branco de imediato? Erro de sintaxe. Reverta a alteração por FTP. Se editou pelo editor do wp-admin e ficou trancado fora, edite o ficheiro diretamente por FTP ou pelo gestor de ficheiros do alojamento.

Lição de processo: alterações de código diretamente em produção acabam sempre assim — mais tarde ou mais cedo. Um ambiente de staging existe exatamente para isto.

Cenário D — Página branca só em algumas páginas

Homepage funciona, mas o checkout ou uma página específica fica branca: o erro fatal está num shortcode, template ou plugin usado apenas nessa página. O debug.log com a página específica carregada identifica o ficheiro. Este padrão pós-atualização é típico de incompatibilidades entre plugin e tema — reverta a última atualização e reporte ao autor.

Cenário E — Nada no log, site inteiro branco

Quando nem o log tem entradas novas, as hipóteses restantes: cache a servir uma versão branca (limpe o cache do plugin por FTP, apagando o conteúdo de wp-content/cache/, e o do servidor/CDN se existir); ficheiros core corrompidos (substitua wp-admin e wp-includes por cópias limpas da mesma versão); ou OPcache do servidor com bytecode antigo (reinicie o PHP no painel ou peça ao suporte).

Se tudo falhar: restauro e diagnóstico a frio

Com um site de negócio parado, há um momento em que insistir no diagnóstico ao vivo custa mais do que restaurar: reponha o backup mais recente para o site voltar, e investigue a causa numa cópia, com calma. Esta opção só existe para quem tem backups em dia e testados — se o incidente de hoje o apanhou sem eles, é a primeira coisa a corrigir depois do site voltar.

Site em branco e sem tempo para experiências?

Diagnóstico direto ao log do servidor, correção da causa real e o site online outra vez — com explicação do que falhou. Se o site é importante para o negócio, cada hora em branco custa mais do que a intervenção.

Repor o site online