Tizenkét URL egyetlen cikkhez
A blog minden bejegyzése tizenkét címen érhető el. Tizenegy nyelvi előtaggal kezdődik — /en/blog/…, /de/blog/… és még kilenc —, a tizenkettediknek pedig egyáltalán nincs előtagja. Ez utóbbi a böngésző Accept-Language fejlécét olvassa ki, és a tizenegy nyelv közül azon válaszol, amelyiket felismeri.
Augusztus 27-én és 28-án a robotok 1 609 blogoldalt kértek le erről a weboldalról. Az olvasók 628-at.
Amit az oldalak már most közölnek egymással
Mind a tizenkettő ugyanazt a három dolgot közli a fejrészében, és ma mindhármat ellenőriztem, ahelyett hogy a kódra hagyatkoztam volna.
Minden oldal kanonikus linkje önmagára mutat. Tizenegy hreflang sor nevezi meg a testvér nyelvi változatokat, egy tizenkettedik pedig az előtag nélküli címhez rendeli ezt az értéket: x-default, mert ez a cím egyetlen nyelvhez sem tartozik. Az előtag nélküli cím válaszában ez a fejléc szerepel: Vary: Accept-Language, Accept-Encoding, így bármely előtte működő gyorsítótár tudja, hogy a tartalom egy kérésfejléctől függ.
A nyelvi egyeztetés működik. Ha ugyanazt az URL-t Accept-Language: de fejléccel kérjük le, a kapott oldal jelölése lang="de", míg ja esetén japán oldal jön, egy senki által nem használt kóddal pedig angol. Tizenkét kérés négy nyelv között váltakozva háromszor egymás után négy helyes tartalmat adott vissza, vagyis az oldalgyorsítótár kulcsa a nyelvet is tartalmazza, nem csak az útvonalat.
Pontosan ezt kéri a specifikáció: egy teljes, kölcsönös csoportot, amelyben minden tag megnevezi önmagát és az összes testvérét. Ez az elrendezés teszi lehetővé, hogy egy keresőmotor a tizenkét címet egyetlen cikk tizenkét nyelvű változataként kezelje, ne pedig tizenkét egymással versengő cikként.
Ettől senki sem kér le kevesebbet
A lekérések számát sem csökkenti, és ezt a hozzáférési napló úgy mondja ki, hogy nem sok teret hagy az értelmezésnek.
A ClaudeBot 396 blogkérést küldött 36 bejegyzésre — bejegyzésenként pontosan 11,0 nyelvi változatot, minden nyelvet, minden alkalommal. A bingbot 37 bejegyzésen átlagosan 8,7 változatot kért le, a PetalBot 6,0-t, az Applebot 4,3-at. A SemrushBot 1,8-at. A Googlebot 72 kérést küldött 42 bejegyzésre, ez bejegyzésenként átlagosan 1,5 nyelvi változat, és a hat közül egyedül ő viselkedik úgy, mintha a jelölés eljutott volna hozzá.
Az összes robotot együtt nézve a 76 bejegyzésből 73-at legalább egyszer lekértek, és ezek közül 68-at több nyelven is. Az átlag bejegyzésenként 7,84 nyelvi változat volt a tizenegyből.
Mindez nem szabálysértés. A hreflang arról ad jelzést, hogyan kapcsolódnak egymáshoz az oldalak, és a keresőmotornak annak a részének szól, amely eldönti, melyik találatot mutassa. Nem utasítás annak a résznek, amely arról dönt, mit töltsön le. Ha egy robot számára /uk/blog/… még ismeretlen, semmiből sem tudhatja, hogy fordításról van szó, amíg le nem kéri és el nem olvassa a fejrészét — a jelölés csak azután hathat, hogy megtörtént a kérés, amelyet megspórolhatott volna.
Mibe kerül mindez
Kevesebbe, mint amit a fenti bekezdés sejtet. Ha az 1 609 bejegyzésoldalhoz hozzáadjuk a blog áttekintő és címkeoldalait, a robotok 1 689 kérést küldtek a /blog alá: ez 0,5 százaléka annak a 373 019 kérésnek, amelyet ez a virtuális host két nap alatt kiszolgált, és 19,9 MB az általa elküldött 4 363 MB-ból. Egy blogoldal körülbelül egytized másodperc alatt érkezik vissza, így az egész tizenegyszeres bejárás naponta nagyjából nyolcvan másodperc processzoridőbe kerül.
Az oldaltérkép valamivel többe kerül, mint vártam. 3 136 címet sorol fel, és ezekhez 13 248 más nyelvi változatra utaló jelölés tartozik: 1,85 MB XML, tömörítve 35 KB. Legfeljebb hatóránként épül újra, ezért egy délután egy óra tízkor közzétett bejegyzés csak néhány órával később jelenik meg benne teljesen, nem azonnal.
Ezekben a számokban semmi sem indokol változtatást. Az egyetlen eszköz, amely csökkentené a lekéréseket, az lenne, ha a címek nem léteznének, pedig éppen a címek a lényeg.
Az olvasók és a robotok mást akarnak
Ugyanez a két nap nyelvek szerint bontva két egészen eltérő szokást mutat.
A robotok szinte egyenletesen oszlanak el: blogkéréseik 5,5 és 10,5 százalék közötti része jutott a tizenegy előtagos változat mindegyikére, és további 16 százalék az előtag nélkülire. Ez olyasminek a mintázata, ami egy listán halad végig.
Az olvasók nem oszlanak el egyenletesen. Kéréseik 38 százaléka az előtag nélküli címre érkezett, további 18 százalék pedig ide: /en/, így több mint a felük vagy angolul, vagy nyelvi egyeztetéssel érkezett. A többi tíz nyelv között oszlik meg, a legnagyobb a német 7 százalékkal, a legkisebb a francia 2 százalékkal.
Ez a maradék 44 százalék az egyetlen oka annak, hogy a nyelvi útvonalak léteznek. Ugyanakkor elég kicsi ahhoz, hogy a nyelvi útvonalakat könnyű legyen elvitatni — ami ugyanaz a hiba, mint a robotok oszlopát olvasva arra jutni, hogy az oldalak népszerűek.
Ami ebből általánosítható
Egy helyes jelzés nem utasítás. Ezeknek az oldalaknak a fejrészében minden helyes, kölcsönös és ellenőrizhető, és a hat robotból öt mégis úgy kér le, mintha semmi sem lenne ott. A specifikáció azt írja le, mit jelent a jelölés, nem azt, hogy egy adott program mit tesz, amikor találkozik vele.
A hasznos kérdés tehát sosem az volt, hogy helyes-e a jelölés. Hanem az, hogy az egyes lekérők valójában hányszor jönnek, és erre csak a napló tud válaszolni — a válasz birtokában pedig az őszinte következtetés az, hogy a tizenegyszeres bejárás fél százalékba kerül, és békén kell hagyni.