01 / Guias
O que quer dizer o erro crítico do WordPress
Desde a versão 5.2, o WordPress tem uma proteção contra erros fatais. Quando o PHP para com um erro grave, o WordPress mostra o aviso de erro crítico em vez de um ecrã branco e envia um email para o endereço de administração. Os teus conteúdos não foram apagados. A base de dados fica quase sempre intacta; só falha o código que constrói a página.
Conforme a versão e a língua do WordPress, a mensagem pode aparecer como “Ocorreu um erro crítico neste site”, “Há um erro crítico no seu site” ou, em inglês, “There has been a critical error on this website”. A causa e a solução são as mesmas.
Os culpados típicos são uma atualização de plugin que choca com outro plugin ou com a tua versão do PHP, uma atualização do tema, um plugin acabado de instalar, um functions.php editado à mão ou uma atualização do PHP feita pelo alojamento. Se nada disto explica o erro e aparecem ficheiros ou utilizadores desconhecidos, lê também o nosso guia site hackeado: o que fazer agora.
02 / Guias
Passo 1: usar o email do modo de recuperação
- 01
Ver a caixa do email de administração
O WordPress envia o email para o endereço que está em Opções › Geral. O assunto é “[nome do site] Há um problema técnico com o seu site”, e a mensagem indica normalmente o plugin ou o tema que provocou o erro. Vê também a pasta de spam.
- 02
Abrir a ligação do modo de recuperação
O email traz uma ligação para o wp-login.php com action=enter_recovery_mode. Só funciona durante um tempo limitado, por defeito um dia. Inicia sessão através dela.
- 03
Desativar o culpado
No modo de recuperação, o plugin com erro está apenas em pausa para ti. Desativa-o de vez em Plugins, senão as visitas continuam a ver o erro.
- 04
Sair do modo de recuperação e confirmar
Clica em Sair do modo de recuperação na barra de ferramentas e abre o site numa janela privada. Depois procura uma versão atualizada do plugin ou uma alternativa.
03 / Guias
WordPress com erro crítico mas sem email?
É um dos casos mais comuns. Ou o endereço de administração está desatualizado, ou o site nem consegue entregar emails, porque envia pelo servidor web sem SPF nem DKIM e a mensagem vai para o spam ou é rejeitada. O guia emails a ir para spam explica como pôr o envio a funcionar como deve ser.
Para o futuro, a constante RECOVERY_MODE_EMAIL no wp-config.php permite enviar estes emails para outro endereço. Para o erro que tens agora, continua com os passos 2 e 3. O registo de erros no painel do alojamento também mostra muitas vezes a causa.
04 / Guias
Passo 2: ativar o registo de erros e ler o erro
- 01
Abrir o wp-config.php
Liga-te por SFTP, por exemplo com o FileZilla, ou usa o gestor de ficheiros do alojamento. O wp-config.php está na pasta principal da instalação do WordPress. Descarrega primeiro uma cópia.
- 02
Ligar a depuração
Procura a linha define( 'WP_DEBUG', false ); e substitui-a por três linhas: define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); Ficam acima do comentário que pede para parar de editar (em inglês, That's all, stop editing!). Não definas o WP_DEBUG duas vezes.
- 03
Provocar o erro
Abre outra vez o site e, se também estiver afetado, o wp-admin. O WordPress escreve agora o erro no ficheiro wp-content/debug.log.
- 04
Ler o registo
Procura PHP Fatal error. A seguir vem um caminho como /wp-content/plugins/nome-do-plugin/ ou /wp-content/themes/nome-do-tema/. O nome da pasta diz-te quem é o culpado.
- 05
Desligar outra vez
Volta a pôr o WP_DEBUG em false e apaga o debug.log. Caso contrário, o ficheiro fica acessível a qualquer pessoa e revela caminhos e detalhes da tua instalação.
05 / Guias
Erros fatais comuns no registo de erros
| Mensagem no registo | O que costuma querer dizer | Solução |
|---|---|---|
| Call to undefined function | Um plugin chama uma função que já não existe, muitas vezes porque falta um extra ou o PHP é mais recente | Atualizar ou desativar o plugin, atualizar em conjunto os plugins que dependem uns dos outros |
| Allowed memory size of … bytes exhausted | O PHP ficou sem memória | Acrescentar define( 'WP_MEMORY_LIMIT', '256M' ); ao wp-config.php ou subir o limite no alojamento |
| Cannot redeclare | Dois plugins, ou um plugin e o tema, definem a mesma função | Desativar um deles, normalmente o instalado mais recentemente |
| syntax error, unexpected | Um erro de escrita num ficheiro editado à mão, muitas vezes o functions.php | Repor o ficheiro a partir de uma cópia de segurança ou do tema original |
| Uncaught TypeError ou ArgumentCountError | Código antigo que já não corre em PHP 8 | Atualizar o plugin ou o tema, ou então substituí-lo |
06 / Guias
Passo 3: desativar um plugin por FTP
Se não consegues entrar no wp-admin, desativas os plugins diretamente nos ficheiros. Não se perde nada: as definições ficam na base de dados.
- 01
Abrir a pasta dos plugins
Por SFTP ou no gestor de ficheiros, vai a wp-content/plugins.
- 02
Mudar o nome do plugin suspeito
Muda o nome da pasta do plugin indicado no registo ou no email, por exemplo de nome-do-plugin para nome-do-plugin-off. O WordPress deixa de o encontrar e desativa-o.
- 03
Se não sabes quem é o culpado
Muda o nome da pasta plugins inteira para plugins-off. Se o site voltar a funcionar, repõe o nome e reativa os plugins um a um no wp-admin até o erro voltar.
- 04
Se a causa for o tema
Muda o nome da pasta do tema ativo em wp-content/themes. O WordPress passa então para um tema padrão instalado, como o Twenty Twenty-Five. Por isso, mantém sempre um tema padrão instalado.
- 05
Arrumar
Instala uma versão atual e compatível do plugin ou do tema, confirma que o site funciona e apaga a pasta antiga com o nome mudado.
07 / Guias
WordPress com erro crítico depois de atualizar o PHP
Quando o alojamento sobe a versão do PHP, por exemplo de PHP 7.4 para PHP 8, plugins e temas mais antigos deixam às vezes de funcionar. O PHP 8 removeu funções como create_function() e each() e verifica os tipos de dados com mais rigor. No registo de erros aparece então normalmente um TypeError ou Call to undefined function.
Como medida de emergência, podes voltar à versão anterior do PHP no painel do alojamento, se ele ainda a oferecer. É só uma ponte: as versões antigas do PHP já não recebem atualizações de segurança. Atualiza ou substitui o plugin e volta depois à versão atual. Uma versão recente do PHP costuma também tornar o site mais rápido; vê o nosso guia sobre o WordPress lento.
08 / Guias
Erro crítico depois de instalar um plugin ou com o Elementor
Se o erro aparece logo a seguir à instalação de um plugin novo, a resposta é simples: desativa esse plugin por FTP e procura uma alternativa. Com o Elementor, o erro crítico surge muitas vezes quando o Elementor e o Elementor Pro estão em versões diferentes, por exemplo porque só um deles se atualizou sozinho. Põe os dois na versão atual, se for preciso desativando o Elementor Pro por FTP, entrando no wp-admin e atualizando os dois.
Um sintoma parecido depois de uma atualização interrompida é a mensagem “De momento indisponível para uma breve manutenção agendada”. Nesse caso existe na pasta principal um ficheiro chamado .maintenance, que podes apagar.
09 / Guias
Como evitar o próximo erro crítico
- Uma cópia de segurança guardada fora da conta de alojamento antes de cada atualização importante
- Testar primeiro as atualizações maiores numa cópia de staging, sobretudo em lojas
- Atualizar em conjunto os plugins que dependem uns dos outros, como o Elementor e o Elementor Pro ou o WooCommerce e as suas extensões
- Configurar as atualizações automáticas com cabeça: atualizações de segurança sim, grandes saltos de versão sob controlo
- Manter um tema padrão instalado e um email de administração que alguém lê
- Substituir plugins que não recebem atualizações há mais de um ano
Se o site é tão antigo que cada atualização é uma lotaria, a solução duradoura é sair do WordPress: um site feito à mão, em código próprio, sem plugins nem atualizações arriscadas. Fazemos isso no nosso serviço de desenvolvimento web, e numa migração de site os conteúdos e os URLs vêm connosco.
FAQ
Perguntas frequentes
01O que quer dizer “Ocorreu um erro crítico neste site”?
Um plugin, o tema ou uma mudança de PHP provocou um erro fatal e o WordPress parou a página. Os teus conteúdos não foram apagados. Normalmente há uma atualização por trás.
02Não recebi o email do modo de recuperação. E agora?
Vê a pasta de spam e confirma se o email de administração em Opções › Geral ainda está certo. Sem o email, ativa o registo de erros no wp-config.php ou consulta o registo de erros do alojamento e desativa o plugin culpado por FTP.
03Não consigo entrar no wp-admin. Como desativo um plugin?
Por SFTP ou no gestor de ficheiros do alojamento: muda o nome da pasta do plugin em wp-content/plugins. O WordPress desativa-o automaticamente e mantém as definições.
04Posso desfazer uma atualização?
Sim. O mais seguro é uma cópia de segurança de antes da atualização. Em alternativa, instalas a versão anterior do plugin à mão ou com um plugin de rollback, mas só como ponte até sair uma versão corrigida.
05Perco dados com um erro crítico?
Quase nunca. O erro afeta o código, não a base de dados. Artigos, encomendas e definições continuam lá quando o site voltar a funcionar.
06Um ataque pode provocar o erro crítico?
Sim, se código malicioso danificou ficheiros. Se nenhuma atualização explica o erro e aparecem ficheiros, utilizadores ou redirecionamentos desconhecidos, verifica se o site foi atacado.