Erro 500 em WordPress: diagnóstico e resolução passo a passo

O erro 500 Internal Server Error é uma das mensagens mais frustrantes em WordPress — genérica o suficiente para não dizer nada, e grave o suficiente para tirar o site do ar. O processo de diagnóstico, porém, é sistemático. Com acesso SSH e conhecimento dos locais certos para procurar, a maioria dos casos resolve-se em menos de 30 minutos.

Causas mais comuns do erro 500 em WordPress

Antes de iniciar o diagnóstico, é útil conhecer as causas mais frequentes por ordem de probabilidade:

  1. Plugin incompatível ou corrompido — causa mais frequente, especialmente após um update
  2. Tema com erro de PHP — código personalizado com erro de sintaxe ou função inexistente
  3. Memory limit esgotado — PHP sem memória suficiente para completar o pedido
  4. .htaccess corrompido — regras inválidas ou incompletas
  5. Permissões de ficheiros incorretas — ficheiros sem permissão de leitura pelo servidor web
  6. Versão de PHP incompatível — após update de PHP ou plugin que requer versão diferente
  7. Base de dados inacessível — pode manifestar-se como 500 em alguns casos

Passo 1: verificar os logs de erro

O primeiro passo é sempre ler os logs. O erro 500 em si não diz nada — o log diz tudo.

Log de erros PHP

Localização típica (varia conforme o servidor):

  • /var/log/php/error.log
  • /var/log/nginx/error.log
  • ~/logs/php_error.log em cPanel
  • Na raiz do WordPress se configurado em php.ini

Ative logging detalhado temporariamente adicionando ao wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); // false em produção

O log fica em wp-content/debug.log. Verifique as últimas linhas para o erro específico.

Log de erros do servidor web

Em Apache: /var/log/apache2/error.log
Em Nginx: /var/log/nginx/error.log

Procure por linhas com o timestamp próximo de quando o erro ocorreu.

Passo 2: diagnosticar por eliminação

Desativar todos os plugins

Via FTP/SSH, renomeie a pasta wp-content/plugins para wp-content/plugins_disabled. Se o erro desaparecer, um plugin é o culpado. Reative-os um a um (renomeando a pasta de volta e ativando via WP-Admin) até identificar qual causa o problema.

Via WP-CLI (mais rápido se tiver acesso SSH):

wp plugin deactivate --all
# testar → se resolvido:
wp plugin activate nome-do-plugin
# repetir até encontrar o culpado

Mudar para tema padrão

Se desativar os plugins não resolver, mude para um tema padrão do WordPress (Twenty Twenty-Three/Four). Via FTP, renomeie a pasta do tema ativo. O WordPress reverterá para o tema padrão disponível.

Verificar o .htaccess

Renomeie .htaccess para .htaccess_backup. Se o erro desaparecer, o .htaccess está corrompido. Gere um novo em WordPress → Settings → Permalinks (clique em Guardar sem alterar nada).

Passo 3: causas específicas e soluções

Memory limit esgotado

O log mostra: PHP Fatal error: Allowed memory size of X bytes exhausted. Solução: aumentar o limite. Adicione ao wp-config.php:

define('WP_MEMORY_LIMIT', '256M');

Se o PHP ini não permitir este valor, contacte o hosting. Para diagnóstico mais detalhado, veja o nosso artigo sobre memory limit em WordPress.

Erro de sintaxe PHP

O log mostra: PHP Parse error: syntax error, unexpected X in /path/to/file.php on line N. Abra o ficheiro indicado, vá à linha indicada e corrija o erro de sintaxe. Comum após edição manual de ficheiros de tema ou plugin.

Permissões de ficheiros

Permissões recomendadas para WordPress:

  • Pastas: 755 (drwxr-xr-x)
  • Ficheiros: 644 (-rw-r--r--)
  • wp-config.php: 600 (-rw-------)
find /var/www/wordpress -type f -exec chmod 644 {} \;
find /var/www/wordpress -type d -exec chmod 755 {} \;
chmod 600 /var/www/wordpress/wp-config.php

Após resolver: análise e prevenção

Após resolver o erro, documente o que causou o problema e como foi resolvido. Se foi causado por um plugin, avalie se o plugin deve ser mantido ou substituído. Se foi um update, o processo de updates controlados com staging teria prevenido o incidente.

Para sites críticos, a monitorização ativa deteta erros 500 em segundos e permite resposta imediata — antes que o cliente perceba que o site está em baixo.

Os seus sites têm monitorização que deteta erros 500 automaticamente?

O nosso serviço de monitorização 24/7 alerta-o em menos de 2 minutos quando um site cai.

Ativar monitorização