Erros de hreflang que arruínam o SEO internacional
Dez erros respondem por quase toda configuração de hreflang quebrada, e a maioria falha em silêncio. Veja como identificar cada um e corrigi-lo.
A maioria dos problemas de hreflang se resume a dez erros: links de retorno ausentes, falta de autorreferência, códigos de idioma ou região inválidos, URLs relativas, apontar para páginas não canônicas, x-default ausente, métodos de implementação misturados, cobertura parcial, versões alternativas bloqueadas e tratar o hreflang como solução para conteúdo duplicado. Cada um tem um sintoma claro e uma correção específica.
O que o hreflang faz de fato
O hreflang diz aos mecanismos de busca qual versão de idioma ou região de uma página mostrar a um determinado usuário. Ele troca a URL no resultado, e nada mais. Não é um impulso de ranqueamento. Uma página com anotações impecáveis ainda precisa conquistar sua posição por mérito próprio.
Como é um conjunto correto de hreflang
Três versões — inglês, espanhol e um fallback — escritas como elementos link no head de cada uma dessas páginas:
<link rel="alternate" hreflang="en" href="https://example.com/page/">
<link rel="alternate" hreflang="es" href="https://example.com/es/pagina/">
<link rel="alternate" hreflang="x-default" href="https://example.com/page/">
A mesma relação expressa em um sitemap XML, onde o urlset precisa declarar o namespace xhtml:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/page/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/pagina/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page/"/>
</url>
</urlset>
A página em espanhol carrega o conjunto idêntico. Essa simetria é todo o mecanismo, e a maioria dos erros abaixo é uma forma de quebrá-la.
1. Links de retorno ausentes
Toda relação de hreflang é bidirecional. Se A aponta para B, B precisa apontar de volta para A, ou a anotação fica sem confirmação e é ignorada. Sintoma: as versões nunca se trocam nos resultados, e o Search Console relata ausência de tags de retorno. Correção: gere o mesmo conjunto completo para cada página do grupo, não uma lista de mão única.
2. Nenhum hreflang autorreferente
Cada página deve incluir uma entrada de hreflang para a sua própria URL. Deixá-la de fora torna o conjunto incompleto, e os mecanismos descartam conjuntos que não conseguem reconciliar. Correção: adicione a autorreferência, de modo que um grupo de três idiomas carregue três entradas nas três páginas.
3. Códigos de idioma e região errados
O valor de idioma deve ser um código ISO 639-1 e a região opcional deve ser ISO 3166-1 Alpha 2. Uma região nunca pode aparecer sozinha. Três erros clássicos: en-UK em vez de en-GB, confundir zh-CN (chinês na China) com zh-Hans (uma subtag de escrita, não uma região) e inventar um idioma a partir de um país, como uk para a Grã-Bretanha, quando o código significa ucraniano. Valores inválidos são descartados sem aviso.
4. URLs relativas
Os valores de hreflang devem ser URLs absolutas e completas, protocolo incluído. Um valor como /es/pagina/ é inválido e a entrada é ignorada. Sintoma: anotações que parecem corretas no seu template mas nunca se registram em lugar nenhum. Correção: emita https://example.com/es/pagina/ sempre, a mesma regra que vale para os valores loc do sitemap.
5. Apontar para URLs não canônicas, com redirecionamento ou noindex
O hreflang e a canônica precisam concordar. A canônica de cada página aponta para ela mesma, e cada valor de hreflang aponta para a URL canônica de outra versão. Anotar uma URL que redireciona, se canonicaliza para outro lugar ou está com noindex envia instruções contraditórias, e o conflito costuma se resolver com o descarte das suas anotações. Correção: garanta que cada URL do grupo devolva 200, seja indexável e seja autocanônica.
6. x-default ausente ou mal usado
O x-default marca o fallback para usuários cujo idioma você não cobre: um seletor de idioma, uma página inicial global ou a sua versão principal. Sintoma: visitantes de localidades não cobertas caindo em uma versão arbitrária. Correção: nomeie um fallback genuíno e repita-o em todo o grupo.
7. Misturar métodos de implementação
Há três lugares válidos para o hreflang: elementos link em HTML no head, cabeçalhos HTTP Link e anotações xhtml:link no sitemap XML. Qualquer um funciona. O problema começa quando um site implementa dois pela metade, e o head lista dois idiomas enquanto o sitemap lista quatro. Escolha um método e seja completo nele.
8. Anotar apenas a home
O hreflang é um sinal de nível de página, não uma configuração de nível de site. Marcar a home não faz nada pelas 500 páginas de produto abaixo dela. Sintoma: a home certa para cada mercado, e as páginas mais profundas no idioma errado. Correção: emparelhe cada página com seus equivalentes reais e, onde não houver equivalente, deixe aquele idioma de fora em vez de apontar para algo apenas parecido.
9. Bloquear a versão alternativa, impedindo o rastreamento
Uma relação só é confirmada se as duas páginas puderem ser buscadas. Bloquear uma pasta de idioma no robots.txt, ou escondê-la atrás de redirecionamentos geográficos que desviam os rastreadores, quebra a verificação do link de retorno. Correção: mantenha cada URL anotada rastreável e alcançável sem redirecionamento.
10. Esperar que o hreflang resolva conteúdo duplicado
O hreflang gerencia variantes regionais e de idioma. Ele não deduplica páginas quase idênticas e não substitui as tags canônicas. Duas páginas em inglês quase iguais, uma para os Estados Unidos e outra para a Austrália, continuam competindo entre si; o hreflang apenas diz a que mercado cada uma se destina. Duplicatas de verdade precisam de canonicalização ou consolidação.
Qual método de implementação usar
| Método | Melhor para | Principal desvantagem |
|---|---|---|
| Elementos link em HTML no head | Páginas HTML, poucos idiomas, sites baseados em templates | A marcação cresce com o quadrado do número de idiomas e é enviada a cada carregamento de página |
| Cabeçalho HTTP Link | Arquivos não HTML, como PDFs, onde não existe head para editar | Invisível no código-fonte, exige configuração de servidor ou CDN e se perde com facilidade em uma migração |
| xhtml:link no sitemap XML | Sites grandes e muitos idiomas; mantém a marcação das páginas enxuta | Mais difícil de conferir por amostragem, e o sitemap precisa continuar válido e atual, senão o conjunto inteiro fica desatualizado |
A via do sitemap é a que melhor escala, e é também por isso que ela falha em silêncio: um namespace malformado ou um arquivo desatualizado leva as anotações junto. Valide o sitemap depois de qualquer mudança no gerador e divida conjuntos multilíngues grandes com um índice de sitemaps.
Como verificar se o hreflang está funcionando
Verifique nos dois sentidos. Busque a página A, leia o conjunto de anotações dela e então busque cada URL que ela nomeia, confirmando que todas listam o mesmo conjunto, incluindo a si mesmas. O código-fonte cobre o método HTML, os cabeçalhos de resposta cobrem o segundo e o sitemap cobre o terceiro. Qualquer assimetria é o defeito.
Onde o Search Console oferece relatórios de segmentação internacional para a sua propriedade, ele lista erros de hreflang, como tags de retorno ausentes e códigos de idioma desconhecidos, e essa é a forma mais rápida de ver problemas em escala. Ele fica atrás dos seus deploys, então trate-o como uma segunda opinião. Para as falhas de rastreamento por baixo disso, o guia de erros de sitemap cobre os redirecionamentos, 404s e bloqueios de robots.txt que derrubam conjuntos de anotações.