Quatro regras que mantêm o conjunto interpretável
Hreflang é um cluster de anotações, portanto, erros de um lado podem afetar a forma como o Google interpreta o relacionamento. O Google afirma que links de retorno ausentes ou anotações inválidas podem ser ignorados ou interpretados incorretamente; não promete que um erro sempre anule todo o cluster.
- Completo: cada versão do grupo lista todas as outras.
- Mútuo: se X apontar para Y, Y deverá apontar de volta para X. Links de retorno ausentes podem fazer com que as anotações sejam ignoradas ou interpretadas incorretamente.
- Autorreferente: cada página se lista junto das demais.
- Válido: os códigos precisam ler como códigos reais de idioma e região.
A regra de mutualidade é aquela que pega as equipes, porque hreflang descreve relacionamentos entre páginas em vez de uma propriedade de uma página isoladamente. Distribua os links de retorno correspondentes para que cada relacionamento publicado seja concluído quando o Google rastrear qualquer um dos lados.
Onde colocar as anotações
Há três colocações disponíveis e o efeito delas é equivalente. Escolha uma e use em todo lugar — misturá-las pelo site é como os conjuntos acabam declarados pela metade.
| Método | Melhor para | Fique de olho em |
|---|---|---|
| Elementos link em HTML | Sites pequenos e médios | O peso da página quando há muitas versões |
| Cabeçalhos HTTP | PDFs e outros arquivos não HTML | Limites de tamanho de cabeçalho em conjuntos grandes |
| Entradas de sitemap | Sites grandes, muitos idiomas | Mantê-las em sincronia com as próprias páginas |
<link rel="alternate" hreflang="en" href="https://example.com/guide/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/guide/" />
<link rel="alternate" hreflang="pt-br" href="https://example.com/pt-br/guide/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/guide/" /> Repare que a página em inglês do exemplo se lista. Essa é a autorreferência, e a ausência dela é de longe o defeito mais comum em implementações no resto cuidadosas — porque parece redundante e, para quem estiver arrumando o template, tem cara de erro.
Códigos, e os que não existem
O idioma segue a ISO 639-1. Pode ser seguido opcionalmente de um hífen e de uma região ISO 3166-1 Alpha 2. Região sozinha nunca é válida: não há como dizer «esta página é para o Canadá» sem dizer em que idioma ela está.
| Código | Veredito | Por quê |
|---|---|---|
| pt | Válido | Só idioma — português, qualquer região |
| pt-BR | Válido | Português como escrito para o Brasil |
| BR | Inválido | Região sem idioma |
| uk | Válido, mas não é o Reino Unido | uk é ucraniano; o Reino Unido é GB |
| eu | Inválido como região | A UE não é um código de país |
| en-UK | Inválido | O código de país do Reino Unido é GB |
Para que serve o x-default
O x-default recolhe os idiomas que você não listou. É o recurso para um visitante cujo idioma não bate com nenhuma das suas versões, e o lugar natural dele é uma página seletora ou uma home que roteia os visitantes sozinha.
Não é jeito de nomear uma versão principal. Apontar o x-default para sua página em inglês porque inglês soa como padrão diz ao buscador que um visitante japonês ou turco sem correspondência deve receber inglês. Pode ser verdade, e vale decidir isso de propósito, não por hábito.
Hreflang e canônica são trabalhos diferentes
Esses dois se embolam mais do que qualquer outra dupla do SEO técnico, e o modo de falha é grave. Uma canônica diz «indexe esta outra URL no meu lugar». O hreflang diz «esta outra URL é o mesmo conteúdo para outro público».
Aponte a canônica da sua página alemã para a inglesa e você terá dito ao buscador que a alemã não deve ser indexada de jeito nenhum — o que a tira dos resultados e, ao mesmo tempo, quebra o conjunto hreflang que a referenciava. Cada página localizada deveria canonizar para si mesma e descrever as irmãs com hreflang.