Por exemplo, erros no formato do código de idioma ou caminhos de link incompletos podem fazer com que os motores de busca não consigam identificar corretamente o idioma ou a região da página, ou até causar competição entre páginas multilíngues, fazendo com que o tráfego seja perdido para o público-alvo.
Este artigo, a partir de uma perspectiva técnica prática, resume os 7 erros mais comuns na configuração de hreflang, recomendando o uso de ferramentas para validação periódica e evitar que pequenos erros prejudiquem a otimização global.

Erro no formato do código de idioma ou região
Por exemplo, usar letras maiúsculas (como EN-US
) ou erros de digitação (como escrever zh-CN
como zh-CH
) podem fazer com que os motores de busca não reconheçam corretamente a região alvo da página, e até considerem o código inválido.
Mesmo que o código pareça correto (como usar es-ES
em vez de es
), a informação redundante pode atrapalhar a lógica de correspondência.
O impacto pode ser grande, por exemplo, o tráfego de usuários espanhóis pode ser atribuído erroneamente para a página em português.
Regras dos códigos segundo padrões ISO
- Código de idioma: deve usar letras minúsculas segundo o padrão ISO 639-1 (ex:
en
, es
, zh
), somente abreviação de 2 letras. - Código de região: opcional, deve usar letras maiúsculas segundo o padrão ISO 3166-1 (ex:
US
, GB
, CN
), somente abreviação de países/regiões. - Formato combinado: idioma e região são separados por hífen, por exemplo
en-US
(inglês americano), zh-CN
(chinês simplificado).
Exceções:
- Caso apenas o código do idioma seja usado (ex:
fr
), significa que é para todos os usuários que falam francês, sem restrição de região. - Para chinês tradicional, deve-se usar
zh-Hant
(chinês tradicional) ou zh-Hant-TW
(chinês tradicional de Taiwan), em vez de zh-TW
para evitar ser interpretado como chinês simplificado de Taiwan.
Cenários típicos de erro e consequências
Erro 1: Confusão de maiúsculas e minúsculas
- Exemplos errados:
EN-us
(idioma em maiúsculas + região em minúsculas), Zh-cn
(primeira letra em maiúscula no idioma). - Consequência: os motores de busca podem ignorar totalmente a tag, fazendo com que a página não seja mostrada ao público alvo.
Erro 2: Erros de digitação ou códigos fictícios
- Exemplos errados:
pt-BZ
(o código correto para Brasil é BR
), eu
(código para basco, mas alguns motores podem não suportar idiomas minoritários). - Consequência: idiomas raros ou códigos incorretos podem fazer a página não ser indexada corretamente, perdendo tráfego para a página padrão.
Erro 3: Códigos redundantes ou combinações erradas
- Exemplos errados:
es-ES
(espanhol + Espanha, mas muitas vezes basta es
), en-US-UK
(combinação inválida de múltiplas regiões). - Consequência: informações redundantes podem confundir o motor de busca, que pode preferir páginas concorrentes mais simples.
Ferramentas recomendadas e métodos de validação
- Ferramenta de teste hreflang do Google: insira a URL para verificar se o código é reconhecido (requer Search Console).
- Screaming Frog: rastreia o site, filtra as tags hreflang e exporta os erros em lote (versão paga).
- Hreflang Validator (ferramenta de terceiros): validação online gratuita que marca erros de formato e links conflitantes.
Passos práticos para correção
Verifique os códigos existentes: em sites WordPress, use plugins (como Yoast SEO) ou veja diretamente o código-fonte da página para localizar as tags <link rel="alternate" hreflang="..." />
.
Substituição em massa de códigos incorretos:
- Se você usa um plugin multilíngue (como WPML), altere diretamente o formato do “código de idioma” nas configurações de idioma.
- Ao modificar manualmente, certifique-se de que todas as páginas tenham um formato unificado (por exemplo, substituir globalmente
EN
por en
).
Adicionar código regional (opcional):
- Adicione apenas se precisar segmentar regiões (como
en-GB
para usuários do Reino Unido), caso contrário, mantenha apenas o código de idioma (como fr
).
Revalidação:Use ferramentas para verificar novamente, garantindo que as páginas corrigidas retornem código 200 e não apresentem erros de rastreamento.
Não usar URLs absolutas completas
Muitos administradores de sites pensam erroneamente que caminhos relativos (como /de/page
) ou omitir o protocolo (como example.com/de
) simplificam a configuração, mas isso pode causar problemas sérios.
Por exemplo, se uma página existir nas versões http
e https
, não especificar o protocolo pode fazer com que o mecanismo interprete como duas páginas separadas, dispersando a autoridade.
Além disso, em sites com subdomínios ou estruturas de subdiretórios, não usar URLs completas pode causar ambiguidade de caminho e fazer as tags falharem (por exemplo, misturar URLs da versão móvel e desktop).
Definição e necessidade de URLs absolutas
URL absoluta deve incluir protocolo (http://
ou https://
), domínio completo e caminho (como https://www.example.com/de/page
).
Necessidade:
- Os motores de busca precisam distinguir claramente as páginas. Caminhos relativos (como
/de/page
) podem ser interpretados como qualquer versão do domínio (http ou https), causando conteúdo duplicado. - Em subdomínios ou subdiretórios, não usar URLs absolutas pode levar os mecanismos a confundirem a propriedade da página (por exemplo,
de.example.com/page
e www.example.com/de/page
podem ser vistos como páginas distintas).
Cenários típicos de problemas:
- Páginas existem nas versões http e https, mas hreflang não inclui o protocolo, dispersando a autoridade.
- Conteúdo compartilhado entre versões móvel e desktop com URLs diferentes (como
m.example.com/de
e example.com/de
) sem usar URLs absolutas para vinculá-los.
Erros comuns e consequências
Erro 1: Caminhos relativos ou falta de protocolo
Exemplos incorretos:
<link hreflang="de" href="/de/page" />
(caminho relativo)<link hreflang="es" href="www.example.com/es/page" />
(sem https://
)
Consequências:
- Os motores podem interpretar
/de/page
como http://example.com/de/page
, mas a página real está em https, causando falha na tag hreflang. - Versões http e https são vistas como entidades separadas, causando conteúdo duplicado e dispersão de autoridade.
Erro 2: Subdomínios não unificados
- Exemplo incorreto: o site principal usa
https://example.com/fr/page
, mas o subsite francês usa outro URL.
https://fr.example.com/page
e os atributos hreflang não apontam mutuamente para URLs absolutas.Consequência: Os mecanismos de busca não conseguem associar o subdomínio às páginas do site principal, fazendo com que usuários de língua francesa possam ser redirecionados para a página do idioma padrão.Erro 3: Parâmetros dinâmicos não padronizados
- Exemplo de erro:
<link hreflang="ja" href="https://example.com/page?lang=ja" />
(contendo parâmetros de rastreamento) - Consequência: Os mecanismos podem considerar essas URLs como páginas diferentes (por exemplo,
?lang=ja
e ?lang=ja&utm=ads
), levando a uma cobertura incompleta das tags hreflang.
Métodos de verificação com ferramentas
- Google Search Console:
Verifique no relatório de cobertura erros por “páginas duplicadas” ou “hreflang não marcado” para localizar URLs incompletas. - Screaming Frog:
Após rastrear o site, filtre as tags hreflang
e verifique se todos os atributos href
são URLs absolutas (filtro: //example.com
ou /path
). - Sitebulb:
No relatório de auditoria SEO internacional, indica diretamente “URLs hreflang incompletas” com sugestões de correção.
Soluções e passos práticos
Sistemas CMS (como WordPress):
Configuração do plugin:
Se usar plugins como Yoast SEO, ative a opção “gerar URLs absolutas” nas configurações multilíngues (normalmente desative “caminhos relativos”).
Substituição em massa no banco de dados:
Por comandos SQL ou plugins (como Better Search Replace), substitua href="/
por href="https://www.example.com/
.
Correção manual do código:
No HTML ou na lógica do servidor, assegure que todos os links hreflang usem URLs completas, por exemplo:
Configuração do servidor:
- Forçar protocolo unificado: via
.htaccess
ou configuração Nginx, redirecione automaticamente http
para https
para evitar conteúdo misto. - Normalização de URL: aplique redirecionamentos 301 para diferentes variações de caminho que levam ao mesmo conteúdo (ex:
/de
e /de/
) para garantir uma única URL absoluta.
Falta da tag hreflang de auto-referência
Por exemplo, se uma página em francês apenas marcar links para versões em inglês ou espanhol, mas não declarar hreflang="fr"
apontando para si mesma,
os motores de busca podem não identificar corretamente o idioma da página, levando a uma classificação incorreta para usuários francófonos.
Função e necessidade da tag hreflang auto-referenciada
A tag auto-referenciada é a declaração hreflang na página que aponta para si mesma (por exemplo, a página em francês deve incluir <link rel="alternate" hreflang="fr" href="URL da própria página"/>
).
Principais funções:
- Define claramente para os motores de busca o idioma e a região da página, evitando erros de classificação.
- Forma um vínculo fechado entre as versões em diferentes idiomas para garantir a correta transmissão de autoridade entre as páginas.
Consequências da falta:
- Os motores de busca podem considerar a página como “idioma não declarado” e atribuí-la por padrão ao diretório principal do idioma, resultando em perda de tráfego de usuários-alvo.
- Em cenários de competição multilíngue (por exemplo, páginas em inglês e espanhol sem autorreferência), pode gerar problemas de conteúdo duplicado interno.
Cenários comuns de erro e análise de casos
Erro 1: Uso incorreto do hreflang em sites de idioma único
- Cenário: Página com apenas uma versão de idioma, mas com hreflang apontando para versões inexistentes em outros idiomas.
- Exemplo de consequência: Uma página de site somente em inglês adiciona
hreflang="en"
apontando para si mesma, mas também linka incorretamente para uma página inexistente com hreflang="es"
, causando confusão nos motores de busca.
Erro 2: Falha na configuração do plugin multilíngue
- Exemplo de cenário: Ao usar o plugin WPML, a opção “Gerar hreflang autorreferenciado automaticamente” não está marcada.
- Consequência: As tags geradas contêm apenas links para outras versões de idioma, faltando a declaração da página atual.
Erro 3: Página dinâmica sem carregamento completo das tags
- Exemplo de cenário: Em páginas baseadas em JavaScript (como React/Vue), a tag hreflang não é corretamente injetada no
<head>
. - Consequência: Os robôs de busca podem não reconhecer a tag autorreferenciada gerada dinamicamente.
Ferramentas e métodos de detecção
Passo 1: Verificação manual do código-fonte
- Pressione
Ctrl+U
para ver o código-fonte, procure por hreflang="xx"
e confirme se existe uma tag que aponta para a URL atual (nota: xx
é o código do idioma da página atual).
Passo 2: Validação pelo Google Search Console
- Na ferramenta “Inspeção de URL”, insira a URL da página e verifique o relatório “Alvo internacional” — se mostrar “Nenhuma tag hreflang autorreferenciada detectada”, o problema existe.
Passo 3: Ferramenta Hreflang Validator
- Insira a URL da página, a ferramenta listará todos os links hreflang relacionados e marcará em vermelho a ausência da tag autorreferenciada.
Soluções e passos práticos
Correção em CMS (exemplo WordPress):
Configuração do plugin:
- Se usar Yoast SEO: ative “Adicionar hreflang autorreferenciado” nas configurações avançadas.
- Se usar WPML: vá para “Configurações de idioma” → “Opções de SEO” e marque “Incluir link próprio”.
Correção manual (sites estáticos ou código personalizado):
Adicione o seguinte código dentro da seção <head>
(exemplo para página em francês):
Correção de páginas renderizadas dinamicamente (como React):
Na lógica de renderização no servidor (SSR), a tag de auto-referência é gerada dinamicamente de acordo com o idioma atual da página:
Princípio e necessidade de associação fechada
A regra principal do hreflang é todas as páginas associadas devem se referir umas às outras, formando um circuito fechado completo. Por exemplo:
- A página em alemão (
de
) deve apontar para as versões em inglês (en
), francês (fr
) e outros idiomas; - As páginas em inglês e francês também devem apontar de volta para a alemã.
Necessidade:
- Transferência de autoridade: A associação fechada ajuda os motores de busca a entender que as páginas multilíngues são equivalentes, evitando dispersão de autoridade.
- Prevenção de conteúdo duplicado: Se houver apenas links unilaterais (por exemplo, a página em inglês aponta para a alemã, mas a alemã não aponta para a inglesa), os motores podem considerar as páginas como conteúdo independente e penalizar por conteúdo duplicado.
Exceções:
- Páginas em um único idioma (por exemplo, apenas inglês) não precisam de associação fechada, mas precisam de auto-referência.
- Variantes regionais (como
en-US
e en-GB
) devem se referir mutuamente, mas não precisam vincular a outros idiomas.
Cenários comuns de quebra de associação e consequências
Cenário 1: Adição de nova versão de idioma sem atualização das páginas antigas
- Exemplo: Um site de notícias adicionou uma página em japonês (
ja
), mas as páginas originais em inglês e chinês não adicionaram links hreflang para a página japonesa. - Consequência: A página japonesa fica “isolada” e os motores de busca indexam apenas as outras páginas vinculadas.
Cenário 2: Falha na lógica do plugin CMS
- Exemplo: Plugins multilíngues do WordPress (como Polylang) ao gerar páginas em massa não adicionam automaticamente links para os novos idiomas no conteúdo antigo.
- Consequência: Algumas páginas perdem a associação e os usuários não conseguem mudar para a nova versão do idioma a partir do conteúdo antigo.
Cenário 3: Parâmetros dinâmicos causam falhas na associação
- Exemplo: A URL da página em espanhol contém parâmetros (como
?lang=es
), mas outras páginas não incluem este parâmetro no hreflang. - Consequência: Os motores de busca veem a página com o parâmetro
es
como conteúdo não relacionado às outras versões do idioma.
Ferramentas de detecção e métodos de inspeção
Ferramenta 1: Screaming Frog
- Nos resultados da varredura, acesse a aba “Hreflang” e filtre por “Missing Reciprocal Links” (links recíprocos ausentes).
- Ação: Exporte a lista de erros para localizar grupos de URLs sem associação fechada.
Ferramenta 2: Sitebulb
- No relatório “Auditoria SEO Internacional”, verifique o alerta “Unreciprocated hreflang links” que mostra páginas quebradas e idiomas faltantes.
Ferramenta 3: DeepCrawl
- Configure regras personalizadas para monitorar a associação entre páginas multilíngues e receba relatórios automáticos semanais sobre problemas de links quebrados.
Soluções e passos práticos
Solução 1: Correção em massa via plugin CMS (exemplo Shopify)
Nas configurações do plugin multilíngue (como Langify), ative a opção “Associar automaticamente todas as versões de idioma”.
Na seção “Configurações do modelo”, certifique-se de que a lógica da tag hreflang inclua um loop que percorra todas as versões de idioma:
Solução 2: Correção manual do código (site estático)
Crie uma lista de associação para cada versão de idioma (como um arquivo Excel), listando todos os grupos de URLs que precisam ser interligados.
Adicione as tags na página de acordo com a lista, por exemplo:
Sincronize também as tags hreflang nas páginas em alemão e francês para garantir que contenham links para a página em inglês.
Solução 3: Automação do lado do servidor (como Nginx)
Gere dinamicamente as tags hreflang por meio de proxy reverso e regras de mapeamento:
Conflito com tags Canonical
Por exemplo, se a página de um produto em alemão tiver uma tag Canonical apontando para a página principal em inglês, os mecanismos de busca entenderão que a página em alemão é uma cópia da página em inglês, e não a distribuirão para os usuários de língua alemã.
O problema mais comum é que muitos sistemas CMS configuram por padrão todas as versões de idioma para apontar com Canonical para a página principal do idioma principal (por exemplo, x-default
), impedindo que outras páginas de idioma sejam indexadas separadamente.
Princípio do conflito e regras de prioridade
Ordem de prioridade que os mecanismos de busca seguem ao processar as tags hreflang e Canonical:
Canonical tem prioridade: se a página A aponta para a página B com a tag Canonical, os mecanismos de busca considerarão A como uma cópia de B, mesmo que A tenha uma declaração hreflang, esta será ignorada.
Cenários em que hreflang falha:
- A página em francês aponta para a página em inglês com Canonical → a página em francês não será distribuída aos usuários franceses.
- Páginas multilíngues têm um Canonical unificado apontando para a página principal → todas as versões de idioma são consideradas conteúdo duplicado.
Regra de exceção:
- Se a tag Canonical aponta para si mesma (ou seja,
<link rel="canonical" href="URL da página atual"/>
), hreflang funcionará corretamente.
Cenários típicos de erros e consequências
Erro 1: Conflito na configuração padrão de plugins multilíngues
- Exemplo: O plugin Yoast SEO do WordPress, por padrão, faz com que a tag Canonical das páginas multilíngues aponte para a página do idioma principal. Por exemplo, a página em alemão terá a tag Canonical assim:
<link rel="canonical" href="https://example.com/en/page"/>
. - Consequência: A página em alemão é considerada uma cópia da página em inglês e não aparece nos resultados de busca em alemão, causando uma perda de tráfego superior a 50%.
Erro 2: Interferência de parâmetros dinâmicos
- Exemplo: URLs com parâmetros (como
example.com/page?lang=de
) têm o Canonical apontando para a versão sem parâmetros (example.com/page
), mas esta última não está configurada com hreflang. - Consequência: A página em alemão com parâmetros não é indexada, e os usuários veem apenas a página no idioma padrão ao buscar.
Erro 3: Variantes regionais não declaradas separadamente
- Exemplo: A página
en-US
tem o Canonical apontando para a página geral em inglês (en
), fazendo com que os motores de busca considerem que a página em inglês americano não tem valor independente. - Consequência: Usuários nos EUA podem ser direcionados para a página
en
(por exemplo, inglês britânico), reduzindo a experiência local.
Ferramentas de detecção e métodos de diagnóstico
Ferramenta 1: Google Search Console
- Acesse o relatório “Cobertura”, filtre a aba “Excluídos” por “Páginas duplicadas” ou “Enviadas mas não indexadas” e verifique se há falhas no hreflang causadas por conflitos de Canonical.
Ferramenta 2: Screaming Frog
- Após rastrear o site, filtre páginas que contenham simultaneamente tags hreflang e Canonical, e verifique se o Canonical aponta para outra página (não para si mesma).
- Exporte os dados e filtre com a condição:
Canonical != Self-URL
.
Ferramenta 3: DeepCrawl
- Configure regras de alerta personalizadas para disparar avisos quando hreflang e o destino do Canonical não coincidirem.
Planos de correção e passos práticos
Plano 1: Correção via plugin CMS (exemplo Yoast SEO)
- Vá para as configurações multilíngues e desative a opção “Canonical unificado apontando para o idioma principal”.
- Nas “Configurações avançadas”, ative “Gerar tags Canonical independentes para cada versão de idioma”.
Plano 2: Correção manual de código
No <head>
, certifique-se que a tag Canonical aponte para sua própria URL, por exemplo:
Plano 3: Configuração do servidor (exemplo Nginx)
Gerar dinamicamente a tag Canonical correspondente à versão do idioma atual:
Por exemplo, páginas geradas dinamicamente que não carregam o HTML completo devido a timeout do servidor, resultando na ausência das tags hreflang dentro do <head>
;
Ou páginas móveis que retornam redirecionamento temporário 302 ao invés do código 200, o que pode levar os motores de busca a ignorar as marcações;
Algumas regras de CDN ou firewall bloqueiam requisições de crawlers, impedindo que páginas em determinados idiomas regionais sejam acessadas.
Por exemplo, uma página em espanhol pode gerar múltiplas URLs com diferentes parâmetros (como /es/page?ref=facebook
e /es/page?ref=email
), que os motores de busca consideram páginas distintas, causando duplicação de conteúdo.