Módulo 3 · 3.6
Sites multilingues e hreflang
Módulo 3: A base técnica de uma página · Tempo de leitura: 12 minutos
Objetivo de aprendizagem: No final desta lição, saberá configurar corretamente o hreflang num site em várias línguas ou para vários países e verificar se as referências são recíprocas.
Conceitos chave: versão linguística, hreflang, código de língua (ISO 639-1), código de país (ISO 3166-1 alpha-2), código de escrita (ISO 15924), x-default, reciprocidade (referência de retorno), referência a si própria, HTML, cabeçalho HTTP ou sitemap, endereços separados por língua, não redirecionar automaticamente com base na língua, atributo lang
O problema: que versão mostrar?
O Bloemenatelier Lotte, uma florista em Amersfoort, está a crescer. Vai ter uma versão do site em inglês para turistas e expatriados e uma em alemão para clientes do outro lado da fronteira. A mesma página de ramos de noiva existe agora três vezes:
https://www.example.com/bruidsboeketten (neerlandês)
https://www.example.com/en/bridal-bouquets (inglês)
https://www.example.com/de/brautstraeusse (alemão)Em cada pesquisa, um motor de pesquisa tem de escolher qual das três mostra. Uma pessoa em Colónia que pesquisa em alemão deve receber a versão alemã, não a neerlandesa. Com o hreflang, indica ao motor de pesquisa que páginas são versões linguísticas umas das outras e a que língua ou país se destina cada versão.
O hreflang não é um truque para subir no ranking. Serve apenas para que a versão certa apareça no sítio certo. E não serve para reconhecer a língua: a Google indica que não utiliza o hreflang nem o atributo lang do HTML para determinar a língua de uma página; fá-lo sozinha, a partir do texto. Ainda assim, defina corretamente o atributo lang (<html lang="nl">), para os browsers, os programas de tradução e os leitores de ecrã.
Primeiro a base: endereços separados
A Google recomenda um endereço próprio para cada versão linguística e desaconselha mudar a língua com cookies ou definições do browser no mesmo endereço. A razão é prática: o Googlebot rastreia normalmente a partir dos Estados Unidos. Se o conteúdo de um endereço mudar consoante quem o visita, o Googlebot pode ver apenas uma versão.
Pela mesma razão: não redirecione os visitantes automaticamente para outra versão linguística com base na sua língua ou localização. A Google desaconselha-o expressamente. Um neerlandês de férias na Alemanha quer o site em neerlandês; coloque antes uma escolha de língua bem visível na página e deixe que todos possam aceder a todas as versões.
Se trabalhar com países em vez de línguas, com domínios separados como example.de e example.nl, aplica-se o mesmo. As versões não precisam de estar no mesmo domínio.
Como é o hreflang
No <head> de cada versão linguística consta o mesmo conjunto de linhas:
<link rel="alternate" hreflang="nl" href="https://www.example.com/bruidsboeketten">
<link rel="alternate" hreflang="en" href="https://www.example.com/en/bridal-bouquets">
<link rel="alternate" hreflang="de" href="https://www.example.com/de/brautstraeusse">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/bruidsboeketten">Quatro regras que deve conhecer:
- Cada versão refere-se a si própria e a todas as outras. A página em inglês tem, portanto, exatamente as mesmas quatro linhas, incluindo a linha para
enque aponta para si própria. - As referências têm de ser recíprocas. Se a página neerlandesa apontar para a alemã, a alemã tem de apontar de volta para a neerlandesa. A Google diz: se duas páginas não apontarem uma para a outra, as referências são ignoradas. É o erro mais frequente e, por isso, o exercício desta lição verifica-o.
- Endereços completos. Com
https://incluído. Um caminho como/en/bridal-bouquetsou//www.example.com/en/...não conta. - Num
<head>bem construído. As linhas ficam no<head>do HTML. Se algo interromper o head mais cedo, por exemplo um<img>ou<div>solto que ali não pertence, um motor de pesquisa pode considerar o head terminado e perder o resto.
Os códigos
O valor de hreflang é um código de língua, eventualmente seguido de um código de país:
| Código | Significado |
|---|---|
nl | Neerlandês, para todos os que falam neerlandês |
nl-BE | Neerlandês para a Bélgica |
de-AT | Alemão para a Áustria |
en-GB | Inglês para o Reino Unido |
zh-Hant | Chinês em escrita tradicional (código de escrita ISO 15924) |
x-default | A página de recurso: para todos aqueles a quem nenhuma outra versão se adequa |
O código de língua vem da ISO 639-1 (duas letras), o código de país da ISO 3166-1 alpha-2. Maiúsculas e minúsculas não fazem diferença, mas o hábito é língua em minúsculas e país em maiúsculas. Três armadilhas:
- Só um país não funciona.
hreflang="be"significa bielorrusso (o código de línguabe), não Bélgica. Um país vem sempre depois de uma língua:nl-BEoufr-BE. en-UKnão existe. O código de país do Reino Unido éGB. A Google indica que códigos comoEU,UNouUKnão têm efeito.- Use um país apenas se as versões forem realmente diferentes (outros preços, moeda, entrega, ortografia). Se tiver uma única versão alemã para todos, use simplesmente
de.
x-default
x-default é opcional. Com ele indica a página para os visitantes a quem nenhuma das suas versões se adequa, por exemplo alguém que fala francês. Muitas vezes é a sua língua principal ou uma página onde o visitante escolhe a língua.
Três formas, escolha uma
A Google reconhece três formas equivalentes de indicar o hreflang:
- No HTML, com linhas
<link>no head, como acima. É a mais utilizada. Como cabeçalho HTTP
Link, útil para ficheiros sem HTML, como um pdf:Link: <https://www.example.com/en/price-list.pdf>; rel="alternate"; hreflang="en"- No sitemap, com linhas
xhtml:linkpor cada<url>. Útil para sites grandes, porque as páginas não ficam mais pesadas.
Não precisa de as combinar. Se usar mais do que uma, têm de dizer exatamente o mesmo.
hreflang e canonical em conjunto
O hreflang e o canonical (lição 3.5) funcionam em conjunto, mas não os confunda:
- Cada versão linguística tem um canonical para si própria. A página em inglês não é uma cópia da neerlandesa, por isso não aponta para a neerlandesa como endereço canónico. Se o fizer, está a dizer "a página em inglês na verdade não existe", e ela sai do índice.
- Os endereços no hreflang são os endereços canónicos das versões. Se o hreflang apontar para um endereço que redireciona, devolve 404, tem noindex ou tem um canonical para outro sítio, o grupo fica quebrado.
Ao determinar o endereço canónico, a Google prefere endereços que fazem parte de um grupo hreflang. Um grupo bem construído ajuda, portanto, também a sua canonicalização.
Na prática: deixe o sistema tratar disso
Manter o hreflang à mão é propenso a erros: com dez línguas e cem páginas, são mil linhas que têm de estar todas certas. Deixe o seu sistema de sites tratar disso. O AI Builder da WebOké coloca, num site multilingue, em cada página referências hreflang para a mesma página nas outras línguas, mais um x-default para a língua principal, e deixa propositadamente fora do grupo uma página sem equivalente traduzido. No WordPress, os plugins multilingues fazem o mesmo. Noutros criadores de sites, encontra esta função com nomes como "línguas" ou "internacional". Depois, verifique por si próprio se as referências de ida e volta estão corretas; é isso que o exercício faz.
Resumo
- O hreflang indica que páginas são versões linguísticas ou de país umas das outras; não reconhece línguas e não é um truque de ranking.
- Cada versão tem o seu próprio endereço, sem redirecionamento automático com base na língua ou localização.
- Cada versão refere-se a si própria e a todas as outras, com endereços completos, e cada referência tem de ser correspondida; caso contrário, a Google ignora-a.
- Códigos: língua da ISO 639-1, eventualmente com país da ISO 3166-1 alpha-2 (
en-GB, nãoen-UK);x-defaultpara os restantes. - Cada versão tem um canonical para si própria; o hreflang aponta apenas para endereços canónicos que devolvem 200.
Questionário
Exercício
Exercício A3.6: As suas referências hreflang são recíprocas? Introduza o endereço de uma página que existe em várias línguas. O programa recolhe as referências hreflang do head e do cabeçalho Link, verifica os códigos e a referência a si própria, obtém cada uma das outras versões linguísticas e verifica se aponta de volta, devolve 200, não tem noindex e tem um canonical para si própria. Não tem um site multilingue próprio? Use https://european-union.europa.eu/index_nl.
Para saber mais
- Google Search Central, Informar a Google sobre versões localizadas da sua página: https://developers.google.com/search/docs/specialty/international/localized-versions
- Google Search Central, Gerir sites multilingues e internacionais: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites
- Google Search Central, Consolidar URLs duplicados: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Códigos de língua ISO 639 (Library of Congress): https://www.loc.gov/standards/iso639-2/php/code_list.php
- Um site multilingue e o Google: endereços separados e hreflang
