Como corrigir o erro 404 Not Found no WordPress
O que é o erro 404 no WordPress?
O erro 404 no WordPress é o código de status HTTP que o servidor devolve quando a URL é válida, o servidor está no ar, mas o recurso pedido não existe naquele endereço. Diferente do 403 (acesso negado), no 404 o servidor simplesmente não acha o conteúdo. O caso mais comum no WordPress é todos os posts retornarem 404 enquanto a página inicial abre normal, sinal clássico de permalinks ou regras de rewrite quebradas.
Como identificar
- Mensagem “404 Not Found – The requested URL was not found on this server” ou a página 404 do tema.
- A página inicial abre normalmente, mas todos os posts e páginas internas retornam 404.
- O erro começou logo após migrar de host, trocar de domínio ou mudar a estrutura de links permanentes.
- O Google Search Console acusa aumento de “Não encontrada (404)” na cobertura de indexação.
Antes de começar: Faça backup do .htaccess antes de editá-lo. Renomeie o arquivo atual para .htaccess_bkp antes de gerar um novo, para poder voltar atrás se algo quebrar.
Como prevenir
- Antes de migrar de host ou domínio, anote a estrutura de links permanentes e regrave-a no destino
- Mantenha backup automático do .htaccess junto com os arquivos do site
- Ao trocar o slug de um conteúdo, crie sempre um redirect 301 do endereço antigo para o novo
Causa
- Regras de rewrite ausentes no .htaccess (Apache) ou bloco try_files mal configurado (Nginx) após migração.
- Estrutura de links permanentes alterada sem regravar as regras de reescrita.
- Slug do post ou da página alterado sem criar um redirecionamento 301 do endereço antigo.
- mod_rewrite desativado no Apache, impedindo o WordPress de interpretar URLs amigáveis.
- Conteúdo realmente excluído (post na lixeira ou despublicado) cujo link ainda circula.
Como resolver
- Regrave os links permanentes: no wp-admin, vá em Configurações > Links permanentes e clique em Salvar alterações sem mudar nada. Isso força o WordPress a reescrever as regras de rewrite do .htaccess.
- Restaure o .htaccess padrão: se a tela de links permanentes avisar que o arquivo não é gravável, edite o .htaccess na raiz via FTP e cole o bloco de rewrite padrão do WordPress.
- Confirme o mod_rewrite no Apache: peça ao host para verificar se o mod_rewrite está ativo e se o AllowOverride permite que o .htaccess processe regras de reescrita.
- Crie redirecionamentos 301 para slugs alterados: se um post mudou de endereço, aponte a URL antiga para a nova com um redirect 301 para não perder o link nem o ranqueamento.
- Cheque a URL do site: em Configurações > Geral, confirme que Endereço do WordPress e Endereço do site batem com o domínio real (com ou sem www, http vs https).
APACHE
# .htaccess padrao do WordPress - recria as regras de rewrite que resolvem o 404
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Perguntas frequentes
Por que só os posts dão 404 e a página inicial abre?
A página inicial costuma ser servida direto pelo index.php, sem depender de rewrite. Os posts dependem das regras de reescrita do .htaccess para traduzir a URL amigável. Quando essas regras somem, só os posts caem no 404.
Salvei os links permanentes e o 404 continua. E agora?
Provavelmente o .htaccess não é gravável ou o mod_rewrite está desativado. Edite o arquivo manualmente via FTP com o bloco padrão e peça ao host para confirmar que o mod_rewrite e o AllowOverride All estão ativos.
Erro 404 é o mesmo que erro 403?
Não. No 404 o servidor não encontra o recurso na URL. No 403 o recurso existe, mas o servidor recusa o acesso por falta de permissão. As causas e as correções são diferentes.
O 404 depois de migrar de hospedagem some sozinho?
Raramente. Quase sempre é preciso regravar os links permanentes no novo servidor e conferir o .htaccess (Apache) ou o try_files (Nginx), porque as regras de rewrite não viajam junto com os arquivos.
Páginas 404 prejudicam o SEO do meu site?
Um 404 pontual de conteúdo removido é normal. Mas posts importantes caindo em 404 perdem ranqueamento e tráfego. Por isso vale criar redirects 301 para os endereços antigos que ainda têm links e visitas.
Uso Nginx em vez de Apache. O .htaccess resolve?
Não. O Nginx ignora o .htaccess. Lá a reescrita fica no bloco do servidor com a diretiva try_files apontando para o index.php. Peça ao seu host ou ajuste a configuração do Nginx para incluir essa regra.














