🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o conflito de GUID após migração no WordPress

Time Full Services Time Full Services
Tipo Migracao & Backup
Nome do erro Conflito de GUID após migração EN: GUID conflict after migration
Severidade Atenção
Descrição O conflito de GUID após migração no WordPress ocorre quando uma busca e substituição troca o GUID dos posts, fazendo leitores de feed tratarem tudo como conteúdo novo e duplicado. A correção é manter o GUID original intocado e corrigir apenas as URLs reais do conteúdo, nunca a coluna guid.

O que é o conflito de GUID após migração?

Conflito de GUID após migração é o problema causado por alterar a coluna guid da tabela de posts ao trocar de domínio. O GUID é um identificador único e permanente de cada post, gerado uma vez na publicação e nunca pensado para mudar, mesmo que pareça uma URL. Quando uma busca e substituição troca o domínio também no GUID, leitores de feed RSS, que usam o GUID para saber se já mostraram um item, passam a ver todos os posts como novos e os reentregam duplicados aos assinantes.

Como identificar

  • Assinantes do feed RSS e do e-mail recebem todos os posts antigos de novo, como se fossem publicações novas, após a migração.
  • Agregadores e leitores de feed listam cada post duplicado, um com o GUID antigo e outro com o novo domínio.
  • Na tabela wp_posts, a coluna guid mostra o domínio novo em vez do domínio original em que o post foi publicado.
  • Plugins que usam o GUID como referência (alguns de mídia ou importação) apontam para caminhos que retornam 404.
Antes de começar: Nunca rode um UPDATE na coluna guid sem backup completo e sem ter certeza do domínio original exato. Restaurar o GUID para um valor errado piora o problema e pode duplicar os posts uma segunda vez nos leitores de feed.

Como prevenir

  • Sempre rode o search-replace com a flag que pula a coluna guid ao trocar de domínio
  • Trate o GUID como identificador permanente: ele pode continuar com o domínio antigo sem prejuízo ao site
  • Faça backup do banco antes de qualquer migração e confira o feed RSS num leitor logo após a troca de domínio

Causa

  • Uma busca e substituição ampla trocou o domínio em todas as colunas, incluindo a coluna guid de wp_posts, que jamais deveria mudar.
  • Um UPDATE de SQL cru rodou um REPLACE no campo guid junto com os demais campos, sem excluir essa coluna da operação.
  • Um plugin de migração ou de busca e substituição não ofereceu a opção de pular o GUID e o alterou por padrão.
  • A migração importou um dump em que o GUID já havia sido editado manualmente no arquivo .sql antes da importação.
  • Após a troca de domínio, alguém rodou de novo o search-replace sem a flag que protege o guid, reescrevendo o identificador.

Como resolver

  1. Faça backup do banco antes de tudo: exporte um dump completo do banco de dados. Qualquer ajuste na coluna guid é delicado e precisa de ponto de retorno antes de qualquer alteração.
  2. Entenda que o GUID não é URL de verdade: o GUID parece um link, mas serve só como identificador único e permanente do post. Ele não controla onde o conteúdo é exibido. Por isso, mantê-lo com o domínio antigo não quebra nada no site visível.
  3. Corrija as URLs reais, não o GUID: refaça a troca de domínio com WP-CLI search-replace usando a flag que pula a coluna guid. Isso ajusta os links do conteúdo (post_content, opções) sem tocar no identificador dos posts.
    wp search-replace 'https://domínio-antigo.com' 'https://domínio-novo.com' --skip-columns=guid
  4. Restaure o GUID se ele já foi trocado: se o GUID já foi alterado para o domínio novo e o feed duplicou tudo, restaure o backup anterior ou reverta apenas a coluna guid ao domínio original com cuidado, conforme o código abaixo.
  5. Confirme nos leitores de feed: depois de restaurar o GUID original, abra o feed em seudominio.com/feed e cheque em um leitor que os posts antigos não voltem a ser marcados como novos. A partir daí, não toque mais na coluna guid.
SQL
-- CUIDADO: rode somente com backup do banco e o domINIO antigo EXATO.
-- Reverte a coluna guid ao dominio original, apenas se ela foi trocada por engano.
-- Confira o prefixo de tabela (wp_) e o protocolo (http/https) reais do site antigo.

-- 1. Primeiro, veja o que sera alterado (somente leitura):
SELECT ID, guid FROM wp_posts
WHERE guid LIKE 'https://dominio-novo.com%';

-- 2. Se os resultados estiverem corretos, reverta o GUID ao dominio original:
UPDATE wp_posts
SET guid = REPLACE(guid, 'https://dominio-novo.com', 'https://dominio-antigo.com')
WHERE guid LIKE 'https://dominio-novo.com%';

Perguntas frequentes

O que é o GUID de um post no WordPress?
É um identificador único e permanente, gerado uma vez quando o post é publicado. Apesar de parecer uma URL, ele não controla onde o conteúdo aparece. Leitores de feed RSS usam o GUID para saber se já entregaram um item, por isso ele nunca deve mudar.
Por que não posso trocar o GUID na migração?
Porque os leitores de feed identificam cada post pelo GUID. Se você troca o domínio nele, cada post antigo ganha um GUID novo e os agregadores os tratam como publicações inéditas, reentregando tudo duplicado aos assinantes do feed e do e-mail.
Mas o GUID tem o domínio antigo. Isso não quebra o site?
Não. O GUID não define onde o conteúdo é exibido nem os links visíveis do site, que vêm de post_content e das opções. Manter o GUID com o domínio antigo é o comportamento esperado e recomendado. Quem precisa ser trocado são as URLs reais, não o identificador.
Já troquei o GUID e o feed duplicou tudo. Tem conserto?
Sim. O caminho mais seguro é restaurar o backup do banco anterior à troca. Sem backup, dá para reverter só a coluna guid ao domínio original com um UPDATE cuidadoso, conferindo antes com um SELECT. Depois disso, nunca mais altere o GUID.
Como troco o domínio sem mexer no GUID?
Use o WP-CLI search-replace com a flag --skip-columns=guid. Ela ajusta os links em post_content e nas opções, que são os que importam, e deixa a coluna guid intocada. Plugins como o Better Search Replace também oferecem a opção de não tocar no GUID.
Plugins de migração trocam o GUID automaticamente?
Alguns trocam por padrão, sem avisar. Por isso, prefira ferramentas que ofereçam a opção explícita de preservar o GUID e confirme após a migração que a coluna guid manteve o domínio antigo. Se ela mudou, reverta antes que os feeds reentreguem os posts.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes