Por que os erros de Hreflang são tão custosos
Erros em tags hreflang são particularmente prejudiciais porque frequentemente falham de forma silenciosa. Diferentemente de um link quebrado que retorna um erro 404 visível, uma tag hreflang mal configurada é simplesmente ignorada pelos mecanismos de busca sem qualquer aviso na própria página. O resultado: sua estratégia de SEO internacional parece correta no papel, mas não entrega nenhum benefício na prática. Os mecanismos de busca mostram as versões de idioma erradas aos usuários, conteúdo duplicado dilui seu posicionamento e você perde tráfego orgânico em mercados nos quais investiu especificamente.
Os dez erros a seguir representam os problemas de implementação de hreflang mais comuns que encontramos em milhares de sites multilíngues. Cada um inclui uma explicação clara do que dá errado, por que isso importa e como corrigir.
Erro 1: Tags recíprocas ausentes
O problema: A página A inclui uma tag hreflang apontando para a página B, mas a página B não inclui uma tag hreflang apontando de volta para a página A.
Hreflang requer confirmação bidirecional. Se sua página em inglês diz "meu equivalente em espanhol está em /es/page/", a página em espanhol em /es/page/ também deve dizer "meu equivalente em inglês está em /en/page/". Essa confirmação mútua é como os mecanismos de busca verificam que o relacionamento é intencional e não um erro ou tentativa de manipulação.
O que acontece: O Google ignora completamente o hreflang para o par que não possui reciprocidade. Mesmo que você tenha 20 páginas localizadas corretamente vinculadas, um único link de retorno ausente quebra a cadeia para aquele par específico.
Como corrigir: Certifique-se de que cada página no conjunto hreflang inclua o conjunto completo de links alternados -- incluindo uma tag autorreferencial. Se sua página em inglês lista 6 links hreflang, cada página nesse conjunto deve listar os mesmos 6 links. Nosso Gerador de tags Hreflang produz automaticamente tags recíprocas para todas as páginas de um conjunto.
Erro 2: Hreflang autorreferencial ausente
O problema: Uma página inclui tags hreflang apontando para todas as suas variantes de idioma, exceto para si mesma.
A documentação do Google declara explicitamente que cada página deve incluir uma tag hreflang apontando para si mesma. Essa autorreferência não é redundante -- faz parte do mecanismo de validação que os mecanismos de busca usam para confirmar que o conjunto hreflang está completo.
Exemplo do erro:
<!-- Na página em inglês -- autorreferência ausente -->
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<!-- Onde está hreflang="en" apontando para esta página? -->
Como corrigir: Sempre inclua a página atual em seu próprio conjunto hreflang:
<!-- Correto: inclui autorreferência -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
Erro 3: Códigos de idioma ou região incorretos
O problema: Uso de códigos ISO de idioma e região inválidos ou incorretos nos valores hreflang.
Os erros de código mais comuns incluem:
- Usar
ukpara o Reino Unido (o código correto éen-GB;uké o código ISO 639-1 para ucraniano) - Usar
jppara japonês (o código de idioma correto éja;JPé o código de país para o Japão) - Usar
brpara português brasileiro (o código correto épt-BR;brsozinho é o código ISO 639-1 para bretão) - Usar códigos de três letras como
engoudeu(hreflang requer códigos de duas letras ISO 639-1) - Usar apenas um código de país sem prefixo de idioma (por exemplo,
hreflang="US"é inválido) - Usar underscores em vez de hifens (por exemplo,
en_USem vez deen-US)
Como corrigir: Valide cada valor hreflang contra a lista de códigos de idioma ISO 639-1 e a lista de códigos de país ISO 3166-1 Alpha-2. O formato é sempre {idioma} ou {idioma}-{REGIÃO}, com o idioma em letras minúsculas e a região em maiúsculas, separados por um hifen.
Erro 4: Discrepância HTTP vs HTTPS
O problema: Seu site serve páginas via HTTPS, mas suas tags hreflang referenciam URLs HTTP (ou vice-versa).
<!-- O site está em HTTPS, mas hreflang usa HTTP -->
<link rel="alternate" hreflang="en" href="http://example.com/en/page/" />
Os mecanismos de busca tratam http://example.com/en/page/ e https://example.com/en/page/ como duas URLs diferentes. Se sua página é servida no endereço HTTPS, mas o hreflang aponta para o endereço HTTP, o Google vê uma discrepância -- o hreflang aponta para uma URL que ou não existe (se HTTP redireciona para HTTPS) ou para uma página completamente diferente.
Como corrigir: Audite todas as URLs hreflang para garantir que o protocolo corresponda ao protocolo real de entrega. Se seu site roda em HTTPS (e deveria), cada URL em cada tag hreflang deve começar com https://. Isso também se aplica às tags canonical, URLs do sitemap e qualquer outra referência às suas páginas.
Erro 5: Uso de URLs relativas
O problema: Tags hreflang usam URLs relativas em vez de URLs absolutas.
<!-- ERRADO: URL relativa -->
<link rel="alternate" hreflang="es" href="/es/page/" />
<!-- CORRETO: URL absoluta -->
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
A especificação hreflang exige URLs absolutas. URLs relativas são silenciosamente ignoradas pelos mecanismos de busca. Seu hreflang simplesmente não terá efeito, e você pode não perceber por meses porque não há mensagem de erro.
Como corrigir: Sempre use URLs totalmente qualificadas começando com https:// (ou http:// se seu site genuinamente não suporta HTTPS). Isso inclui o protocolo, domínio e caminho completo. Nunca use URLs com protocolo relativo (//example.com/page/) também -- sempre especifique o protocolo explicitamente.
Erro 6: x-default ausente
O problema: Seu conjunto hreflang não inclui uma entrada x-default.
Embora tecnicamente opcional, omitir x-default significa que os mecanismos de busca não têm orientação sobre o que mostrar a usuários cujo idioma ou região não é coberto pelo seu conjunto hreflang. Se você tem versões em inglês, espanhol e alemão, o que um usuário japonês deveria ver?
Sem x-default, o Google adivinha. Às vezes mostra a versão em inglês (o que pode ser aceitável), mas às vezes não mostra nada do seu site porque não consegue determinar com confiança a correspondência correta.
Como corrigir: Adicione uma entrada hreflang x-default a cada conjunto de páginas. Aponte-a para a página que oferece a melhor experiência de fallback -- normalmente sua versão em inglês ou uma página com seletor de idioma.
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
Erro 7: Códigos de idioma duplicados no mesmo conjunto
O problema: Incluir múltiplas entradas hreflang com o mesmo código idioma-região no conjunto de tags de uma única página.
<!-- ERRADO: duas entradas para "en" -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page-v1/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page-v2/" />
Quando o Google encontra códigos de idioma duplicados, não consegue determinar qual URL é a correta para aquele idioma. O resultado é imprevisível -- o Google pode escolher uma, alternar entre elas ou ignorar ambas.
Como corrigir: Cada código idioma-região deve aparecer exatamente uma vez por conjunto hreflang. Se você tem duas páginas em inglês que servem propósitos diferentes, elas não devem estar no mesmo conjunto hreflang. Hreflang conecta conteúdo equivalente entre idiomas, não páginas diferentes dentro do mesmo idioma.
Erro 8: Tag Canonical apontando para um idioma diferente
O problema: A tag canonical em uma página localizada aponta para a página equivalente em um idioma diferente em vez de para si mesma.
<!-- Na página em alemão -- ERRADO -->
<link rel="canonical" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
Isso diz ao Google: "A página em alemão é uma cópia da página em inglês; por favor, indexe apenas a versão em inglês." O Google obedece ao canonical, desindexa a página em alemão, e seu hreflang é ignorado. Você perde completamente sua presença de busca no mercado alemão.
Este é um erro tão crítico e difundido que escrevemos um guia dedicado: Hreflang vs Canonical: Como funcionam juntos.
Como corrigir: Cada página localizada deve ter um canonical autorreferencial. O canonical da página em alemão deve apontar para a URL em alemão. O canonical da página em espanhol deve apontar para a URL em espanhol. Nunca faça referências cruzadas de canonicals entre idiomas.
Erro 9: Formato incorreto do sitemap XML para Hreflang
O problema: Implementar hreflang no sitemap XML usando um formato de marcação incorreto.
Erros comuns de formato no sitemap incluem:
- Esquecer a declaração do namespace
xmlns:xhtmlno elemento<urlset> - Usar
<link>em vez de<xhtml:link>dentro das entradas<url> - Colocar anotações hreflang fora dos blocos
<url> - Não incluir todas as URLs de cada idioma dentro de cada bloco
<url>(cada entrada de URL deve conter o conjunto hreflang completo)
Formato correto:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/en/page/</loc>
<xhtml:link rel="alternate" hreflang="en"
href="https://example.com/en/page/" />
<xhtml:link rel="alternate" hreflang="es"
href="https://example.com/es/page/" />
<xhtml:link rel="alternate" hreflang="x-default"
href="https://example.com/en/page/" />
</url>
</urlset>
Como corrigir: Valide o XML do seu sitemap contra o esquema antes de enviá-lo. Certifique-se de que o namespace xhtml esteja declarado, use <xhtml:link> (não <link>) e inclua o conjunto hreflang recíproco completo dentro de cada bloco <url>.
Erro 10: Não validar após a implementação
O problema: Implementar as tags hreflang uma vez e nunca verificar se estão funcionando corretamente.
Implementações de hreflang se deterioram com o tempo. Páginas são movidas, URLs mudam, novos idiomas são adicionados, templates do CMS são atualizados e desenvolvedores fazem alterações sem perceber o impacto nas tags hreflang. Uma configuração hreflang que estava correta no lançamento pode estar completamente quebrada seis meses depois.
Causas comuns de deterioração pós-lançamento incluem:
- Mudanças na estrutura de URLs durante um redesign do site que atualizam as URLs das páginas, mas não as referências hreflang
- Novas páginas de idioma adicionadas sem atualizar o conjunto hreflang em todas as páginas de idiomas existentes
- Atualizações de plugins do CMS que mudam como as tags hreflang são geradas
- Mudanças na configuração do CDN ou servidor que alteram o comportamento das URLs
- Migrações de domínio (por exemplo, mudar de uma estrutura de subdiretórios para subdomínios) sem atualizar as URLs hreflang
Como corrigir: Estabeleça uma rotina de validação regular:
- Use o relatório de Segmentação internacional do Google Search Console para verificar erros hreflang sinalizados pelo Google
- Execute rastreamentos periódicos com uma ferramenta que extraia e cruze as tags hreflang em todo o seu site
- Valide a reciprocidade -- para cada página, confirme que cada URL que ela referencia também a referencia de volta
- Verifique após cada deploy -- integre a validação hreflang no seu pipeline de CI/CD para que tags quebradas sejam detectadas antes de chegarem à produção
- Monitore o desempenho de busca por idioma -- uma queda repentina de tráfego de um mercado específico frequentemente indica hreflang quebrado para aquele idioma
Resumo
Esses dez erros representam a grande maioria das falhas de implementação de hreflang. A boa notícia é que todos são evitáveis com uma implementação cuidadosa e validação regular:
- Tags recíprocas ausentes -- cada página deve vincular a todas as outras páginas do conjunto, e vice-versa
- Hreflang autorreferencial ausente -- cada página deve incluir a si mesma em seu próprio conjunto hreflang
- Códigos de idioma incorretos -- use códigos de idioma ISO 639-1 e códigos de região ISO 3166-1 Alpha-2
- Discrepância HTTP/HTTPS -- o protocolo deve corresponder ao protocolo real de entrega
- URLs relativas -- sempre use URLs absolutas começando com
https:// - x-default ausente -- inclua um fallback para usuários em regiões não cobertas
- Códigos de idioma duplicados -- cada código aparece exatamente uma vez por conjunto
- Canonicals entre idiomas -- cada página localizada tem canonical para si mesma, nunca para outro idioma
- Formato de sitemap incorreto -- use
<xhtml:link>com o namespace correto - Não validar -- verifique regularmente, automatize onde possível
Use nosso Gerador de tags Hreflang para produzir conjuntos de tags que evitem automaticamente os erros 1 a 7. Para uma validação contínua, estabeleça uma rotina que detecte problemas antes que impactem sua visibilidade nos mecanismos de busca.