FreeToGenerate.com

Cole as alternativas que você tem, ou digite, e veja o que cada código realmente diz antes de um buscador ler. Nada é enviado.

Cole as tags link que você já tem, ou escreva uma linha por versão com o código e a URL. Os dois jeitos funcionam.

Informe uma URL e a checagem confirma que o conjunto inclui a própria página, o que o Google exige.

Experimente

O que esses códigos realmente dizem

1 erros · 0 avisos · 0 notas

CódigoLê-se comoURL
enEnglishhttps://example.com/
brBretontambém é o código de país de Brazilhttps://example.com/br/
seNorthern Samitambém é o código de país de Swedenhttps://example.com/se/
jpnão é código de idiomaErro jp é o código de país de Japan e não é um código de idioma, então isto será descartado. Se você quis dizer o país, ele vem depois de um idioma: pt-JP ou en-JP.https://example.com/jp/

Coloque isto em todas as páginas do conjunto

O mesmo bloco vai em todas, sem alterar nada. Como ele lista todas as URLs inclusive a dela mesma, cada página acaba apontando para si e para as outras, que é exatamente o que a regra dos links recíprocos pede.

<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="br" href="https://example.com/br/" />
<link rel="alternate" hreflang="se" href="https://example.com/se/" />
<link rel="alternate" hreflang="jp" href="https://example.com/jp/" />

Também disponível em: English · Español · Français · العربية

Gerador e verificador de hreflang

Gere as tags link de um conjunto de páginas traduzidas e confira o conjunto que você já tem contra as regras que os buscadores aplicam de fato.

O que é uma tag hreflang

Quando uma página existe em vários idiomas, cada versão precisa conseguir dizer isso. É essa a tag hreflang: um elemento link que nomeia um idioma e a URL da versão escrita nele. Com o conjunto inteiro em todas as versões, um buscador consegue mostrar a página em português a quem lê português, em vez de adivinhar pelo texto.

O valor é um código de idioma e, opcionalmente, uma região depois. O Google diz sem rodeios: o primeiro código é o idioma no formato ISO 639-1, seguido de um segundo código opcional para a região no formato ISO 3166-1 Alpha 2. Então pt é português em qualquer lugar, pt-BR é português para quem está no Brasil e pt-PT é português para quem está em Portugal. Existe ainda um valor reservado, x-default, para a versão exibida quando nenhuma outra serve.

A regra que quase todo mundo perde é a frase seguinte da mesma documentação: não dá para usar o código de país sozinho. A primeira posição é sempre um idioma. Isso parece formalidade e é o erro mais caro do SEO internacional, por um motivo que dá para medir.

Como usar

  1. Cole o que você tem, ou digite. Tags link funcionam do jeito que estão, em qualquer ordem de atributos. Uma lista simples com uma linha por versão, código e URL, também funciona, na ordem que preferir.
  2. Leia a coluna do meio. Ela diz o que cada código significa, não se deu para interpretar. É ali que um código escrito como país aparece sendo o idioma de outra gente.
  3. Copie o bloco gerado para todas as páginas do conjunto. O mesmo bloco, sem mexer, em todas. Ele lista todas as URLs inclusive a dela mesma, que é justamente o que a autorreferência e os links recíprocos pedem.

O erro que nunca chega aos seus relatórios

Colocar um código de país onde vai um idioma é o erro clássico de hreflang, e quase todo texto trata isso como um erro só. São dois, e só um deles alguém te avisa.

Pegue os 249 códigos de país da ISO 3166-1 e pergunte quais também são códigos de idioma ISO 639-1 válidos. Para 140 a resposta é não: hreflang com jp, cn ou us não é idioma nenhum, então é descartado e o Search Console vai dizer que a tag é inválida. Essa é a metade barulhenta, e acaba sendo corrigida.

Os outros 109 são códigos de idioma. Eles são interpretados. Nada os rejeita, nada os denuncia, e em 75 desses casos o idioma nomeado não tem nada a ver com o país que o autor tinha em mente. Uma página marcada br não é brasileira, é bretã, uma língua do oeste da França. Marcada ca não é canadense, é catalã. Marcada se não é sueca e sim sami setentrional; marcada sv é sueca de verdade, o que é uma pena se você queria El Salvador. Taiwan fica com tw, que é twi, falado em Gana. Chipre fica com cy, que é galês.

Cada uma dessas é uma anotação válida para um público real, então as tags funcionam perfeitamente. Só que descrevem um conjunto de páginas que ninguém pretendia alcançar, e não existe estado de erro para você notar. A metade desse erro que dá para achar é a metade inofensiva.

É para isso que serve a coluna do meio da tabela acima. Esta ferramenta não acusa você de nada quando vê um código sozinho, porque não tem como saber o que você quis dizer: ar é árabe mesmo, e este site publica nesse idioma. Ela apenas diz qual idioma você escreveu, ao lado da URL em que escreveu, e deixa a percepção para a única parte que sabe a resposta.

Limites honestos e como isto foi conferido

Isto roda no seu navegador, então não consegue buscar as outras páginas do seu conjunto para confirmar que elas carregam tags equivalentes. Isso é uma leitura entre origens diferentes e nenhuma ferramenta de cliente pode prometer isso com honestidade. O que ela faz é tirar a necessidade: como o bloco gerado lista todas as URLs inclusive a da própria página, colá-lo sem alterações em todas cumpre as duas regras em que mais se tropeça. O Google é categórico sobre o que acontece quando elas falham. Cada versão precisa listar a si mesma além de todas as outras, e se duas páginas não apontarem uma para a outra as tags são ignoradas.

Duas coisas de propósito não são tratadas como erro. Uma são as maiúsculas: o BCP 47 faz a caixa das subtags não significar nada, então en-us funciona igualzinho a en-US, e ferramentas que marcam isso estão inventando uma regra. Aqui aparece como uma nota sobre a grafia usual, nada além. A outra é uma subtag de escrita de quatro letras como Hant, aceita pelo formato e não conferida contra registro nenhum, porque o formato documentado pelo Google é um idioma e uma região opcional.

As tabelas de idiomas e países não foram digitadas aqui. Elas são geradas a partir dos mesmos dois conjuntos de dados por trás das páginas de códigos ISO 639 e ISO 3166 deste site, então o que este verificador aceita e o que aquelas páginas mostram não têm como divergir. O 75 é uma medição sobre eles: para cada coincidência o CLDR é consultado tanto sobre se aquele país fala aquele idioma quanto sobre se aquele idioma pertence àquele país, e só conta quando as duas respostas são não. Com um teste só sobram três a mais, porque o fijiano é falado mesmo em Fiji, o marshalês nas Ilhas Marshall e o norueguês na Noruega. O motor carrega 761 verificações, entre elas uma varredura confirmando que nenhuma das 109 coincidências levanta erro nem aviso.

Por que é grátis?

Nada aqui precisa de servidor. É uma consulta a duas tabelas e um punhado de regras, tudo rodando na aba que você já tem aberta, então não há custo para repassar nem conta para criar.

O que você colar não é enviado, guardado nem registrado. URLs ainda não publicadas entram numa ferramenta dessas o tempo todo, e isso merece ser dito em vez de presumido.