Verificação de hreflang
Digite o endereço de uma página que existe em vários idiomas. Lemos as linhas hreflang dela, validamos cada código e depois visitamos cada versão alternativa para ver se ela responde, se pode ser indexada e se cita esta página de volta.
Uma lista de gêmeas, repetida em cada gêmea
Quando a mesma página existe em inglês, alemão e japonês, um buscador vê três páginas separadas. Com o hreflang, você avisa que elas são uma só página em três versões, para que um leitor em Berlim receba o endereço em alemão e não o em inglês. Cada versão traz a lista completa de versões, incluindo ela mesma:
<link rel="alternate" hreflang="en" href="https://www.example.com/en/pricing/">
<link rel="alternate" hreflang="de" href="https://www.example.com/de/preise/">
<link rel="alternate" hreflang="ja" href="https://www.example.com/ja/pricing/">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/en/pricing/">A lista pode ficar em três lugares: no <head> da página, num cabeçalho de resposta Link ou no sitemap XML. Esta verificação lê os dois primeiros. Ela não lê sitemaps, então uma página sem anotação aqui ainda pode estar coberta lá.
O hreflang muda qual versão é mostrada. Não muda o quanto a página ranqueia. Os buscadores o tratam como uma dica e o descartam assim que ele parece incoerente, e é por isso que pequenos erros custam tão caro.
Como é um código válido
Um valor é um idioma, seguido opcionalmente de um sistema de escrita e de um país, unidos por hífens. Maiúsculas e minúsculas não fazem diferença.
| Parte | Padrão | Exemplos |
|---|---|---|
| Idioma (obrigatório) | ISO 639-1, duas letras | en, de, ja, pt |
| Escrita (opcional) | ISO 15924, quatro letras | zh-Hans, zh-Hant, sr-Latn |
| País (opcional) | ISO 3166-1, duas letras | en-GB, pt-BR, zh-Hant-TW |
O país nunca vem sozinho e nunca vem primeiro. Estes são os erros que esta verificação aponta pelo nome, com a correção quando só uma é possível:
en-UK: o código ISO do Reino Unido éGB.en_US: um sublinhado, do jeito que os locales de software escrevem. O hreflang queren-US.es-LA: lido como espanhol do Laos. O Google não lê nenhum código para a América Latina, então useesou uma linha por país.jp,cn,cz,dk: códigos de país usados como idioma. Os idiomas sãoja,zh,cs,da.en-EU,es-419, códigos de três letras comoenge códigos aposentados comoiwpara o hebraico.
A tabela de resultados escreve cada código por extenso. Isso pega os erros que nenhuma regra consegue pegar, como uk, que é um código perfeitamente válido e significa ucraniano.
O que é verificado na própria página
- Endereços. Cada linha precisa de um endereço completo, com esquema e host. Os relativos são apontados.
- Duplicatas e conflitos. A mesma linha duas vezes não faz mal e aparece como observação. Um mesmo código dado a dois endereços diferentes é um erro, porque ninguém consegue saber qual página é a versão daquele idioma.
- Autorreferência. A página tem de aparecer na própria lista, com o endereço exato. Uma barra final faltando já basta para quebrar a correspondência.
- x-default. A versão para leitores cujo idioma não está na lista. É opcional, então a ausência dela gera uma nota e não conta como defeito.
- Canônica. O hreflang só funciona entre páginas canônicas. Uma página em alemão cuja canônica aponta para a página em inglês diz aos buscadores para esquecer a alemã, e as linhas hreflang dela vão junto.
- O atributo
lang. Se o<html lang>dizsvenquanto a página se lista comose, um dos dois está errado. - Posição. Linhas que acabam fora do
<head>, muitas vezes porque um elemento perdido fecha o head antes da hora, são ignoradas pelo Google e sinalizadas aqui.
Links de retorno, a metade que costuma falhar
Uma anotação só vale se as duas páginas concordarem. Se a página em inglês diz “minha versão em alemão está ali” e a página em alemão não diz “minha versão em inglês está aqui”, o par é descartado. Por isso, depois de ler a sua página, nosso servidor faz uma requisição a cada versão alternativa, sem seguir redirecionamentos, e informa para cada uma:
- Status
- Ela tem de responder 200. Um redirecionamento significa que a linha cita um endereço que não é o final. Um erro significa que a versão sumiu. Um x-default que redireciona é aceito, já que é exatamente isso que um seletor de idioma faz.
- Indexável
- Nenhum
noindexnuma meta tag robots ou num cabeçalhoX-Robots-Tag. - Canônica para si mesma
- A canônica dela, se houver, tem de ser o próprio endereço.
- Linka de volta
- O bloco dela tem de listar a sua página, com o mesmo código que a sua página usa para si mesma.
Quando as correções são mecânicas (um código mal escrito, um endereço relativo, uma linha repetida, a linha da própria página faltando), o resultado termina com um bloco corrigido que você pode colar. As linhas que dependem de uma decisão sua ficam como estão, marcadas com um comentário.
Uma verificação visita no máximo 35 versões alternativas e para depois de cerca de meio minuto. A tabela marca as que foram puladas. Não vemos anotações escritas por JavaScript, e um site que redireciona os visitantes pela localização pode mostrar ao nosso servidor algo diferente do que um robô de busca recebe.
Perguntas frequentes
Preciso de hreflang se meu site tem um só idioma?
Não. O hreflang liga entre si as versões de uma mesma página. Com uma só versão não há nada para ligar, e a verificação informa “nenhuma anotação” como resultado neutro.
O que é x-default e ele é obrigatório?
É a linha para todos que as suas outras linhas não cobrem, como um leitor cujo idioma você não oferece. Ela costuma apontar para a versão em inglês ou para uma página em que o visitante escolhe o idioma. É recomendada, não obrigatória.
Devo usar só o código do idioma ou acrescentar o país?
Use só o idioma (de) quando uma página atende todos os falantes daquele idioma. Só acrescente o país (de-AT, de-CH) quando você publica páginas diferentes por país, para preços ou frete, por exemplo. Dá para combinar os dois, com linhas por país para as páginas específicas e uma linha só de idioma como a geral.
O que significa “sem link de retorno”?
A sua página cita outra versão, mas essa versão não cita a sua página no próprio bloco hreflang. Os buscadores ignoram anotações de mão única. Para corrigir, gere a mesma lista completa em todas as versões, de preferência a partir de uma única fonte compartilhada.
O hreflang pode apontar para outro domínio?
Sim. example.com e example.de podem ser versões uma da outra, desde que cada uma liste a outra e a si mesma. As regras são as mesmas que dentro de um só domínio.
O hreflang substitui a tag canonical?
Não. Eles fazem trabalhos diferentes e precisam concordar. A canônica diz qual endereço representa uma página entre as duplicatas dela, e o hreflang diz quais outras páginas são as traduções dela. Cada versão de idioma deve ser canônica para si mesma.