hreflang explicado: nossa configuração em 12 idiomas e 5 erros comuns

Por SEOgrinder · Publicado em · Atualizado em · 9 min de leitura

Resposta curta: hreflang é uma anotação que diz ao Google quais páginas são versões do mesmo conteúdo em outro idioma ou região, para que a Pesquisa leve cada pessoa à versão certa. Cada versão precisa citar a si mesma e todas as outras, e cada par precisa apontar um para o outro, senão as tags podem ser ignoradas. Abaixo você vê como o seogrinder.com configura o hreflang para doze idiomas e cinco erros de hreflang tirados da documentação do Google.

O que o hreflang faz e quando você precisa dele?

O Google explica a ideia na página Tell Google about localized versions of your page: se você tem várias versões de uma página para idiomas ou regiões diferentes, avisar o Google sobre elas ajuda a Pesquisa a levar as pessoas à versão mais adequada. No original: “help Google Search point users to the most appropriate version of your page by language or region”.

O Google cita três situações em que a anotação é recomendada:

  • O conteúdo principal fica em um só idioma e só o modelo da página (navegação, rodapé) é traduzido.
  • Há pequenas variações regionais de um conteúdo parecido no mesmo idioma, por exemplo inglês para os EUA, a Grã-Bretanha e a Irlanda.
  • O conteúdo é totalmente traduzido, por exemplo uma versão em alemão e outra em inglês de cada página.

O Google pode achar as versões sozinho, mas diz que, em geral, é melhor indicá-las de forma explícita. Uma página traduzida não é duplicata: as versões “are only considered duplicates if the main content of the page remains untranslated” (Google).

Duas coisas que o hreflang não é. Ele não é o caminho pelo qual o Google descobre o idioma de uma página: o Google escreve que “doesn't use hreflang or the HTML lang attribute to detect the language of a page” (Google), e a página sobre sites multilíngues acrescenta que, para isso, ele usa o conteúdo visível. E ele não é promessa de ranking: o Google cita um único propósito, mostrar a cada pessoa que pesquisa a versão correspondente.

Como o seogrinder.com liga doze idiomas

Esta seção descreve o blog do seogrinder.com como o encontramos em 5 de novembro de 2026. A página inicial / não leva tags hreflang. Cada artigo é uma página própria em um idioma. Leia as tags você mesmo:

curl -sS https://seogrinder.com/pt/blog/checklist-de-auditoria-seo | grep '<link rel="alternate" hreflang'

O resultado são 13 linhas, as mesmas nas doze versões desse artigo:

<link rel="alternate" hreflang="en" href="https://seogrinder.com/en/blog/seo-audit-checklist">
<link rel="alternate" hreflang="ar" href="https://seogrinder.com/ar/blog/qaimat-tadqiq-seo">
<link rel="alternate" hreflang="de" href="https://seogrinder.com/de/blog/seo-audit-checkliste">
<link rel="alternate" hreflang="es" href="https://seogrinder.com/es/blog/checklist-seo-auditoria">
<link rel="alternate" hreflang="fr" href="https://seogrinder.com/fr/blog/checklist-audit-seo-gratuite">
<link rel="alternate" hreflang="hi" href="https://seogrinder.com/hi/blog/seo-audit-checklist-hindi">
<link rel="alternate" hreflang="it" href="https://seogrinder.com/it/blog/checklist-audit-seo">
<link rel="alternate" hreflang="ja" href="https://seogrinder.com/ja/blog/seo-chekkurisuto">
<link rel="alternate" hreflang="ko" href="https://seogrinder.com/ko/blog/seo-chekeuliseuteu-jeomgeom">
<link rel="alternate" hreflang="nl" href="https://seogrinder.com/nl/blog/seo-audit-checklist-uitvoeren">
<link rel="alternate" hreflang="pl" href="https://seogrinder.com/pl/blog/checklista-seo-audyt">
<link rel="alternate" hreflang="pt" href="https://seogrinder.com/pt/blog/checklist-de-auditoria-seo">
<link rel="alternate" hreflang="x-default" href="https://seogrinder.com/en/blog/seo-audit-checklist">

O que o bloco mostra:

  • Um só método. As tags ficam no head do HTML. Essas páginas não enviam hreflang em um cabeçalho HTTP, e o sitemap.xml não tem entradas xhtml:link. O Google chama os três métodos de equivalentes e não vê vantagem em usar todos.
  • Códigos de idioma simples. Doze códigos, sem região, porque cada idioma tem exatamente uma versão do artigo.
  • A página cita a si mesma. Na versão em português, a linha pt é o endereço da própria página. As doze versões levam as mesmas linhas.
  • Tags simples. Ficam no <head>, um <link> para cada versão, sem atributos extras. O Google pede um head bem formado e avisa para não misturar hreflang com atributos como media na mesma tag.
  • O canonical aponta para a própria página. Cada versão cita o próprio endereço como canonical, e não o da versão em inglês. Isso combina com a afirmação do Google de que versões traduzidas não são duplicatas.
  • Um endereço por idioma, sem redirecionamento automático. /pt/blog/checklist-de-auditoria-seo tem um slug em português. O Google recomenda endereços próprios para cada idioma em vez de cookies ou configurações do navegador e desaconselha redirecionar visitantes pelo idioma que se presume que falem. Uma requisição à página em inglês com Accept-Language: de retorna 200 e fica ali (testado em 5 de novembro de 2026). Cada artigo também tem um menu de idiomas com links simples para as outras versões.

Como foi construído. Cada arquivo de artigo nomeia o seu tema em uma linha group. O código do blog reúne todos os arquivos com o mesmo group, imprime um <link> para cada membro (inglês primeiro, depois por código de idioma) e define o x-default como a versão em inglês. Um idioma sem arquivo não ganha linha. Por isso, um tema que existe só em inglês e em alemão leva três linhas: en, de e x-default. O Google aceita conjuntos incompletos: “you can omit some languages on some pages; Google will still process the ones that point to each other” (Google).

Como contamos. Este laço lê todos os endereços de artigo do sitemap e conta as linhas de hreflang em cada página:

for u in $(curl -sS https://seogrinder.com/sitemap.xml | grep -o 'https://seogrinder.com/[a-z][a-z]/blog/[^<]*'); do
  curl -sS "$u" | grep -c '<link rel="alternate" hreflang'
done | sort | uniq -c

Em 5 de novembro de 2026, o resultado foi 408 13: 408 páginas com 13 linhas (doze idiomas mais o x-default). Depois, um pequeno script buscou as mesmas 408 páginas e comparou as tags: toda página cita a si mesma, todo endereço citado responde 200 e cita a página de volta, e o x-default é o endereço em inglês. A nossa verificação do blog (check:blog) testa essas regras em toda página de artigo a cada mudança no blog.

Para que serve o x-default?

O Google descreve o x-default como “recommended for specifying the fallback page for users whose language settings don't match any of your site's localized versions” (Google). Não é obrigatório.

O Google acrescenta que qualquer página pode levar o valor, mas que ele “was designed for language selector pages and so it will work best with those”. Não temos uma página de seleção de idioma para os artigos, então a nossa página de reserva é a versão em inglês do mesmo artigo; nas páginas de visão geral do blog, é /en/blog. Essa é uma decisão nossa, não uma regra.

Erros comuns: 5 erros de hreflang da documentação do Google

A página do Google tem uma seção “Common Mistakes” com três itens, e as diretrizes trazem mais duas exigências com “must”. São esses os cinco abaixo. O Google não diz com que frequência cada um acontece. Só dois vêm com uma consequência declarada: links de retorno ausentes (as tags são ignoradas) e códigos de região reservados (essa parte é ignorada). Nos demais, a página só enuncia a regra.

Se a página X cita a página Y, a página Y precisa citar a página X. A regra nas palavras do Google: “If two pages don't both point to each other, the tags will be ignored” (Google). O Google dá o motivo: um site alheio não pode poder se declarar versão alternativa da sua página. Resolva imprimindo o mesmo bloco de links em todas as versões, a partir de uma única fonte. Se manter o conjunto completo for difícil, o Google permite omitir alguns idiomas em algumas páginas, mas diz que idiomas recém-adicionados devem apontar nos dois sentidos para o original ou o dominante.

2. Uma versão que não cita a si mesma

A diretriz vale para todos os métodos: “Each language version must list itself as well as all other language versions” (Google). No método HTML, isso significa um link para cada variante, “including itself”, e um conjunto idêntico em todas as versões. O Google não diz o que acontece sem a autorreferência; trate como erro e acrescente a linha.

3. Códigos de idioma que não são válidos

A primeira parte do valor é um idioma no formato ISO 639-1, seguido, se quiser, de uma região. O Google escreve: “Specifying the region alone is not valid”. No exemplo da Bélgica, be está errado porque é o código do bielorrusso; os corretos são de-BE, nl-BE e fr-BE. Códigos que não estão nessas normas, como es-419, não são aceitos (códigos de escrita como zh-Hans são permitidos). Maiúsculas e minúsculas não importam, mas a região em maiúsculas segue a norma.

4. Códigos de região que não são válidos

A região precisa ser um código ISO 3166-1 Alpha 2 oficialmente atribuído. Para códigos reservados a outra coisa, vale: “Google Search ignores that part of the annotation”. O Google cita EU, UN e UK como sem efeito. Para o Reino Unido, o código é GB, como no próprio exemplo do Google, en-GB.

5. Endereços relativos ou incompletos

“Alternate URLs must be fully-qualified, including the transport method (http/https)” (Google). O exemplo do Google: https://example.com/foo, e não //example.com/foo nem /foo.

Como verificar o hreflang

À mão: rode o comando curl acima em uma das suas páginas e veja se a página cita a si mesma. Depois rode o comando em cada endereço da saída e procure a primeira página; esse é o teste dos links de retorno. O Google também lista ferramentas de teste de terceiros e diz que elas “are not maintained or checked by Google”.

Com o SEOgrinder, que é a nossa própria ferramenta e que nós construímos: analise uma página, abra a aba “Página no Google” e encontre o cartão “Idiomas (hreflang)”. Ele confere os códigos, a autorreferência, o x-default, se os destinos respondem e se eles apontam de volta. Quando tudo está certo, aparece uma linha; caso contrário, o cartão lista cada verificação com o resultado, e os problemas entram na lista de tarefas.

ErroO que o SEOgrinder mostra (exemplo de texto)
1. Links de retorno ausentes“2 destinos não ligam de volta”
2. Sem autorreferência“A página não se refere a si própria”
3 e 4. Códigos inválidos“1 código de idioma inválido” (idioma e região são conferidos contra as normas que o Google cita)
5. Endereços relativosSem linha própria: o SEOgrinder resolve um endereço relativo em relação à página antes de verificar, então procure esse erro no código-fonte

Dois limites. Ele busca no máximo dez destinos por página; nas nossas páginas, com 13 entradas, ele verifica dez e diz isso (“10 de 13 entradas obtidas e verificadas”). E ele avalia a página que você digita; para um site inteiro, percorra os endereços em um laço, como acima.

Perguntas frequentes

Preciso de hreflang se cada idioma tem o seu próprio endereço?

Não é obrigatório. O Google pode achar as versões sem ele, mas diz que, em geral, é melhor indicá-las de forma explícita.

O hreflang melhora o meu ranking?

A página do Google não afirma isso. Ela descreve o propósito como levar as pessoas à versão mais adequada por idioma ou região. Ninguém pode prometer uma posição.

Qual dos três métodos devo usar?

Para o Google, eles são equivalentes, e usar vários não traz benefício. O Google observa que as tags HTML servem a sites sem sitemap ou sem controle sobre cabeçalhos e que o cabeçalho serve a arquivos que não são HTML, como PDFs. Nós usamos as tags HTML.

Seu próximo passo

Rode o comando curl em uma das suas páginas e confira se ela cita a si mesma e se um destino aponta de volta. Depois analise a página com o SEOgrinder, abra “Página no Google”, corrija a primeira linha do cartão “Idiomas (hreflang)” que apontar um problema e clique em Verificar de novo. Para ver onde o hreflang se encaixa entre oito grupos de verificações, use a nossa checklist de auditoria SEO.

Leia também

Mais artigos do blog