Atualizado em 19/06/2026
Poucos problemas assustam tanto quanto ver "404 - Página não encontrada" em todos os posts logo depois que a home carregou normalmente. A boa notícia: quando o 404 é geral, a causa quase sempre são os links permanentes (permalinks) e a correção leva poucos minutos. Quando é só uma URL, o caminho é outro — e este guia cobre os dois.
Antes de tudo, identifique o padrão. É tudo que dá 404 (inclusive a home) ou só os posts e páginas internas? É só uma URL? Foi depois de uma migração ou atualização? Essas respostas separam um problema de regra de reescrita de um problema de conteúdo — e levam a soluções diferentes.
Como o 404 costuma aparecer
- A home abre, mas posts e páginas dão 404: sintoma clássico de links permanentes / regras de reescrita.
- Tudo dá 404, até a home: normalmente é configuração de servidor,
.htaccessquebrado ou raiz do site errada. - Só uma página específica dá 404: conteúdo excluído, slug duplicado ou redirecionamento mal feito.
- Depois de migrar de servidor:
.htaccessnão veio junto,mod_rewriteinativo ou URLs apontando para o domínio antigo. - Páginas do admin funcionam, mas o site público não: reforça que o problema está na reescrita das URLs do front-end.
Tipo de 404, causa e solução
| Tipo de 404 | Causa provável | Solução |
|---|---|---|
| Home abre, posts em 404 | Regras de reescrita ausentes/erradas | Resalvar Links Permanentes; regenerar o .htaccess |
| Tudo em 404 (até a home) | .htaccess corrompido ou raiz/servidor mal configurado | Restaurar o .htaccess padrão; checar a configuração do servidor |
| 404 só após migração | mod_rewrite inativo ou URLs antigas no banco | Ativar mod_rewrite; conferir WP_HOME/WP_SITEURL |
| 404 em uma única URL | Conteúdo excluído ou slug duplicado | Republicar, corrigir o slug ou criar um redirecionamento 301 |
| 404 em URLs antigas indexadas | Conteúdo movido sem redirecionamento | Mapear e criar redirecionamentos 301 do antigo para o novo |
1. Resalvar os links permanentes (o primeiro passo)
- Acesse o painel: vá em Configurações → Links Permanentes.
- Salve sem mudar nada: clique em "Salvar alterações". Isso força o WordPress a reescrever as regras de reescrita no
.htaccess. - Teste um post: abra qualquer publicação interna. Se voltou, era só isso — problema resolvido.
- Se aparecer um aviso: quando o WordPress não consegue gravar o
.htaccess, ele mostra as regras na tela para você colar manualmente (veja o passo 2).
2. As regras padrão do .htaccess
Se o WordPress não tem permissão de escrita no arquivo, edite o .htaccess na raiz do site (mesma pasta do wp-config.php) e garanta que ele contenha o bloco padrão do WordPress entre os marcadores BEGIN e END:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Esse bloco diz ao Apache: se o endereço pedido não for um arquivo nem uma pasta de verdade, mande tudo para o index.php, que é quem o WordPress usa para interpretar as URLs "bonitas". Se o site estiver em um subdiretório, o RewriteBase e a última linha precisam refletir esse caminho (por exemplo /blog/).
Está em Nginx? Nginx não usa .htaccess. As regras equivalentes ficam no arquivo de configuração do servidor, normalmente com um try_files $uri $uri/ /index.php?$args; dentro do bloco location /. Aí o ajuste é feito pela hospedagem ou por quem administra o servidor.
3. Conferir o mod_rewrite
O bloco acima só funciona se o módulo mod_rewrite do Apache estiver ativo e se o servidor permitir que o .htaccess sobrescreva configurações (diretiva AllowOverride All, não None). Em hospedagem compartilhada isso costuma vir pronto; em VPS, pode ser necessário habilitar. Se, mesmo com o bloco correto, o 404 persiste, peça à hospedagem para confirmar o mod_rewrite e o AllowOverride.
4. Quando o 404 vem de uma migração
- Recrie o
.htaccess: ele costuma ficar para trás na cópia de arquivos por ser oculto. - Confirme o
mod_rewrite: o servidor novo pode não ter o módulo ativo. - Cheque as URLs do site: garanta que
WP_HOMEeWP_SITEURLapontam para o domínio certo nowp-config.php. - Atualize referências antigas no banco: uma migração mal feita deixa links com o domínio anterior. Veja o guia de migração de loja WooCommerce para o passo a passo de troca de domínio sem quebrar URLs.
5. 404 em uma URL: redirecionamento 301
Quando o problema é uma página específica que mudou de endereço ou foi removida, o certo não é deixar o visitante (nem o Google) batendo em 404: crie um redirecionamento 301 (permanente) do endereço antigo para o novo. Isso preserva a autoridade que aquela URL já tinha. No .htaccess, um redirecionamento simples fica assim:
Redirect 301 /pagina-antiga/ https://seusite.com.br/pagina-nova/
Para muitos redirecionamentos, um plugin dedicado é mais prático e seguro do que editar o .htaccess à mão. Mapear corretamente essas URLs é parte do trabalho de SEO para WordPress — feito errado, derruba posições no Google; feito certo, preserva o tráfego.
404 em massa é um vazamento de tráfego. Cada URL antiga indexada que cai em 404 é uma visita perdida e um sinal ruim para o buscador. Se o seu site acumulou 404 depois de uma reforma ou migração, vale mapear e redirecionar tudo de uma vez — antes que o Google reavalie o site para baixo.
Perguntas frequentes
A página inicial abre, mas todos os posts dão erro 404. Por quê?
Esse é o sintoma clássico de problema nos links permanentes. A home funciona porque é servida direto; já os endereços "bonitos" dos posts dependem das regras de reescrita (rewrite) no .htaccess. Se essas regras sumiram, estão erradas ou o mod_rewrite está desativado, tudo que não é a home cai em 404. Resalvar os permalinks costuma resolver.
Como resalvar os links permanentes?
No painel, vá em Configurações → Links Permanentes e clique em "Salvar alterações" sem mudar nada. Isso força o WordPress a regravar as regras de reescrita. Quando o WordPress tem permissão de escrita no .htaccess, o problema some na hora. Se não tiver, ele mostra as regras para você colar manualmente.
Resalvei os permalinks e o 404 continua. O que pode ser?
Geralmente é o mod_rewrite desativado no Apache, ou o .htaccess sem permissão de escrita (o WordPress não consegue gravar as regras). Também ocorre quando a diretiva AllowOverride está como None e o servidor ignora o .htaccess. Em servidores Nginx não há .htaccess: as regras ficam na configuração do servidor.
Depois de migrar o site, tudo passou a dar 404. É a mesma causa?
Quase sempre sim. Após uma migração, o .htaccess pode não ter vindo junto, o mod_rewrite pode não estar ativo no novo servidor, ou as URLs do site no banco ficaram apontando para o domínio antigo. Resalvar os permalinks e conferir as URLs (WP_HOME/WP_SITEURL) resolve a maioria dos casos.
Uma página específica dá 404, mas o resto funciona. O que fazer?
Aí o problema não é de regra geral, é daquela URL. Pode ser conteúdo realmente excluído ou despublicado, um conflito de slug (duas páginas com o mesmo endereço), ou um plugin de redirecionamento mal configurado. Se a página mudou de endereço, o certo é criar um redirecionamento 301 do antigo para o novo.
Vale a pena chamar alguém para resolver 404 em massa?
Se o 404 é geral, costuma ser rápido. Mas quando ele vem de uma migração mal feita, de centenas de URLs antigas indexadas no Google ou de um conflito de plugins, organizar os redirecionamentos sem perder posições no buscador exige método. Me chame no WhatsApp (43) 99932-9697 que eu avalio o caso.