Guia · Internacionalização
hreflang: o cluster completo, em cada página
O hreflang serve uma só coisa: dizer a um motor que vários endereços tratam o mesmo assunto em línguas diferentes, e qual mostrar a quem. É uma declaração coletiva: pertence ao grupo inteiro, página após página. Vale plenamente a partir do momento em que cada página do grupo apresenta a lista completa. Aprendemo-lo no nosso próprio site.
Quatro regras, e são suficientes
O hreflang lê-se de forma clara, regra a regra. As quatro regras abaixo verificam-se a partir da página servida, apenas com base no que ela apresenta, e a quarta é quase sempre a que falta colocar.
01
A reciprocidade
Se a página A declara a página B, a página B deve declarar a página A. O motor retém uma declaração quando os dois lados a apresentam: a confirmação mútua é o que lhe dá força, e é nela que ele se apoia.
Ver isto: Tome duas versões de uma mesma página e leia as suas declarações lado a lado. Cada uma deve citar a outra, com o endereço exato servido pela outra — mesmo protocolo, mesmo domínio, mesma barra final.
Colocá-lo: Gerar as declarações a partir de uma única e mesma lista de versões, de um só gesto para todas as páginas em vez de à mão. Uma lista única torna a reciprocidade automática.
02
Cada página declara-se a si mesma
O grupo lê-se do ponto de vista de qualquer uma das suas páginas. Uma página que se cita a si mesma para além das suas traduções torna o grupo completo, visto a partir de todas as outras.
Ver isto: Na versão francesa, procure a declaração hreflang="fr". Deve estar lá, e apontar para a página que está a ler neste momento.
Colocá-lo: A língua da página faz parte do cluster tal como as outras. É a declaração que mais frequentemente se esquece, porque parece redundante — e no entanto pesa exatamente tanto como as outras.
03
x-default
O x-default designa a versão servida ao visitante cuja língua não consta das línguas declaradas. É o recurso do grupo: ocupa uma declaração de pleno direito e aponta para uma das versões existentes.
Ver isto: Conte: uma declaração por língua servida, mais uma para x-default. No nosso site, oito línguas mais x-default dão nove declarações por página.
Colocá-lo: Escolher uma versão de recurso e designá-la em todo o lado da mesma maneira. O x-default coloca-se em cada página do grupo, exatamente como as outras.
04
O cluster parcial — o erro mais frequente
Este é o nosso próprio incidente, registado em 1 de setembro de 2026 na nossa Search Console: páginas «rastreadas, atualmente não indexadas», num site tecnicamente saudável em tudo o resto. Cada página declarava apenas uma parte das versões do grupo. A página neerlandesa anunciava fr e nl; a página francesa, fr e en. Seis línguas de oito ficavam sem ligação à malha.
Ver isto: Os motores mantêm-se silenciosos quanto a isto: é a contagem que fala. Conte as etiquetas de uma página traduzida, depois compare essa lista com a de outra página do grupo — as duas listas devem ser idênticas.
Colocá-lo: O cluster COMPLETO em CADA página, francês incluído — o francês, as outras sete línguas, depois x-default. A operação é idempotente: as declarações antigas são retiradas antes de as novas serem colocadas, pelo que uma republicação deixa sempre uma única geração de etiquetas no lugar.
O que declara uma página deste site
O site é servido em oito idiomas. Cada uma das suas páginas leva, portanto, a mesma lista, na mesma ordem, qualquer que seja o idioma que se está a ler — mais o x-default, que designa a versão apresentada ao visitante cujo idioma fica fora dos oito declarados.
- fr Português
- en Inglês
- es Espanhol
- de Alemão
- it Italiano
- pt Português
- nl Neerlandês
- pl Polaco
- x-default Recurso alternativo
Nove declarações por página, idênticas de uma versão para outra. A página francesa está em igualdade com todas as outras: leva a mesma lista que a polaca.
Onde colocar as declarações
São válidos três locais, e basta apenas um:
- No <head> da página. Um elemento por versão, cada um com o seu idioma e o seu endereço absoluto. É o local mais simples de verificar: a declaração lê-se na resposta HTML.
- No cabeçalho HTTP. O único local aberto a um documento servido fora de HTML — um PDF, por exemplo.
- No mapa do site. Cada entrada de URL leva as versões do grupo em xhtml:link. A vantagem é o volume: o grupo inteiro declara-se de uma só vez, num ficheiro que controla.
Colocamo-las no <head> E no mapa do site. Os dois locais leem-se de forma independente: se um for lido antes do outro, o grupo já é conhecido.
Como verificar
A verificação resume-se a três gestos, e o primeiro é uma contagem. Peça a página servida, conte as suas declarações hreflang e compare esse número com o número de idiomas que serve, mais um para o x-default. Uma diferença de uma única unidade significa um cluster parcial.
Repita a contagem numa segunda versão da mesma página: as duas listas devem ser idênticas, endereço a endereço. Por fim, siga um endereço declarado e verifique se este devolve a declaração inversa. Estes três gestos cabem apenas na resposta HTML — o seu navegador é suficiente, tal como já está instalado.
Desde o nosso incidente, a nossa guarda de publicação só deixa sair uma página quando esta declara exatamente tantas tags hreflang quantos os idiomas servidos, mais o x-default. O controlo ocorre no momento da publicação: o que vai para o ar leva o cluster completo.
Contar as suas declarações a partir do seu navegador
O Verificador lê o seu endereço e devolve-lhe o estado dos seus sinais, gratuitamente, em cerca de dez segundos. O seu site continua exatamente seu: tudo se passa na leitura, do nosso lado. O Audit SEO Records vai mais longe: lê o seu mapa inteiro, página a página, e entrega-lhe o relatório datado. E se quiser que os sinais sejam corrigidos no momento em que a página é servida, o SEO Records fá-lo a partir de 199 € por ano.