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.
Antes de começar: Faça backup completo do banco antes do search-replace: ele altera milhares de linhas de uma vez e não há desfazer sem a cópia. Rode sempre um –dry-run antes para conferir o volume de alterações esperado.
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.
BASH
# 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
Perguntas frequentes
Mudei siteurl e home, mas os links continuam quebrados. Por quê?
Porque siteurl e home só definem o endereço base. As URLs absolutas do domínio antigo continuam gravadas no conteúdo dos posts, nos metadados e nas opções. Só um search-replace em todo o banco substitui essas milhares de referências.
Posso trocar o domínio com find-and-replace direto no SQL?
Não. Widgets e opções de tema/plugin ficam em dados serializados, que guardam o tamanho exato de cada string. Um replace cru quebra esse tamanho e corrompe os dados. Use WP-CLI search-replace ou Better Search Replace.
As imagens sumiram após mudar o domínio. Como corrigir?
O src das imagens ainda aponta para o domínio antigo no banco. Após o search-replace em todas as tabelas, os caminhos passam a usar o novo domínio e as imagens voltam. Limpe o cache para ver o resultado.
Preciso de um redirect 301 do domínio antigo?
Sim, se o domínio antigo ainda recebe acessos ou tem backlinks. O 301 preserva o SEO transferindo a autoridade e evita que links externos quebrem. Configure-o no servidor do domínio antigo apontando para o novo.
Devo incluir o https:// no termo de busca do search-replace?
Rode preferindo só o domínio (ex.: 'domínio-antigo.com') para pegar referências com http, https e protocolo relativo. Se o conteúdo misturava http e https, faça uma passada extra com cada protocolo para não deixar sobras.
Recebo 'too many redirects' após a mudança. O que é?
Geralmente é siteurl/home conflitando com um redirect mal configurado, ou cache antigo. Confirme que ambas as URLs apontam para o domínio novo em https, refaça os permalinks e limpe o cache do plugin e do CDN.














