Informar o Google sobre versões localizadas da sua página

Se você tiver várias versões de uma página para idiomas ou regiões diferentes, informe o Google sobre essas variações. Isso ajudará a Pesquisa Google a direcionar os usuários para a versão correta da sua página de acordo com o idioma ou a região.

Mesmo que você não faça isso, talvez o Google ainda encontre versões da sua página em idiomas alternativos. No entanto, em geral é melhor indicar explicitamente as páginas específicas a idiomas ou regiões.

Alguns exemplos de situações em que indicar páginas alternativas é recomendado:

  • Você mantém o conteúdo principal em um único idioma e traduz somente o modelo, como a navegação e o rodapé. Em geral, as páginas que apresentam conteúdo gerado pelo usuário, como os fóruns, fazem isso.
  • Seu conteúdo apresenta pequenas variações regionais com tema semelhante em um único idioma. Por exemplo, você apresenta um conteúdo em inglês segmentado para os Estados Unidos, a Grã-Bretanha e a Irlanda.
  • O conteúdo do seu site é completamente traduzido para vários idiomas. Por exemplo, você tem as versões em alemão e inglês de cada página.

As versões localizadas de uma página só serão consideradas cópias se o conteúdo principal da página não for traduzido.

Métodos para indicar páginas alternativas

Existem três maneiras de indicar várias versões de idioma/localidade de uma página para o Google:

Os três métodos são equivalentes da perspectiva do Google, e você pode escolher o que for mais conveniente para seu site. Embora você possa usar todos os três métodos ao mesmo tempo, não há benefício na Pesquisa. Na verdade, talvez seja muito mais difícil gerenciar três implementações em vez de escolher apenas uma.

Informe o Google sobre as variações do seu conteúdo usando hreflang para sabermos que essas páginas são versões localizadas do mesmo material. O Google não usa hreflang nem o atributo HTML lang para detectar o idioma das páginas. Em vez disso, usamos algoritmos.

Diretrizes para todos os métodos

  • Cada versão de idioma precisa listar a si mesma, além de todas as outras.
  • Os URLs alternativos precisam ser totalmente qualificados, incluindo o método de transporte (http/https). Então, use
    https://example.com/foo, não //example.com/foo nem /foo.
  • Os URLs alternativos não precisam estar no mesmo domínio.
  • Se você tiver vários URLs alternativos segmentados para usuários do mesmo idioma, mas em localidades diferentes, é recomendável fornecer um URL genérico para os usuários não especificados geograficamente do idioma em questão. Por exemplo, se você tiver URLs específicos para falantes de inglês na Irlanda (en-ie), no Canadá (en-ca) e na Austrália (en-au), forneça uma página em inglês genérico (en) para os usuários nos EUA, no Reino Unido e em todos os outros locais que falam inglês. Pode ser uma das páginas específicas, se você quiser.
  • Se duas páginas não apontarem uma para a outra, as tags serão ignoradas. Isso ocorre para que uma pessoa em outro site não crie arbitrariamente uma tag nomeada como uma versão alternativa de uma das suas páginas.
  • Caso fique difícil manter um conjunto completo de links bidirecionais para todos os idiomas, você poderá omitir alguns idiomas em algumas páginas. O Google ainda processará os que apontam um para o outro. No entanto, é importante vincular as páginas de idioma recém-expandidas bidirecionalmente aos idiomas de origem/dominantes. Por exemplo, se o site foi originalmente criado em francês com URLs .fr, é mais importante criar um vínculo bidirecional das páginas mais recentes do México (.mx) e da Espanha (.es) com a presença marcante do .fr do que vincular bidirecionalmente suas páginas recentes das variantes do idioma espanhol (.mx e .es).
  • Considere adicionar uma página substituta para idiomas sem correspondência, especialmente em seletores de idioma/país ou páginas iniciais de redirecionamento automático. Use o valor x-default:
    <link rel="alternate" href="https://example.com/" hreflang="x-default" />

Tags HTML

Adicione elementos <link rel="alternate" hreflang="lang_code"... > ao cabeçalho da página para informar o Google sobre todas as variações de idioma e região de uma página. Isso é útil se você não tem um sitemap ou não pode especificar cabeçalhos de resposta HTTP para o site.

Para cada variação da página, inclua um conjunto de elementos <link> no elemento <head>, com um link para cada variante da página, inclusive ela mesma. O conjunto de links é idêntico para todas as versões da página. Confira as diretrizes adicionais.

Esta é a sintaxe de cada elemento link:

<link rel="alternate" hreflang="lang_code" href="url_of_page" />
Sintaxe
lang_code É um código de idioma/região compatível segmentado pela versão da página ou x-default, para corresponder a qualquer idioma que não esteja listado explicitamente na página por uma tag hreflang.
url_of_page É o URL totalmente qualificado da versão da página referente à região ou ao idioma especificado.

As tags <link> precisam estar dentro de uma seção <head> bem formada do HTML. Em caso de dúvida, cole o código da página renderizada em um validador HTML para garantir que os links estejam no elemento <head>. Além disso, não combine tags link para representações alternativas do documento. Por exemplo, não combine anotações hreflang com outros atributos, como media, em uma única tag <link>.

Exemplo

A Example Widgets, Inc. tem um site destinado aos usuários nos EUA, na Grã-Bretanha e na Alemanha. Os URLs a seguir têm essencialmente o mesmo conteúdo, mas com variações regionais:

URLs com variações regionais
https://en.example.com/page.html É a página inicial genérica em inglês com informações sobre taxas de envio internacional dos EUA.
https://en-gb.example.com/page.html É a página inicial do Reino Unido que mostra os preços em libras esterlinas.
https://en-us.example.com/page.html É a página inicial dos EUA que mostra os preços em dólares americanos.
https://de.example.com/page.html É a página inicial em alemão.
https://www.example.com/ É a página padrão que não segmenta idiomas nem localidades. Inclui seletores que permitem que os usuários escolham o idioma e a região.

Os subdomínios específicos a idiomas desses URLs (en, en-gb, en-us e de) não são usados pelo Google para determinar o público-alvo da página. É necessário mapear o público-alvo de forma explícita.

Veja o HTML que estaria na seção <head> de todas as páginas listadas na tabela de URLs com variantes regionais. Ele direcionaria os falantes de cada idioma (inglês genérico, do Reino Unido ou dos Estados Unidos, assim como alemão) para páginas localizadas, e todos os outros para uma página inicial genérica. A Pesquisa Google retornará o resultado correto para o usuário, de acordo com as configurações do navegador.

<head>
 <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
       href="https://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
       href="https://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
       href="https://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
       href="https://de.example.com/page.html" />
 <link rel="alternate" hreflang="x-default"
       href="https://www.example.com/" />
</head>

Cabeçalhos HTTP

É possível retornar um cabeçalho HTTP com a resposta GET da página para informar o Google sobre todas as variantes de idioma e região de uma página. Isso é útil para arquivos não HTML, como PDFs.

Este é o formato do cabeçalho:

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
Sintaxe
<url_x> É o URL totalmente qualificado da página alternativa correspondente à string de localidade atribuída ao atributo hreflang associado. O URL precisa incluir as marcas < e > ao redor. Exemplo: <https://www.google.com>
lang_code_x É um código de idioma/região compatível segmentado pela versão da página ou x-default, para corresponder a qualquer idioma que não esteja listado explicitamente na página por uma tag hreflang.

Especifique um conjunto de valores <url>, rel="alternate" e hreflang para cada versão da página, inclusive a versão solicitada, separados por vírgula, conforme o exemplo a seguir. O cabeçalho Link: retornado para cada versão da mesma página é idêntico. Confira as diretrizes adicionais.

Exemplo

Veja um exemplo de cabeçalho Link: retornado por um site que tem três versões de um arquivo PDF: uma para falantes de inglês, uma para falantes de alemão da Suíça e uma para todos os outros falantes de alemão.

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

Sitemap

É possível usar um sitemap XML para informar ao Google todas as variantes de idioma e região de cada URL. Para fazer isso, adicione um elemento <loc> especificando um único URL, com entradas filhas <xhtml:link> que listem todas as variantes de idioma/localidade da página, inclusive a original. Assim, se você tiver três versões de uma página, o sitemap terá entradas para os URLs de cada versão, e cada entrada terá três entradas filhas idênticas.

Regras do sitemap:

  • Especifique o namespace xhtml da seguinte forma:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Crie um elemento <url> separado para cada URL, como faria com qualquer outro sitemap.
  • Cada elemento <url> precisa incluir um filho <loc> que indique o URL da página.
  • Cada elemento <url> precisa ter um elemento filho <xhtml:link rel="alternate" hreflang="supported_language-code"> que liste todas as versões alternativas da página, inclusive a original. A ordem desses elementos filhos <xhtml:link> não importa, mas manter todos na mesma ordem facilita a verificação de erros. Elementos filhos não são contabilizados no limite de URL para sitemaps.
  • Faça upload do sitemap para um diretório no seu site a que o sitemap se aplica. Um sitemap só pode conter URLs descendentes do diretório de onde o sitemap está hospedado.
  • Nossa documentação sobre sitemaps também se aplica às extensões de sitemap. Siga as diretrizes do sitemap geral.
  • Confira outras diretrizes.

Exemplo

Esta é uma página em inglês segmentada para falantes do idioma em todo o mundo, com versões equivalentes segmentadas para os falantes de alemão em todo o mundo e os falantes de alemão na Suíça. Aqui estão todos os URLs presentes no site:

  • www.example.com/english/page.html segmentado para falantes de inglês
  • www.example.de/deutsch/page.html segmentado para falantes de alemão
  • www.example.de/schweiz-deutsch/page.html segmentado para falantes de alemão na Suíça

Este é o sitemap para essas três páginas:

<?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://www.example.com/english/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="https://www.example.de/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="https://www.example.de/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="https://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>https://www.example.de/deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="https://www.example.de/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="https://www.example.de/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="https://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>https://www.example.de/schweiz-deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="https://www.example.de/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="https://www.example.de/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="https://www.example.com/english/page.html"/>
  </url>
</urlset>

Códigos de idioma e região compatíveis

O valor do atributo hreflang é composto por um ou dois valores separados por um traço. Por exemplo, en-US. O primeiro código do atributo hreflang é o código do idioma (no formato ISO 639-1) seguido por um segundo código opcional que representa o código da região (no formato ISO 3166-1 Alfa 2) de um URL alternativo.

Para segmentar falantes de diferentes idiomas na Bélgica, use os seguintes códigos de idioma e região:

  • Bom (alemão para usuários na Bélgica): de-be
  • Bom (holandês para usuários na Bélgica): nl-be
  • Bom (francês para usuários na Bélgica): fr-be
  • Ruim, porque o primeiro código é para o idioma (be é o código do idioma bielorrusso): be

Para simplificar a marcação, especifique um código de idioma. Exemplo:

  • de: conteúdo em alemão, independentemente da região
  • en-GB: conteúdo em inglês para usuários na Grã-Bretanha
  • de-ES: conteúdo em alemão para usuários na Espanha

Para variações na escrita do idioma, a escrita adequada é derivada do país. Por exemplo, ao usar zh-TW para usuários de Taiwan, a escrita do idioma é derivada automaticamente (nesse caso, chinês tradicional). Também é possível especificar a própria escrita explicitamente com o ISO 15924, desta forma:

  • zh-Hant: chinês (tradicional)
  • zh-Hans: chinês (simplificado)

Assim como acontece com outros códigos de idioma, também é possível especificar uma região opcional. Por exemplo, use zh-Hans-US se quiser especificar chinês (simplificado) para usuários nos Estados Unidos.

Uso do valor x-default para idiomas sem correspondência

O valor reservado x-default é usado quando nenhum outro idioma/região corresponde à configuração do navegador do usuário. Esse valor é recomendado para especificar a página substituta para usuários com configurações de idioma que não correspondem a nenhuma das versões localizadas do site. Embora você possa usar o valor x-default em qualquer página, ele foi projetado para páginas de seleção de idiomas. Por isso, funcionará melhor com elas.

Não é necessário especificar um código de idioma para o valor x-default. A página é segmentada para usuários com configurações de idioma sem correspondência no site. Portanto, o idioma da página é irrelevante.

Para implementar a anotação hreflang="x-default", adicione outra tag link às anotações hreflang atuais e defina o atributo href como o URL de destino dos usuários com idiomas incompatíveis com o site. Por exemplo, uma implementação de HTML pode ficar assim:

<link rel="alternate" href="https://example.com/en-gb" hreflang="en-gb" />
<link rel="alternate" href="https://example.com/en-us" hreflang="en-us" />
<link rel="alternate" href="https://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="https://example.com/country-selector" hreflang="x-default" />

Solução de problemas

Erros comuns

Estes são os erros mais comuns ao usar hreflang:

  • Links de retorno ausentes: se a página X for vinculada à página Y, será necessário que Y seja vinculada de volta a X. Se esse não for o caso de todas as páginas que usam as anotações hreflang, essas anotações poderão ser ignoradas ou interpretadas incorretamente. Por exemplo, considerando este link em https://de.example.com/index.html:
    <link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/index.html" />
    Você também precisa ter um link hreflang em https://en-gb.example.com/index.html que direcione para a versão de do conteúdo:
    <link rel="alternate" hreflang="de" href="https://de.example.com/index.html" />
  • Códigos de idioma incorretos: todos os códigos de idioma usados precisam identificar o idioma (no formato ISO 639-1) e opcionalmente a região (no formato ISO 3166-1 Alfa 2) de um URL alternativo. Especificar somente a região não é válido.

Depuração de erros de hreflang

Há várias ferramentas de terceiros disponíveis para depurar anotações hreflang. Veja abaixo algumas ferramentas bastante usadas (em inglês). Elas não são mantidas nem verificadas pelo Google.