Como corrigir o erro 500 Internal Server Error
O que é o erro 500 no WordPress?
O erro 500 no WordPress é a resposta padrão do servidor quando um processo falha mas o servidor não consegue ser específico sobre a causa. É proposital genérico, e por isso o diagnóstico exige ativar os logs. No WordPress, as fontes mais comuns são um plugin ou tema disparando erro fatal de PHP, o .htaccess corrompido, a memória PHP esgotada ou a versão de PHP incompatível com algum código do site.
Como identificar
- A página em branco ou a mensagem “HTTP 500 Internal Server Error” / “The server encountered an internal error”.
- O site cai inteiro ou só o wp-admin retorna 500 enquanto o front-end ainda abre.
- O erro apareceu logo depois de instalar/atualizar um plugin, trocar o tema ou editar o wp-config.php.
- No arquivo wp-content/debug.log ou no error_log do servidor aparece uma linha “PHP Fatal error” com o arquivo culpado.
Antes de começar: Faça backup antes de mexer no wp-config.php e no .htaccess. Defina WP_DEBUG_DISPLAY como false para não vazar caminhos do servidor e mensagens de erro para os visitantes enquanto investiga.
Como prevenir
- Atualize plugins e temas em ambiente de staging antes de aplicar em produção
- Mantenha o WP_MEMORY_LIMIT em 256M ou mais e a versão de PHP dentro das suportadas
- Tenha backup automático e deixe o WP_DEBUG_LOG pronto para diagnosticar rápido quando algo cair
Causa
- .htaccess corrompido com diretiva inválida que o Apache não consegue interpretar.
- Limite de memória PHP esgotado (WP_MEMORY_LIMIT baixo demais para o plugin/tema em uso).
- Plugin ou tema com erro fatal de PHP, geralmente após uma atualização incompatível.
- Versão de PHP do servidor incompatível com o código de um plugin ou tema antigo.
- Permissões erradas em arquivos do núcleo (acima de 644 para arquivos ou 755 para pastas).
Como resolver
- Ative o log de erros para ver a causa: edite o wp-config.php e ligue o WP_DEBUG com log em arquivo. O 500 é genérico; o log revela o arquivo e a linha que falharam.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); - Renomeie o .htaccess: via FTP, renomeie o .htaccess para .htaccess_bkp e recarregue o site. Se voltar ao ar, regrave os links permanentes para gerar um arquivo limpo.
- Desative os plugins em bloco: renomeie a pasta wp-content/plugins para plugins_off. Se o site voltar, é um plugin: volte o nome e desative um a um até achar o culpado.
- Troque para um tema padrão: renomeie a pasta do tema ativo em wp-content/themes para forçar o WordPress a cair em um tema padrão (Twenty Twenty-Four) e isolar se o tema é a causa.
- Aumente a memória PHP: no wp-config.php, eleve o limite de memória do WordPress para 256M, valor que cobre a maioria dos sites com vários plugins.
PHP
// wp-config.php - aumenta a memoria e direciona os erros para wp-content/debug.log
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // grava em wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // nao mostra o erro ao visitante
Perguntas frequentes
Por que o erro 500 não diz o que aconteceu?
O 500 é um código genérico, proposital. Por design ele não expõe a causa para não vazar detalhes do servidor. Para descobrir o motivo real, ative o WP_DEBUG_LOG e leia o arquivo wp-content/debug.log, que aponta o arquivo e a linha do erro fatal.
O erro 500 apareceu depois que atualizei um plugin. Como volto?
Via FTP, renomeie a pasta do plugin recém-atualizado em wp-content/plugins. Isso desativa o plugin e derruba o erro fatal. Depois, atualize-o de novo em staging ou aguarde uma versão corrigida.
Erro 500 e erro 503 são a mesma coisa?
Não. O 500 é uma falha interna genérica no processamento. O 503 significa que o serviço está indisponível temporariamente, geralmente por sobrecarga ou modo de manutenção. As causas são diferentes.
O wp-admin dá 500 mas o site abre. Por quê?
Costuma ser um plugin que roda só no painel ou a memória PHP esgotando em tarefas administrativas mais pesadas. Aumente o WP_MEMORY_LIMIT e desative os plugins para isolar qual deles quebra o admin.
Renomear o .htaccess resolveu. O que isso significa?
Significa que o arquivo tinha uma diretiva corrompida que o Apache não conseguia ler. Regrave os links permanentes em Configurações > Links permanentes para gerar um .htaccess novo e válido.
Aumentar a memória PHP no wp-config.php não fez efeito. Por quê?
Alguns hosts travam o limite no PHP do servidor e ignoram a definição do wp-config.php. Nesse caso, é preciso ajustar o memory_limit no php.ini ou no painel da hospedagem, ou pedir o aumento ao suporte.














