Pular para o conteúdo principal

O que é hreflang? O guia completo de tags de idioma para SEO internacional

Saiba o que é hreflang, por que é importante para SEO internacional e como implementá-lo corretamente.

Hreflang Generator Team

O que é Hreflang?

Hreflang é um atributo HTML que informa aos mecanismos de busca qual versão de idioma e região de uma página deve ser exibida para usuários em localizações específicas. Introduzido pelo Google em 2011, o atributo hreflang é inserido dentro de elementos <link> e cria um sinal que ajuda os mecanismos de busca a compreender a relação entre páginas que compartilham o mesmo conteúdo, mas são direcionadas a idiomas ou regiões diferentes.

O atributo segue um formato simples: hreflang="en" para inglês, hreflang="es" para espanhol, ou hreflang="en-GB" para inglês direcionado especificamente a usuários do Reino Unido. Quando implementado corretamente, hreflang garante que um usuário lusófono no Brasil veja a versão pt-BR da sua página nos resultados de busca, em vez da versão em inglês ou da versão em português direcionada a Portugal.

Sem hreflang, os mecanismos de busca precisam adivinhar qual versão do seu conteúdo mostrar para cada audiência. Essa adivinhação leva ao aparecimento de páginas erradas nos resultados de busca, sinais de conteúdo duplicado que diluem seu posicionamento e usuários frustrados que chegam a um conteúdo em um idioma que não compreendem.

Por que Hreflang é importante para o SEO internacional

SEO internacional é a prática de otimizar seu site para que os mecanismos de busca possam identificar quais países e idiomas seu conteúdo visa atingir. Hreflang é o mecanismo principal para comunicar esse direcionamento ao Google e ao Yandex. O Bing utiliza uma abordagem diferente (a meta tag content-language), mas hreflang continua sendo o padrão dominante.

Existem três razões fundamentais pelas quais hreflang é essencial para qualquer site multilíngue ou multirregional:

Códigos de idioma vs códigos de região

Os valores de hreflang seguem o padrão ISO 639-1 para códigos de idioma e o padrão opcional ISO 3166-1 Alpha-2 para códigos de região.

Códigos apenas de idioma direcionam falantes de um idioma independentemente da localização:

Códigos de idioma-região direcionam falantes de um idioma em um país específico:

O código de região é sempre opcional. Se você possui apenas uma versão em inglês, use en. Se você tem versões separadas para os EUA e o Reino Unido, use en-US e en-GB. Nunca use um código de região sozinho sem um prefixo de idioma -- hreflang="US" é inválido e será ignorado pelos mecanismos de busca.

Um erro frequente é usar códigos incorretos. Por exemplo, uk é o código ISO 639-1 para ucraniano, não para o Reino Unido. O código correto para inglês britânico é en-GB. Da mesma forma, jp não é válido; o código de idioma correto para japonês é ja, e o código de país para o Japão é JP, resultando no código combinado ja-JP.

Entendendo x-default

O valor x-default é um atributo especial de hreflang que designa uma página de fallback. Quando um mecanismo de busca não consegue combinar o idioma ou a região de um usuário com nenhum dos valores hreflang disponíveis, ele exibe a página x-default no lugar.

<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />

Você deve configurar x-default para a página que ofereça a melhor experiência aos usuários cujo idioma não é explicitamente coberto. Normalmente, é a sua versão em inglês ou uma página com seletor de idioma. As regras principais para x-default são:

Sem um x-default, os mecanismos de busca não têm orientação sobre o que mostrar a usuários de regiões não suportadas. Isso pode resultar em comportamento imprevisível, onde o Google escolhe a versão que considera mais relevante, que pode não ser a experiência que você pretende oferecer.

Como os mecanismos de busca utilizam Hreflang

O Google processa hreflang como um sinal, não como uma diretiva. Essa distinção é importante: diferentemente de noindex (que o Google geralmente obedece), hreflang é uma sugestão que o Google pondera junto com outros sinais, como a localização do usuário, as configurações de idioma da pesquisa, o idioma real do conteúdo da página e os padrões de links internos.

Veja o que o Google faz quando encontra hreflang:

  1. Rastreia e descobre todas as páginas listadas no conjunto de hreflang
  2. Valida a reciprocidade -- verifica se a página A que aponta para a página B também tem a página B apontando de volta para a página A
  3. Verifica a acessibilidade das URLs -- confirma que todas as URLs vinculadas são rastreáveis e retornam códigos de status 200
  4. Avalia a consistência -- compara os sinais de hreflang com as tags canonical, as entradas do sitemap e o conteúdo da página
  5. Aplica o sinal no momento da consulta para direcionar os resultados de busca à versão mais relevante para o usuário

Se qualquer uma dessas etapas de validação falhar, o Google pode ignorar completamente o hreflang para as páginas afetadas. É por isso que a implementação correta é tão importante -- um único link quebrado na cadeia pode invalidar o conjunto inteiro.

O Yandex segue um processo semelhante, mas com menos documentação. O Bing não suporta oficialmente hreflang, confiando em vez disso na meta tag content-language e no atributo lang no elemento <html>, embora relatórios sugiram que o Bing processe parcialmente os sinais de hreflang.

Métodos de implementação

Existem três formas de implementar hreflang. Você deve usar apenas um método por página para evitar sinais conflitantes. Se você usar múltiplos métodos e eles divergirem, os mecanismos de busca não saberão em qual confiar.

Método 1: Elementos link HTML no head

Insira tags <link rel="alternate"> na seção <head> de cada página do conjunto.

<head>
  <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/" />
</head>

Quando usar este método: Ideal para sites com um número de páginas pequeno a médio (abaixo de algumas centenas) onde você tem controle direto sobre o head HTML. É a abordagem mais comum e a mais fácil de depurar, pois as tags ficam visíveis no código-fonte da página.

Vantagem: Simples de implementar, fácil de inspecionar, funciona com qualquer configuração de hospedagem.

Desvantagem: Aumenta o peso da página. Um site com 20 versões de idioma adiciona 21 tags <link> (20 idiomas + x-default) a cada página, o que pode ser significativo para páginas sensíveis ao desempenho.

Método 2: Cabeçalhos HTTP

Use cabeçalhos Link na resposta HTTP. Isso é particularmente útil para recursos não HTML, como PDFs.

Link: <https://example.com/en/page/>; rel="alternate"; hreflang="en",
      <https://example.com/es/page/>; rel="alternate"; hreflang="es",
      <https://example.com/de/page/>; rel="alternate"; hreflang="de",
      <https://example.com/en/page/>; rel="alternate"; hreflang="x-default"

Quando usar este método: Necessário para documentos não HTML (PDFs, imagens) que possuem variantes linguísticas. Também útil quando você não consegue modificar o head HTML (por exemplo, em algumas configurações de CMS).

Vantagem: Funciona para qualquer tipo de conteúdo, não apenas HTML.

Desvantagem: Mais difícil de auditar, pois os cabeçalhos não são visíveis no código-fonte renderizado da página. Requer configuração no nível do servidor.

Método 3: Sitemap XML

Adicione anotações hreflang dentro do seu sitemap XML usando o elemento xhtml:link dentro de cada entrada <url>.

<?xml version="1.0" encoding="UTF-8"?>
<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="de" href="https://example.com/de/page/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
  </url>
  <url>
    <loc>https://example.com/es/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="de" href="https://example.com/de/page/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
  </url>
</urlset>

Quando usar este método: Ideal para sites grandes com milhares de páginas. Os dados de hreflang ficam no sitemap em vez de em cada página, facilitando a gestão programática e mantendo o peso da página mínimo.

Vantagem: Escala bem, mantém o HTML limpo, pode ser gerado por ferramentas de build ou plugins de CMS.

Desvantagem: O Google precisa rastrear e processar o sitemap antes que o hreflang tenha efeito. Mudanças podem levar mais tempo para se propagarem do que tags inseridas na página.

Quando você deve usar Hreflang?

Você precisa de hreflang quando seu site possui alguma das seguintes características:

Você não precisa de hreflang quando:

Equívocos comuns sobre Hreflang

Equívoco: Hreflang melhora diretamente o posicionamento. Realidade: Hreflang não aumenta seu posicionamento. Ele informa aos mecanismos de busca qual versão mostrar em cada mercado. Seu posicionamento ainda depende da qualidade do conteúdo, backlinks e outros sinais de SEO tradicionais.

Equívoco: Você só precisa de hreflang na página inicial. Realidade: Hreflang deve ser implementado em cada página que tenha um equivalente em outro idioma ou região. Se sua página /en/about/ tem uma versão em espanhol em /es/about/, ambas as páginas precisam de tags hreflang apontando uma para a outra e para si mesmas.

Equívoco: O Google vai resolver sem hreflang. Realidade: Embora o Google use sinais como o atributo lang e o idioma do conteúdo da página para detectar o idioma, esses são sinais mais fracos. Sem hreflang explícito, o Google frequentemente mostra a versão de idioma errada nos resultados de busca, especialmente para sites com estruturas de URL semelhantes entre idiomas.

Equívoco: Hreflang substitui a tag canonical. Realidade: Hreflang e canonical servem a propósitos diferentes e devem ser usados juntos. A tag canonical informa aos mecanismos de busca qual URL é a cópia principal para fins de indexação. Hreflang indica alternativas de idioma e região. Cada versão localizada deve ter um canonical autorreferencial que aponte para si mesma, não para outra versão. Consulte nosso guia sobre hreflang vs canonical para uma explicação detalhada.

Equívoco: Você pode usar hreflang com URLs relativas. Realidade: Todas as URLs em atributos hreflang devem ser absolutas (começando com https://). URLs relativas são silenciosamente ignoradas pelos mecanismos de busca, o que significa que sua implementação de hreflang simplesmente não funcionará.

Próximos passos

Agora que você entende o que é hreflang e como ele funciona, você pode:

Related tools