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:

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, talvez você tenha URLs específicos para falantes de inglês na Irlanda (en-ie), no Canadá (en-ca) e na Austrália (en-au), mas também queira oferecer uma página em inglês genérico (en) para os usuários dos EUA, do Reino Unido e de 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="http://example.com/" hreflang="x-default" />

Tags HTML

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

Cada variação da página precisa incluir um conjunto de elementos <link> no elemento <head> e 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.

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
http://en.example.com/page.html É a página inicial genérica em inglês com informações sobre taxas de envio internacional dos EUA.
http://en-gb.example.com/page.html É a página inicial do Reino Unido que mostra os preços em libras esterlinas.
http://en-us.example.com/page.html É a página inicial dos EUA que mostra os preços em dólares americanos.
http://de.example.com/page.html É a página inicial em alemão.
http://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.

Este é o HTML que precisa ser colado na seção <head> de todas as páginas listadas acima. 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="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
       href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
       href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
       href="http://de.example.com/page.html" />
 <link rel="alternate" hreflang="x-default"
       href="http://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 abaixo. 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: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

Sitemap

É possível usar um sitemap para informar ao Google todas as variantes de idioma e região de cada URL. Para fazer isso, adicione um elemento <loc> que especifique um único URL, com entradas filhas <xhtml:link> que listem todas as variantes de idioma/local da página, inclusive a original. Assim, se você tiver três versões de uma página, o sitemap terá três entradas, cada uma com 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> independente para cada URL.
  • 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 mantê-los na mesma ordem facilita a verificação de erros.
  • Confira as diretrizes adicionais.

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.com/deutsch/page.html segmentado para falantes de alemão
  • www.example.com/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>http://www.example.com/english/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

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

O valor do atributo hreflang identifica o idioma (no formato ISO 639-1) e, opcionalmente, a região (no formato ISO 3166-1 Alfa 2) de um URL alternativo. Quando há apenas um código especificado, o Google presume que seja um código de idioma. O idioma não precisa estar relacionado à região. Exemplo:

  • de: conteúdo em alemão, independentemente da região
  • en-GB: conteúdo em inglês para usuários da 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)

Como alternativa, também é possível especificar uma combinação de escrita e região. Por exemplo, use zh-Hans-TW se quiser especificar chinês (simplificado) para usuários de Taiwan.

Uso da tag x-default para idiomas sem correspondência

O valor reservado hreflang="x-default" é usado quando nenhum outro idioma/região corresponde à configuração do navegador do usuário. Esse valor é opcional, mas recomendável como uma forma de controlar a página quando não houver correspondência de idioma. Um bom uso é segmentar a página inicial do site, em que há um mapa clicável que permite ao usuário selecionar um país.

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.

Solução de problemas

Erros comuns

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

  • Falta de links de retorno: 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.
  • 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

É possível usar o relatório de segmentação internacional para depurar os problemas mais comuns. Verifique se o Google teve tempo de rastrear suas páginas e, em seguida, acesse a guia Idioma do relatório para ver se algum erro foi detectado.

Também existem vários recursos de terceiros disponíveis. Veja abaixo algumas ferramentas bastante usadas (em inglês). Elas não são mantidas nem verificadas pelo Google.