Hreflang explicado, sem misticismo

«Porque é que o Google mostra a minha página em inglês a alguém que procura em francês?» é quase sempre um problema de hreflang — e quase sempre um problema pequeno e silencioso. O hreflang é uma ideia simples que falha em silêncio: erre-o ligeiramente e nada dá erro, nada o avisa, os motores de busca simplesmente deixam de o respeitar. Aqui está o que faz, o punhado de formas como se estraga, e como verificar o seu à mão.

Marketing e CRM no painel de administração Olmira

O que o hreflang faz realmente

Uma anotação hreflang é uma indicação numa página que diz, no fundo: «este URL e aquele URL são o mesmo conteúdo, em idiomas diferentes (opcionalmente para regiões diferentes) — quando alguém pesquisar nesse idioma, considere servir-lhe aquele URL». É implementada como um conjunto de etiquetas (no da página, ou, de forma equivalente, num sitemap XML), uma por cada variante de idioma/região, todas a apontar umas para as outras.

Os modos de falha por trás de quase todas as queixas de «língua errada»

Os erros de hreflang partilham um traço: nenhum deles gera um erro em lado nenhum. A página continua a carregar. As etiquetas continuam presentes. Estão apenas erradas de uma forma que só um motor de busca — ou uma verificação humana cuidadosa — deteta.

Etiquetas não recíprocas Se a página A declara uma alternativa que aponta para a página B, mas a página B não declara nenhuma a apontar de volta para A, o par está partido — e o comportamento documentado dos principais motores de busca é desconfiar das anotações não recíprocas ou ignorá-las, em vez de as respeitar parcialmente. É a falha de hreflang mais comum na prática, porque é fácil acrescentar uma página num novo idioma e esquecer-se de atualizar o conjunto de etiquetas de todos os outros idiomas para que a referenciem.

Etiquetas a apontar para um URL não canónico, que redireciona ou que devolve 404 Uma alternativa tem de apontar para a versão real, ativa e canónica da página nesse idioma — não para um URL antigo que agora redireciona, nem para um URL que exige autenticação ou devolve um erro a um rastreador.

Cobertura parcial dentro de um cluster Um hreflang bem definido em algumas páginas de uma secção traduzida mas ausente noutras produz um sinal incoerente em todo o cluster, o que tende a corroer a confiança nas etiquetas que estão corretas.

Etiquetas duplicadas ou contraditórias vindas de várias origens Em sites onde mais do que um pedaço de código pode injetar etiquetas no cabeçalho — um script ao nível da página e um layout comum a todo o site, por exemplo — uma corrida entre ambos pode deixar etiquetas hreflang duplicadas ou contraditórias na marcação final. É uma classe de falha real e subtil precisamente porque é invisível numa verificação visual rápida da página renderizada; só aparece ao ler com atenção o código-fonte do .

Hreflang sem a entrada correspondente no sitemap Os motores de busca usam o sitemap como sinal de prioridade de rastreio; um URL declarado como alternativa de idioma mas que nunca surge no sitemap pode simplesmente ser rastreado mais tarde, ou com menos frequência, do que as páginas que realmente está a tentar posicionar.

Como verificar o seu próprio site à mão

Não é preciso nenhuma ferramenta especial para uma primeira verificação. Veja o código-fonte da página — o código-fonte real, não apenas o DOM renderizado — e encontre todas as etiquetas . Para dois ou três pares de línguas, confirme que cada uma aponta de volta: se /page declara hreflang="es" a apontar para /es/page, abra /es/page e confirme que declara uma etiqueta a apontar de volta para /page. Depois confirme que existe exatamente um x-default e que resolve para uma página a funcionar, e que todos os URLs do conjunto carregam diretamente — sem redirecionamento, sem 404 — e correspondem ao canónico da própria página. Num site pequeno, esta verificação manual apanha a maioria dos erros do mundo real.

Como é uma configuração hreflang saudável

1

Cada variante, recíproca

Cada versão linguística de uma página lista todas as outras versões linguísticas — incluindo ela própria — como alternativas, pelo que o conjunto é totalmente recíproco e não um palpite numa só direção.

2

Um único x-default, sempre resolúvel

Exactamente uma alternativa está marcada como x-default, e aponta para uma página real e funcional — normalmente a versão na sua língua predefinida.

3

Canónico próprio em cada idioma

A etiqueta canonical de cada versão linguística aponta para si própria, e não para a versão na língua predefinida — uma página não deve declarar-se ao mesmo tempo alternativa e duplicado canónico de outro URL.

4

Gerado, não mantido à mão

Em qualquer site com mais do que um punhado de páginas, escrever à mão conjuntos de etiquetas recíprocas para cada par de línguas é exactamente o tipo de tarefa que se desvia em silêncio. Gerar o conjunto a partir de uma única fonte de verdade (a lista de línguas declarada da página) mantém as etiquetas de todas as páginas coerentes por construção.

O construtor de sites no painel de administração Olmira

Como a Olmira trata disto

As alternativas de hreflang e x-default de um site Olmira são geradas a partir de uma única fonte — a lista de línguas declarada da página — no momento em que duas ou mais línguas ficam ativas. A reciprocidade é um subproduto da forma como as etiquetas são construídas, não algo escrito por página, e as etiquetas são emitidas uma vez, centralmente, para cada rota — precisamente para evitar o modo de falha de etiquetas duplicadas e em corrida acima descrito.

O x-default resolve sempre para o próprio URL sem prefixo da língua predefinida do site, e cada versão de língua tem o seu próprio canónico autorreferenciado. Que línguas usar, e quão completa cada uma deve estar antes de ser publicada, continua a ser o seu critério — esse é o guia de estrutura multilingue; a mecânica das etiquetas é tratada da mesma forma em todas as páginas do construtor de sites.

Deixe as etiquetas tratarem de si próprias

Cada idioma que acrescenta recebe automaticamente um hreflang correto e recíproco — sem listas de etiquetas mantidas à mão.