Blog · SEO

Hreflang: como configurar corretamente versões por idioma e país

O hreflang diz ao Google qual versão de idioma ou país de uma página mostrar para cada pessoa que pesquisa. Este guia cobre os três jeitos de declará-lo, as regras de código que o Google realmente aplica, links de retorno, x-default, a interação com canonicals e correções passo a passo para os erros que um verificador de hreflang encontra.

Searvia · 24/10/2026 · Leitura de 14 min

Dois tradutores combinando conjuntos de livretos idênticos com capas lisas de cores diferentes em uma mesa comprida

Resumo: o hreflang diz ao Google qual versão de idioma ou país de uma página mostrar para cada pessoa que pesquisa. Cada versão lista todas as versões, inclusive a si mesma, com um código de idioma ISO 639-1 e uma região ISO 3166-1 alpha-2 opcional (en, de, en-GB, pt-BR), além de um fallback x-default opcional. Os links precisam ser absolutos e apontar nos dois sentidos, ou o Google os ignora. Cada versão precisa de um canonical autorreferente; um canonical que aponta para outro idioma cancela toda a configuração. O Google detecta o idioma da página pelo conteúdo, então a tradução precisa ser real.

Sites internacionais perdem tráfego de um jeito silencioso. A página em inglês ranqueia na Alemanha, a página em espanhol aparece no México quando você criou uma versão mexicana, ou a loja do Reino Unido aparece para buscadores americanos com preços em libras. Nada está quebrado no site; o Google simplesmente chutou qual versão mostrar. O hreflang é o jeito de impedir esse chute.

Este guia explica como o hreflang funciona segundo a documentação do Google, as regras de código que fazem a maioria dos sites tropeçar, como os canonicals interagem com ele, o que nosso verificador de hreflang gratuito testa e como corrigir cada problema.

O que o hreflang faz e o que não faz

As anotações hreflang descrevem um conjunto de páginas que são versões umas das outras: o mesmo conteúdo em outro idioma, ou o mesmo idioma adaptado para outro país. O Google as usa para mostrar a versão correspondente nos resultados.

O que ele não faz:

Os três jeitos de adicionar hreflang

O Google diz que os três métodos "are equivalent from Google's perspective." Use um por página; misturá-los só cria mais lugares para erros.

1. Elementos link em HTML no <head>, a escolha mais comum. Em https://example.com/en/pricing:

<link rel="alternate" hreflang="en" href="https://example.com/en/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/pricing" />

As páginas em alemão e francês trazem exatamente as mesmas quatro linhas. O Google exige que as tags estejam "inside a well-formed <head> section"; um elemento solto que o navegador move para o body, como uma imagem ou uma tag não fechada acima dos links, pode encerrar o head antes da hora.

2. Cabeçalhos HTTP Link, a única opção para arquivos que não são HTML, como PDFs:

Link: <https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/de/guide.pdf>; rel="alternate"; hreflang="de"

O Google diz que o cabeçalho deve ser idêntico em todas as versões.

3. Sitemap XML, prático para sites grandes porque não exige mudanças nos templates:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/en/pricing</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
  <url>
    <loc>https://example.com/de/preise</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
</urlset>

Cada <url> lista todas as versões, inclusive a si mesma.

As regras que o Google aplica

Links de retorno e autorreferência

"If two pages don't both point to each other, the tags will be ignored." Essa é a regra por trás da maioria das configurações quebradas. Se a página em inglês lista a página em alemão, mas a página em alemão não lista a em inglês, o Google descarta o par. O Google também diz que "each language version must list itself."

Códigos de idioma e região

"Only language codes listed in ISO 639-1 and region codes listed in ISO 3166-1 Alpha 2 are supported." O idioma vem primeiro; a região é opcional. O Google também aceita subtags de escrita (script) para idiomas escritos em mais de um sistema, como zh-Hant e zh-Hans, e combinações como zh-Hans-US.

CódigoVálido?Por quê
enSimInglês, qualquer região
en-GBSimInglês para o Reino Unido
pt-BRSimPortuguês para o Brasil
zh-HantSimChinês, escrita tradicional
es-419Não para o GoogleA região precisa ser um código ISO 3166-1 alpha-2; 419 (América Latina) não é um
en-UKSem efeitoO código ISO é GB; o Google diz que UK, EU e UN não têm efeito
beSignifica bielorrussoUm código de país sozinho é inválido; be é o idioma bielorrusso, não a Bélgica
en_USNãoUse hífen, não underscore
engNão para o GoogleCódigos ISO 639-2 de três letras não são aceitos; use en

Para o espanhol na América Latina, use es para uma única versão compartilhada em espanhol, ou liste os países específicos que você atende (es-MX, es-AR, es-CO) apontando para a mesma URL.

x-default

"The reserved x-default value is used when no other language/region matches the user's browser setting." Aponte-o para uma página de seleção de idioma ou para a sua versão internacional principal. É opcional, mas útil: sem ele, quem pesquisa em um idioma que você não oferece recebe a versão que o Google escolher.

URLs absolutas

"Alternate URLs must be fully-qualified, including the transport method." https://example.com/de/ funciona; /de/ e //example.com/de/ não.

Hreflang e tags canonical

Os dois precisam concordar. Cada versão deve ter um canonical apontando para si mesma, não para a versão em inglês ou principal. O guia de canonicalização do Google diz para "specify a canonical page in the same language," ou "the best possible substitute language if a canonical page doesn't exist for the same language," e observa que os clusters de hreflang influenciam a escolha do canonical, favorecendo URLs que se linkam reciprocamente.

O erro clássico: toda versão de idioma traz <link rel="canonical" href="https://example.com/en/...">. Isso diz ao Google que as outras versões são duplicatas da página em inglês, e elas saem do índice junto com suas anotações hreflang.

Dois outros conflitos a evitar: URLs de hreflang que redirecionam (liste a URL final) e URLs de hreflang com noindex (uma versão que o Google não pode indexar não pode ser exibida).

Estrutura do site e redirecionamentos automáticos

O guia multirregional do Google compara as estruturas de URL:

EstruturaExemploObservações do Google
Domínio por paísexample.deGeotargeting claro; caro, um país por domínio
Subdomíniode.example.comFácil de configurar; os usuários podem não reconhecer a segmentação pela URL
Subdiretórioexample.com/de/Baixa manutenção, mesmo host
Parâmetro de URLexample.com?loc=deNão recomendado

Qualquer que seja a escolha, não redirecione visitantes automaticamente por IP ou idioma do navegador. O Google diz que isso "could prevent users (and search engines) from viewing all the versions of your site" e que o Googlebot "usually originates from the USA." Mostre um banner de sugestão e deixe o hreflang cuidar dos resultados de busca.

Como funciona o verificador de hreflang da Searvia

O verificador de hreflang usa o mesmo motor do nosso verificador de SEO de sites: você informa um domínio ou o endereço de uma página, ele audita essa página (sua home, se você informar só o domínio) e os arquivos do site ao redor com 38 verificações em cerca de 20 segundos, e coloca em primeiro lugar as três verificações de que esta ferramenta trata. É exatamente isto que elas testam.

Versões de idioma, hreflang (prioridade baixa). O verificador lê todo elemento <link rel="alternate" hreflang="..." href="..."> no HTML dessa página, depois de seguir os redirecionamentos até o endereço final.

Idioma da página (prioridade baixa). Aprovado quando o elemento <html> tem um atributo lang e mostra o idioma; avisa quando ele está ausente.

URL canonical (prioridade média). Aprovado quando a tag canonical aponta para a própria página; avisa quando ela está ausente ou aponta para outro endereço, mostrando esse endereço.

O que ele não testa

Como ler o resultado

MensagemSignificadoCorreção
No language versions are declared (fine for a single-language site).Nenhum link hreflang na páginaNada a fazer em sites de um só idioma; caso contrário, veja a etapa 1
N language versions are declared correctly.Códigos válidos e autorreferência presente; a mensagem avisa se não houver fallback x-default (opcional)Ainda assim, confira os links de retorno manualmente
The language versions do not include this page itself.A página lista outras, mas não a si mesmaEtapa 2
Some language codes are not valid.Pelo menos uma linha tem uma cruz vermelhaEtapa 3
The page does not declare its language.Sem lang em <html>Etapa 4
The canonical URL points to another address.O canonical aponta para outra páginaEtapa 5

A nota geral de A+ a F abrange todas as 38 verificações, ponderadas por prioridade (alta 10, média 5, baixa 2; avisos valem metade), com uma lista "Fix these first" e um relatório compartilhável.

Como corrigir cada problema de hreflang

1. Nenhuma versão de idioma declarada, mas elas existem

2. As versões de idioma não incluem a própria página

Adicione uma linha para a página atual com o código dela. Em um template, isso geralmente significa que o loop pelos idiomas pula o idioma atual; remova essa condição. Garanta que a URL de autorreferência seja a URL canonical, com o mesmo protocolo, host e convenção de barra final.

3. Alguns códigos de idioma não são válidos

4. A página não declara seu idioma

Adicione o idioma ao elemento raiz, por exemplo <html lang="en"> ou <html lang="pt-BR">. O Google não o usa para detectar o idioma, mas navegadores, ferramentas de tradução e leitores de tela usam, como descreve o MDN.

5. O canonical aponta para outro endereço

Em um site multilíngue, costuma ser o problema do canonical entre idiomas. Mude o canonical de cada versão para a URL dela mesma. Se o canonical aponta para a mesma página em outra forma (http em vez de https, ou sem www), faça-o coincidir exatamente com o seu endereço final.

6. Faltam links de retorno (não testado pelo verificador)

Abra duas versões lado a lado e compare as listas de hreflang: elas precisam ser conjuntos idênticos. Se forem diferentes, a causa quase sempre é o template ou plugin que as gera, então corrigir o gerador uma vez corrige todas as páginas.

Exemplo prático (hipotético)

O exemplo a seguir é hipotético, não são dados reais. A Kestrel Gear, uma marca de outdoor inventada, mantém example.com em inglês com versões /de/, /fr/ e /es/. Quem pesquisa na Alemanha continua caindo em páginas em inglês. O verificador de hreflang informa:

LinhaURLOK
en-UKhttps://example.com/Não (→ en-GB)
de-DEhttps://example.com/de/Sim
frhttps://example.com/fr/Sim
es_EShttps://example.com/es/Não

Canonical: "The canonical URL points to the page itself." Idioma da página: en.

A cruz em es_ES é um erro de formato. A cruz em en-UK vem com a nota "→ en-GB": o Google não aceita UK como região, então a página em inglês ficou sem anotação utilizável. Ao ver o código-fonte da página em alemão, aparece um terceiro problema: o canonical dela aponta para a home em inglês, então o Google tratou /de/ como duplicata. As correções:

Um checklist de hreflang de 20 minutos

Como a Searvia ajuda

O verificador de hreflang gratuito valida os links hreflang, o idioma da página e o canonical da página que você informa em um único relatório compartilhável, junto com as outras verificações do verificador de SEO de sites. Em uma conta Searvia, conecte o Search Console para ver cliques e posições por país de cada versão de idioma, e rode a auditoria do site toda semana para pegar canonicals apontando para outro lugar, títulos duplicados entre versões de idioma e páginas quebradas. Se você publica apps além de sites, nosso guia de localização na App Store trata do mesmo problema do lado das lojas. Para o checklist técnico completo, veja o guia de auditoria de SEO técnico.

Perguntas frequentes

O que é hreflang?
hreflang é uma anotação que informa ao Google as versões de idioma e país de uma página, para que ele mostre a versão certa a cada pessoa que pesquisa. Ele é escrito como links rel="alternate" com um atributo hreflang, no head do HTML, em um cabeçalho HTTP Link ou em um sitemap XML. Cada versão lista todas as versões, inclusive a si mesma, com um código como en, de ou en-GB, e opcionalmente um fallback x-default.
O hreflang ajuda no ranqueamento?
O hreflang não faz uma página ranquear mais alto. Ele ajuda o Google a escolher qual versão de uma página mostrar em determinado idioma ou região, para que uma pessoa que pesquisa em alemão veja a página em alemão em vez da em inglês. Sem ele, o Google ainda pode descobrir a versão certa, mas erros como o idioma errado nos resultados são mais prováveis quando as versões são parecidas.
O que é x-default no hreflang?
x-default é um valor reservado do hreflang para a página a ser exibida quando nenhum outro idioma ou região do conjunto corresponde às configurações do navegador do usuário. Costuma ser uma página de seleção de idioma ou a versão internacional principal. O Google recomenda usá-lo para a página de fallback, mas não o exige.
en-UK é um código hreflang válido?
Não. Os códigos de região do hreflang precisam ser códigos de país ISO 3166-1 alpha-2, e o código do Reino Unido é GB, então use en-GB. O Google diz que usar UK, EU ou UN em anotações hreflang não tem efeito na Pesquisa Google. Um código de país sozinho também é inválido: o hreflang precisa começar com um código de idioma ISO 639-1.
Preciso de hreflang se uso o atributo lang?
Sim, se você tem várias versões de idioma ou país. O Google diz que não usa o atributo lang do HTML nem o hreflang para detectar o idioma de uma página; ele lê o conteúdo visível. O atributo lang ajuda navegadores e leitores de tela, enquanto o hreflang diz ao Google como suas versões se relacionam. Configure os dois.

Fontes

  1. Tell Google about localized versions of your page – Google Search Central
  2. Managing multi-regional and multilingual sites – Google Search Central
  3. How to specify a canonical URL – Google Search Central
  4. Redirects and Google Search – Google Search Central
  5. HTML lang global attribute – MDN Web Docs
  6. ISO 639 language codes – Library of Congress

Continue lendo