Tolv adresser för en och samma artikel
Varje inlägg på den här bloggen finns på tolv adresser. Elva har ett språkprefix — /en/blog/…, /de/blog/… och nio till — och den tolfte har inget prefix alls. Den läser webbläsarens Accept-Language-header och svarar på det av de elva språken som den känner igen.
Under 27 och 28 augusti hämtade sökrobotar 1 609 bloggsidor från den här webbplatsen. Läsare hämtade 628.
Vad sidorna redan berättar för varandra
Alla tolv säger samma tre saker i sin head, och jag kontrollerade alla tre i dag i stället för att lita på koden.
Den kanoniska länken på varje sida pekar på sidan själv. Elva hreflang rader namnger syskonversionerna på de andra språken, och en tolfte namnger den prefixlösa adressen som x-default, eftersom den adressen inte hör till något enskilt språk. Den prefixlösa adressen svarar med Vary: Accept-Language, Accept-Encoding, så att allt som cachar framför den vet att innehållet beror på en header i förfrågan.
Förhandlingen fungerar. Begär man samma URL med Accept-Language: de returneras en sida märkt lang="de", med ja en japansk, och med en kod som ingen använder, en engelsk. Tolv förfrågningar som växlade mellan fyra språk gav fyra korrekta svar tre gånger om, så sidcachen är nycklad på språket och inte bara på sökvägen.
Det här är vad specifikationen kräver: en komplett, ömsesidig grupp där varje medlem namnger sig själv och alla sina syskon. Det är det upplägg som låter en sökmotor behandla tolv adresser som en artikel på tolv språk i stället för tolv artiklar som konkurrerar med varandra.
Det får ingen att hämta mindre
Det minskar inte heller hämtandet, och åtkomstloggen säger det utan något större tolkningsutrymme.
ClaudeBot gjorde 396 bloggförfrågningar över 36 inlägg — exakt 11,0 språkversioner vardera, varje språk, varje gång. bingbot låg i snitt på 8,7 över 37 inlägg, PetalBot på 6,0, Applebot på 4,3. SemrushBot kom upp i 1,8. Googlebot gjorde 72 förfrågningar över 42 inlägg, i genomsnitt 1,5 språkversioner per inlägg, och är den enda av de sex som beter sig som om annoteringen har nått fram.
Räknat över alla sökrobotar berördes 73 av de 76 inläggen minst en gång, och 68 av dem på mer än ett språk. Genomsnittet var 7,84 språkversioner per inlägg av elva.
Inget av detta är en överträdelse. hreflang är en ledtråd om hur sidor hänger ihop, riktad till den del av en sökmotor som bestämmer vilket resultat som ska visas. Den är ingen instruktion till den del som bestämmer vad som ska laddas ner. En sökrobot som aldrig har sett /uk/blog/… kan inte veta att det är en översättning förrän den hämtar sidan och läser dess head — annoteringen kan bara få verkan efter den förfrågan som den kanske hade kunnat bespara.
Vad det kostar
Mindre än stycket ovan antyder. Lägger man bloggens översikts- och taggsidor till de 1 609 inläggssidorna skickade sökrobotarna 1 689 förfrågningar under /blog: 0,5 procent av de 373 019 förfrågningar som den här virtuella värden besvarade på två dagar, och 19,9 MB av de 4 363 MB den skickade. En bloggsida kommer tillbaka på ungefär en tiondels sekund, så hela den elvafaldiga genomsökningen kostar någonstans runt åttio sekunders processortid per dag.
Webbplatskartan kostar lite mer än jag hade väntat mig. Den listar 3 136 adresser med 13 248 annoteringar för alternativa språk: 1,85 MB XML, 35 KB komprimerat. Den byggs om högst var sjätte timme, och därför dyker ett inlägg som publiceras tio över ett på eftermiddagen upp komplett i den några timmar senare och inte direkt.
Inget i de siffrorna är värt att ändra. Den enda spak som skulle minska hämtandet är att inte ha adresserna, och adresserna är hela poängen.
Läsare och sökrobotar vill ha olika saker
Samma två dagar, uppdelade per språk, visar två helt olika vanor.
Sökrobotarna fördelar sig nästan jämnt: mellan 5,5 och 10,5 procent av deras bloggförfrågningar gick till var och en av de elva versionerna med prefix, plus 16 procent till den utan prefix. Det är mönstret hos något som betar av en lista.
Läsarna fördelar sig inte jämnt. 38 procent av deras förfrågningar gick till den prefixlösa adressen och ytterligare 18 procent till /en/, så mer än hälften kom antingen på engelska eller via förhandling. Resten fördelar sig på tio språk, störst är tyska med 7 procent, minst franska med 2 procent.
De återstående 44 procenten är hela anledningen till att språksökvägarna finns. De är också så få att det vore lätt att argumentera bort språksökvägarna — vilket är samma misstag som att läsa sökrobotkolumnen och dra slutsatsen att sidorna är populära.
Den allmänna lärdomen
En korrekt ledtråd är ingen instruktion. Allt i dessa sidors head är rätt, ömsesidigt och kontrollerbart, och fem av sex sökrobotar hämtar som om inget av det fanns där. Specifikationen beskriver vad annoteringen betyder, inte vad ett visst program kommer att göra när det ser den.
Den användbara frågan var alltså aldrig om märkningen är korrekt. Den var hur många gånger varje hämtare faktiskt kommer, och det är en fråga som bara loggen kan besvara — och när den väl är besvarad är den ärliga slutsatsen att den elvafaldiga genomsökningen kostar en halv procent och ska lämnas i fred.