Como corrigir URLs quebradas após mudança de domínio
O que é as URLs quebradas após mudança de domínio?
URLs quebradas após mudança de domínio é o estado em que o site responde no domínio novo, mas o conteúdo ainda referencia o antigo: links internos levam ao endereço velho, imagens não carregam e formulários enviam para o lugar errado. O WordPress grava a URL absoluta em posts, opções e metadados; trocar só siteurl/home não atualiza essas milhares de referências espalhadas pelo banco.
Como identificar
- Links internos do menu e do conteúdo levam ao domínio antigo e retornam 404.
- Imagens da biblioteca de mídia não aparecem (src ainda aponta para o domínio antigo).
- O navegador mostra aviso de conteúdo misto porque recursos carregam do endereço anterior.
- Redirecionamentos em loop ou “too many redirects” ao acessar páginas internas.
Como prevenir
- Sempre faça a troca de domínio com WP-CLI search-replace ou Better Search Replace, nunca SQL cru
- Mantenha um redirect 301 permanente do domínio antigo para o novo enquanto houver links externos
- Use URLs relativas para mídia quando possível e teste em staging antes de apontar o DNS
Causa
- URL antiga gravada em milhares de linhas do banco (post_content, guid, wp_options, postmeta).
- Apenas siteurl e home alterados, sem substituir as URLs absolutas no conteúdo e nos metadados.
- Dados serializados (widgets, opções de tema/plugin) com a URL antiga, que um find-replace cru corromperia.
- Cache (plugin ou CDN) servindo páginas antigas com os links do domínio anterior.
- Ausência de redirect 301 do domínio antigo para o novo, mantendo links externos quebrados.
Como resolver
- Atualize siteurl e home: em Configurações > Geral, defina a URL do WordPress e a URL do site para o novo domínio (ambas em https).
- Faça o search-replace no banco: substitua o domínio antigo pelo novo em todas as tabelas preservando dados serializados. Use o WP-CLI (search-replace) ou o plugin Better Search Replace, nunca um UPDATE de SQL cru.
- Regenere os permalinks: em Configurações > Links permanentes, clique em Salvar para reescrever o .htaccess e atualizar a estrutura de links no novo domínio.
- Configure o redirect 301: no domínio antigo, adicione um redirecionamento 301 para o novo, preservando o caminho, para não perder SEO nem links externos.
- Limpe o cache: limpe o cache do plugin e do CDN para que as páginas sejam reconstruídas com os links do domínio novo.
# WP-CLI: troca o dominio antigo pelo novo em TODO o banco, preservando serializacao
# 1) Simule primeiro (nao grava nada):
wp search-replace 'dominio-antigo.com' 'dominio-novo.com' --all-tables --dry-run
# 2) Aplique de verdade quando o relatorio bater:
wp search-replace 'dominio-antigo.com' 'dominio-novo.com' --all-tables --report-changes-only
# 3) Limpe permalinks e cache de objetos apos a troca:
wp rewrite flush && wp cache flush














