O erro 500 é o mais frustrante dos erros web precisamente porque não diz nada: "Internal Server Error" significa apenas "algo correu mal no servidor". A boa notícia é que no WordPress as causas concentram-se num punhado de suspeitos habituais. Este guia percorre-os por ordem de probabilidade, para resolver no menor número de passos.
Antes de tudo: o log de erros
O erro 500 esconde a causa do visitante, mas regista-a no servidor. Poupe 30 minutos de tentativa-e-erro: abra o log de erros no painel do alojamento (cPanel: "Errors"; Plesk: "Logs") e veja a última entrada. Um caminho para /plugins/ aponta a um plugin; "memory exhausted" à causa 4; "syntax error" a um ficheiro editado recentemente. Se o log confirmar a causa, salte diretamente para ela.
Causa 1 — .htaccess corrompido
O ficheiro .htaccess na raiz do site controla os URLs amigáveis, e um bloco corrompido (por plugin de cache, segurança ou migração) derruba o site inteiro.
Teste rápido: por FTP, renomeie .htaccess para .htaccess-old e recarregue o site. Voltou? Confirmado. Entre no wp-admin → Definições → Ligações permanentes e clique "Guardar" — o WordPress gera um .htaccess novo e limpo. Se tinha regras personalizadas (redirects, cache), reintroduza-as em blocos pequenos, testando entre cada.
Causa 2 — Plugin (sobretudo após atualização)
Se o erro apareceu logo depois de atualizar ou instalar algo, está encontrado. Sem acesso ao wp-admin, desative por FTP: renomeie a pasta do plugin suspeito em wp-content/plugins/, ou a pasta plugins inteira para confirmar que é um deles, reativando depois um a um. O procedimento detalhado (e o modo de recuperação do WordPress) está no guia do erro crítico do WordPress — erro 500 e "erro crítico" são frequentemente o mesmo problema com máscaras diferentes.
Causa 3 — Versão de PHP incompatível
O alojamento atualizou o PHP (ou alguém mudou a versão no painel) e um plugin ou tema antigo usa código removido nas versões novas. Sintoma típico: o site funcionava há meses sem mudanças e "partiu-se sozinho" — porque a mudança foi do lado do servidor.
Solução de emergência: no painel do alojamento, reverta para a versão de PHP anterior (ex.: de 8.3 para 8.1). O site volta. Solução definitiva: identifique o componente incompatível no log e atualize-o ou substitua-o — versões antigas de PHP perdem suporte de segurança, ficar nelas não é plano.
Causa 4 — Limite de memória PHP esgotado
Log com "Allowed memory size of X bytes exhausted": o PHP bateu no teto. Adicione ao wp-config.php: define('WP_MEMORY_LIMIT', '256M');. Se o alojamento impõe um limite inferior, tem de ser aumentado no painel ou pelo suporte. E se 256M não chegarem, o problema não é o limite — é um plugin a consumir memória descontroladamente (frequentemente page builders, importadores ou plugins de estatísticas).
Causa 5 — Permissões de ficheiros erradas
Depois de migrações ou restauros manuais: pastas devem estar a 755 e ficheiros a 644. Permissões a 777 ou proprietário errado fazem servidores com suEXEC devolver 500. A correção em massa faz-se por SSH ou pede-se ao suporte do alojamento.
Causa 6 — Recursos do alojamento esgotados
Em alojamento partilhado, exceder limites de processos, CPU ou "entry processes" devolve 500 (ou 503) intermitente — o site funciona, falha, volta a funcionar. Verifique o uso de recursos no painel. Se está sistematicamente no limite, ou algo anormal consome recursos (tráfego de bots, malware a minerar ou enviar spam), ou o site cresceu e chegou a hora de mais recursos — veja quando mudar de partilhado para VPS.
Causa 7 — Ficheiros core corrompidos
Upload interrompido, disco cheio ou infeção podem corromper ficheiros do próprio WordPress. Solução: descarregue a mesma versão de wordpress.org e substitua as pastas wp-admin e wp-includes por FTP (nunca a wp-content — é lá que vive o seu conteúdo).
Erro 500 intermitente: o caso especial
Um 500 constante encontra-se com este guia em menos de uma hora. Um 500 intermitente — aparece a alguns visitantes, nunca ao administrador, ou só em horas de pico — é outra liga: normalmente recursos esgotados (causa 6), conflitos de cache ou cron jobs pesados. Este é o cenário onde a monitorização contínua faz a diferença: sem registo de quando e com que frequência falha, o diagnóstico é adivinhação.
Erro 500 a resistir ao diagnóstico?
Corrigimos erros 500, erros críticos e sites em baixo com diagnóstico ao log real do servidor — não tentativa-e-erro. Intervenção rápida, causa documentada e recomendações para não repetir.
Resolver o erro 500