Guia / WordPress

WordPress erro crítico depois de uma atualização: como recuperar o teu site

“Ocorreu um erro crítico neste site.” quer dizer que um plugin, o tema ou uma mudança de versão do PHP provocou um erro fatal, e o WordPress parou a página em vez de a mostrar meio estragada. Quase sempre há uma atualização por trás. A solução tem três fases: usar o email do modo de recuperação, ler o registo de erros se o email não chegou e, em último caso, desativar o plugin culpado por FTP.

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

  1. 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.

  2. 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.

  3. 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.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 registoO que costuma querer dizerSolução
Call to undefined functionUm plugin chama uma função que já não existe, muitas vezes porque falta um extra ou o PHP é mais recenteAtualizar ou desativar o plugin, atualizar em conjunto os plugins que dependem uns dos outros
Allowed memory size of … bytes exhaustedO PHP ficou sem memóriaAcrescentar define( 'WP_MEMORY_LIMIT', '256M' ); ao wp-config.php ou subir o limite no alojamento
Cannot redeclareDois plugins, ou um plugin e o tema, definem a mesma funçãoDesativar um deles, normalmente o instalado mais recentemente
syntax error, unexpectedUm erro de escrita num ficheiro editado à mão, muitas vezes o functions.phpRepor o ficheiro a partir de uma cópia de segurança ou do tema original
Uncaught TypeError ou ArgumentCountErrorCódigo antigo que já não corre em PHP 8Atualizar 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.

  1. 01

    Abrir a pasta dos plugins

    Por SFTP ou no gestor de ficheiros, vai a wp-content/plugins.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Contacto

Põe o teu site a funcionar ainda hoje

Envia-nos o domínio e o que mudou por último. Respondemos com um orçamento fixo.

Pedir ajuda ↗