
🔗 Como corrigir permalinks quebrados no WordPress
Visita um site, clica num link para um artigo recente e, em vez de texto, vê uma página branca com «404 Page Not Found». Uma imagem familiar.
Os Permalinks no WordPress são construídos de forma simples, mas quebram com uma facilidade alarmante. Um plugin corrompido, uma atualização falhada ou uma alteração acidental no .htaccess e o site inteiro transforma-se numa coleção de URLs partidas. De acordo com o fórum oficial de suporte do WordPress, os erros na estrutura dos permalinks estão entre os cinco problemas mais frequentes.
Segue-se um algoritmo de diagnóstico e reparação, desde uma reinicialização rápida das definições até à edição manual das configurações do servidor. Cada passo foi testado em sites reais. Pânico cancelado.
💡 Visão geral rápida:
- Reponha as definições de permalinks no painel de administração com um clique; para a maioria dos sites, o problema desaparece instantaneamente
- Se a reposição não funcionou, renomeie o
.htaccesse reponha novamente: o WordPress criará um ficheiro limpo com as regras de reescrita corretas - Verifique os plugins por eliminação: desative todos de uma vez e ative-os um a um após cada reposição de permalinks
- No servidor Apache, ative manualmente o
mod_rewritee adicioneAllowOverride Allà configuração do virtual host
Porque é que os permalinks do WordPress deixam de funcionar
Um permalink é um URL imutável para um artigo, página ou categoria. O WordPress armazena a estrutura de permalinks na base de dados e serve URLs «amigáveis» através do módulo mod_rewrite do servidor web Apache. Uma quebra em qualquer elo desta cadeia produz um 404.
Instalar um novo plugin. Alguns plugins interferem com o mecanismo de formação de URLs: reescrevem o .htaccess, adicionam as suas próprias regras de redirecionamento ou entram em conflito com extensões já ativas. Os plugins de SEO, as soluções de caching e os plugins de segurança estão numa zona de risco especial, pois todos trabalham com URLs a um nível baixo.
Atualizar o core, o tema ou os plugins. Uma atualização maior do WordPress ou uma mudança de versão do PHP no alojamento torna os plugins antigos incompatíveis. O resultado é um conflito que derruba as regras de reescrita. Não pode saltar as atualizações de segurança, mas antes de cada atualização maior, faça um backup e verifique a compatibilidade numa cópia de teste.
Mover um site para um novo domínio ou servidor. A migração do WordPress é uma das causas mais comuns de links partidos. Os caminhos absolutos mudam, os dados serializados na base de dados e as configurações do servidor web mudam. Até mesmo adicionar um certificado SSL após a migração pode quebrar os permalinks, porque exige a edição do .htaccess para o redirecionamento HTTP→HTTPS. Se moveu recentemente uma instalação do WordPress para um subdiretório, verifique a estrutura de permalinks imediatamente após a migração.
Restaurar um backup. Restaurar um site a partir de um backup, por vezes, também ressuscita problemas antigos. Se o backup foi feito antes de configurar os permalinks, os 404 regressam. Mesmo os plugins de backup avançados não garantem uma restauração perfeita das regras de reescrita após migrações complexas.
Ficheiro .htaccess corrompido. O ficheiro .htaccess é o elo entre o WordPress e o Apache. Ele armazena as diretivas mod_rewrite responsáveis pelos URLs «amigáveis». Um plugin escreve lixo, apaga acidentalmente o ficheiro via FTP e alguns painéis de alojamento repõem-no ao alterar definições. Sem um .htaccess funcional, os permalinks transformam-se em ?p=123.
Como corrigir permalinks partidos: guia passo a passo
Cobrimos as causas, agora passemos às soluções. Siga por ordem: aplique cada passo seguinte apenas se o anterior não funcionou.
Passo 1. Repor as definições de permalinks
O método mais rápido e seguro. O WordPress armazena a estrutura de permalinks na base de dados e, ao guardar as definições, regenera as regras de reescrita. Os programadores chamam a este processo «flush rewrite rules».
Aceda ao painel de administração, navegue para Definições → Permalinks:

Mude temporariamente para qualquer outra estrutura, por exemplo, «Simples» em vez de «Nome do artigo», e clique em Guardar alterações. Depois, volte à opção original e guarde novamente. Não precisa de alterar as definições permanentemente: o que importa é o ato de guardar, que força o WordPress a reconstruir as regras.
Recarregue o site e verifique se os artigos abrem. Funcionou? Problema resolvido. Não? Prossiga.
Passo 2. Verificar e recriar o ficheiro.htaccess
Se a reposição não ajudou, a origem do problema está quase de certeza no .htaccess. O ficheiro está localizado na raiz do site, no mesmo local que o wp-config.php e as pastas wp-content e wp-includes.

Ligue-se ao servidor via FTP (FileZilla, WinSCP) ou ao gestor de ficheiros no painel de alojamento:

Encontre o .htaccess, clique com o botão direito e renomeie-o para .htaccess_old. Não apague o ficheiro, ele pode conter regras críticas como o redirecionamento HTTP→HTTPS ou definições de compressão:

Após renomear, o WordPress deixa de ver o ficheiro antigo. Aceda ao painel de administração e reponha os permalinks como no Passo 1; o sistema criará um .htaccess novo e limpo com as regras de reescrita corretas. Mantenha o ficheiro antigo como cópia de segurança.
Passo 3. Encontrar o plugin conflituoso
O problema apareceu após instalar um plugin específico? Desative-o e reponha os permalinks novamente; muito provavelmente, isso é suficiente.
Quando o culpado é desconhecido, use o método de eliminação:

Desative todos os plugins de uma vez. Reponha os permalinks. Verifique o site: se funcionar, o problema está num dos plugins. Ative-os um a um, repondo as definições e verificando o site após cada um. O plugin após o qual os links se partem novamente é a causa.
Substitua o plugin conflituoso encontrado por uma alternativa do diretório WordPress.org. Reporte o problema ao programador: muitas vezes, eles têm conhecimento de incompatibilidades e podem sugerir uma solução alternativa.
Passo 4. Configurar o servidor: AllowOverride e mod_rewrite
Se os passos anteriores não ajudaram e está a usar o Apache, o problema pode estar nas definições do virtual host.
Primeiro, certifique-se de que o módulo mod_rewrite está ativo. É ele que transforma os URLs «amigáveis» em consultas que o WordPress entende. Verifique e ative-o com o comando:
1 sudo a2enmod rewrite
Se o módulo já estava ativo, aparecerá um aviso, o que é normal. Agora, reinicie o Apache:
1 sudo systemctl restart apache2
No CentOS/RHEL, o comando de reinicialização é diferente:
1 sudo systemctl restart httpd
O segundo componente necessário é a diretiva AllowOverride All. Ela permite que o ficheiro .htaccess substitua a configuração do servidor dentro do diretório do site. Abra o ficheiro de configuração do Apache: no Ubuntu é /etc/apache2/sites-available/your-site.conf, no CentOS é /etc/httpd/conf/httpd.conf. Encontre a secção <Directory> e deixe-a com este formato:
1 <Directory /var/www/your-site/> 2 AllowOverride All 3 </Directory>
Substitua o caminho /var/www/your-site/ pelo caminho real para a pasta raiz do WordPress no seu servidor. Após editar, reinicie o Apache com o comando acima e, em seguida, reponha os permalinks no painel de administração.
Estas duas ações no servidor, AllowOverride All mais mod_rewrite, fecham virtualmente todos os cenários restantes de permalinks partidos no Apache.
Vídeo: restauro de permalinks passo a passo
Se prefere ver em vez de ler, aqui está um pequeno guia que mostra todo o processo, desde a reposição das definições de permalinks até ao restauro do .htaccess num site real:
⁉️🤔 Perguntas frequentes
Porque é que o erro 404 permanece após repor os permalinks?
A reposição através do painel de administração reescreve as regras de reescrita na base de dados. Mas se o
.htaccessestiver fisicamente inacessível para escrita, permissões de acesso incorretas, o WordPress não consegue atualizar o ficheiro no servidor. Verifique as permissões: normalmente, são necessários 755 para diretórios e 644 para ficheiros. Certifique-se também de que o.htaccessexiste fisicamente: após renomear no Passo 2, o WordPress cria um novo na próxima reposição. A reposição em si não altera os URLs dos artigos existentes e não quebra a indexação.
Posso simplesmente apagar o.htaccess?
Não. Sem o
.htaccessnum servidor Apache, o WordPress recorre a links «simples» como?p=123, o que é feio e prejudica o SEO. A ordem correta é: renomeie o ficheiro antigo mantendo uma cópia de segurança e, em seguida, reponha as definições de permalinks no painel de administração. O WordPress criará um novo.htaccessautomaticamente. Nunca apague o ficheiro sem ter a possibilidade de o restaurar: ele pode conter regras críticas de redirecionamento HTTP→HTTPS ou definições de compressão.
O que fazer se o site estiver em Nginx?
No Nginx, não existe o ficheiro
.htaccess; todas as regras de reescrita são escritas na configuração do servidor. O bloco padrão para o WordPress:location / { try_files $uri $uri/ /index.php?$args; }. Verifique o ficheiro de configuração do site (normalmente/etc/nginx/sites-available/your-site), adicione este bloco à secçãoservere recarregue o Nginx:sudo systemctl reload nginx. Os Passos 1 e 3, reposição de links e verificação de plugins, funcionam para o Nginx exatamente da mesma forma que para o Apache.
Qual é o plugin que mais frequentemente quebra os permalinks?
Estatisticamente, os plugins de SEO lideram, pois manipulam diretamente os URLs, e as soluções de caching: criam cópias estáticas das páginas e podem «lembrar-se» da versão quebrada. Em terceiro lugar estão os plugins de segurança que modificam o
.htaccesspara bloquear pedidos suspeitos. Após desativar um plugin de caching, não se esqueça de limpar a cache do navegador ou abrir o site em modo anónimo; uma versão estática em cache com 404 pode ser mostrada mesmo após a correção.
Preciso de verificar a integridade da base de dados?
Em casos raros, a causa é uma tabela
wp_optionscorrompida, onde as definições de permalinks são armazenadas. Se nenhum dos métodos descritos ajudou, aceda ao phpMyAdmin, encontre a tabelawp_optionse verifique a entrada comoption_name = 'rewrite_rules'. Se o valor parecer lixo ou um objeto serializado corrompido, elimine esta entrada e, em seguida, reponha as definições de permalinks no painel de administração. O WordPress recriará as regras de reescrita de raiz. A maioria dos utilizadores não precisará deste passo: a esmagadora maioria dos problemas é resolvida pelos métodos 1 a 3.
O que fazer se nada ajudou
Percorremos o caminho desde uma simples reposição de definições até à configuração do servidor Apache e Nginx. Para a maioria absoluta dos sites, um destes métodos resolve o problema.
Se os 404 persistirem, contacte o suporte técnico do seu alojamento. Descreva o problema e enumere os passos que já realizou. Muitas vezes, a causa está nas especificidades do ambiente de alojamento: mod_rewrite desativado ao nível do fornecedor, configuração não padrão do PHP-FPM ou regras de firewall personalizadas a bloquear pedidos para o index.php. O suporte de alojamento vê o lado do servidor que está oculto para si e resolve esses problemas em minutos.
A regra principal que vale a pena recordar: repor permalinks → renomear.htaccess → repor novamente. Esta sequência de duas ações corrige a maioria dos casos e não requer conhecimentos especiais nem acesso ao servidor. Comece por ela da próxima vez e, muito provavelmente, não precisará de ir mais longe.



