Doze endereços para um só artigo
Cada artigo deste blogue vive em doze endereços. Onze levam um prefixo de língua — /en/blog/…, /de/blog/… e mais nove — e o duodécimo não leva nenhum. Esse lê o cabeçalho Accept-Language do navegador e responde naquela das onze línguas que nele reconhece.
A 27 e a 28 de agosto, os robôs levaram 1.609 páginas do blogue deste sítio. Os leitores levaram 628.
O que as páginas já dizem umas às outras
As doze dizem o mesmo no cabeçalho, três coisas, e medi as três hoje em vez de acreditar no código.
O canonical de cada página aponta para ela própria. Onze linhas hreflang nomeiam as irmãs, e uma duodécima nomeia o endereço sem prefixo como x-default, porque esse não pertence a nenhuma língua em particular. Esse endereço responde com Vary: Accept-Language, Accept-Encoding, para que qualquer cache à frente saiba que o corpo depende de um cabeçalho do pedido.
A negociação funciona. O mesmo endereço com Accept-Language: de devolve uma página marcada lang="de", com ja uma japonesa, e com um código que ninguém usa, inglês. Doze pedidos alternando entre quatro línguas devolveram três vezes seguidas quatro corpos corretos, portanto a cache de páginas indexa pela língua e não apenas pelo caminho.
É exatamente o que a especificação pede: um grupo completo e recíproco em que cada membro se nomeia a si próprio e a todas as irmãs. É a disposição que permite a um motor de busca tratar doze endereços como um artigo em doze línguas em vez de doze artigos a concorrer entre si.
Não faz ninguém levar menos
Também não reduz as descargas, e o registo de acessos deixa pouca margem para interpretação.
O ClaudeBot fez 396 pedidos ao blogue sobre 36 artigos — exatamente 11,0 versões de língua por artigo, todas as línguas, todas as vezes. O bingbot ficou em 8,7 sobre 37 artigos, o PetalBot em 6,0, o Applebot em 4,3. O SemrushBot chegou a 1,8. O Googlebot fez 72 pedidos sobre 42 artigos, em média 1,5 versões por artigo, e é o único dos seis que se comporta como se a anotação lhe tivesse chegado.
Somados, os robôs tocaram 73 dos 76 artigos pelo menos uma vez, e 68 deles em mais do que uma língua. A média foi de 7,84 versões de língua por artigo, de onze possíveis.
Nada disto é uma infração. hreflang é uma pista sobre como as páginas se relacionam, dirigida à parte de um motor que decide que resultado mostrar. Não é uma instrução para a parte que decide o que descarregar. Um robô que nunca viu /uk/blog/… não tem como saber que é uma tradução antes de a pedir e de lhe ler o cabeçalho — a anotação só pode agir depois do pedido que teria podido poupar.
Quanto custa
Menos do que o parágrafo acima sugere. Esses 1.689 pedidos de robôs a páginas do blogue são 0,5 por cento dos 373.019 pedidos que este vhost serviu em dois dias, e 19,9 MB dos 4.363 MB que enviou. Uma página do blogue volta em cerca de um décimo de segundo, portanto toda a recolha onze vezes repetida custa uns oitenta segundos de processador por dia.
O sitemap custa um pouco mais do que eu esperava. Lista 3.136 endereços com 13.248 anotações de língua penduradas neles: 1,85 MB de XML, 35 KB depois de comprimido. É reconstruído no máximo de seis em seis horas, e por isso um artigo publicado à uma e dez aparece nele completo algumas horas mais tarde e não logo.
Nenhum destes números merece uma alteração. A única alavanca que reduziria a recolha seria não ter os endereços, e os endereços são a razão de ser.
Leitores e robôs querem coisas diferentes
Os mesmos dois dias, repartidos por língua, mostram dois hábitos bastante diferentes.
Os robôs repartem-se quase por igual: entre 5,5 e 10,5 por cento dos seus pedidos ao blogue foi para cada uma das onze versões com prefixo, mais 16 por cento para a que não o tem. Parece alguém a percorrer uma lista.
Os leitores não se repartem por igual. 38 por cento dos seus pedidos foram para o endereço sem prefixo e outros 18 por cento para /en/, portanto mais de metade chegou em inglês ou por negociação. O resto divide-se por dez línguas, a maior o alemão com 7 por cento, a menor o francês com 2.
Esses 44 por cento restantes são toda a razão pela qual os caminhos de língua existem. São também suficientemente pequenos para que fosse fácil demovermo-nos deles — que é o mesmo erro de ler a coluna dos robôs e concluir que as páginas são populares.
O que se generaliza
Uma pista correta não é uma instrução. Tudo o que está no cabeçalho destas páginas está correto, é recíproco e é verificável, e cinco em cada seis robôs pedem como se nada disso ali estivesse. A especificação descreve o que a anotação significa, não o que um programa concreto fará com ela.
A pergunta útil, portanto, nunca foi se a marcação está correta. Era quantas vezes cada um dos que descarregam vem de facto, e a isso só o registo pode responder — e depois de ter respondido, a conclusão honesta é que a recolha onze vezes repetida custa meio por cento e deve ser deixada em paz.