Tek bir yazı için on iki URL
Bu blogdaki her yazı on iki adreste yer alıyor. On biri bir dil öneki taşıyor — /en/blog/…, /de/blog/… ve dokuz tane daha — on ikincisinde ise hiç önek yok. Bu adres tarayıcının Accept-Language başlığını okuyor ve on bir dilden hangisini tanırsa o dilde yanıt veriyor.
27 ve 28 Ağustos'ta botlar bu siteden 1.609 blog sayfası çekti. Okurlar ise 628 sayfa açtı.
Sayfaların birbirine zaten söyledikleri
On ikisinin de head bölümünde aynı üç şey yazıyor; koda güvenmek yerine üçünü de bugün tek tek kontrol ettim.
Her sayfanın canonical bağlantısı sayfanın kendisini gösteriyor. On bir hreflang satırı kardeş dil sürümlerini adlandırıyor; on ikincisi ise öneksiz adresi şöyle işaretliyor: x-default, çünkü bu adres tek bir dile ait değil. Öneksiz adresin yanıtında şu başlık var: Vary: Accept-Language, Accept-Encoding, böylece önünde duran her önbellek, gövdenin bir istek başlığına bağlı olduğunu biliyor.
Dil müzakeresi çalışıyor. Aynı URL Accept-Language: de ile istendiğinde dönen sayfa şöyle işaretli: lang="de"; dil kodu ja olduğunda Japonca bir sayfa geliyor, kimsenin kullanmadığı bir kodda ise İngilizce. Dört dil arasında sırayla gönderilen on iki istek dört doğru gövdeyi üçer kez döndürdü; yani sayfa önbelleği yalnızca yola göre değil, dile göre de anahtarlanıyor.
Spesifikasyonun istediği de tam olarak bu: her üyesinin kendisini ve tüm kardeşlerini adlandırdığı, eksiksiz ve karşılıklı bir grup. Bir arama motorunun on iki adresi, birbiriyle yarışan on iki yazı yerine on iki dilde tek bir yazı olarak görmesini sağlayan düzen budur.
Kimse bu yüzden daha az çekmiyor
Çekme miktarını da azaltmıyor; erişim günlüğü bunu yoruma pek yer bırakmadan söylüyor.
ClaudeBot 36 yazıya 396 blog isteği gönderdi — her yazı için tam 11,0 dil sürümü, her dil, her seferinde. bingbot 37 yazıda ortalama 8,7 sürüm çekti, PetalBot 6,0, Applebot 4,3. SemrushBot 1,8 sürümde kaldı. Googlebot 42 yazıya 72 istek gönderdi, yani yazı başına ortalama 1,5 dil sürümü; altı bottan, işaretleme kendisine ulaşmış gibi davranan tek bot da o.
Tüm botlar birlikte ele alındığında 76 yazının 73'üne en az bir kez dokunuldu, bunların 68'ine birden fazla dilde. Ortalama, on bir sürüm üzerinden yazı başına 7,84 dil sürümüydü.
Bunların hiçbiri bir ihlal değil. hreflang sayfaların birbiriyle nasıl ilişkili olduğuna dair bir ipucudur ve arama motorunun hangi sonucu göstereceğine karar veren kısmına yöneliktir. Neyin indirileceğine karar veren kısma verilmiş bir talimat değildir. Bir bot, daha önce hiç görmediği /uk/blog/… için, onu çekip head bölümünü okuyana kadar bunun bir çeviri olduğunu bilemez — işaretleme ancak, belki de gereksiz kılacağı istek yapıldıktan sonra devreye girebilir.
Neye mal oluyor
Yukarıdaki paragrafın düşündürdüğünden daha az. 1.609 yazı sayfasına blogun genel bakış ve etiket sayfalarını da eklerseniz, botların /blog altına gönderdiği istek sayısı 1.689 ediyor: bu sanal sunucunun iki günde yanıtladığı 373.019 isteğin %0,5'i ve gönderdiği toplam 4.363 MB verinin 19,9 MB'lık kısmı. Bir blog sayfası yaklaşık saniyenin onda birinde dönüyor; dolayısıyla on bir katlı bot trafiğinin tamamı günde aşağı yukarı seksen saniyelik işlemci zamanına mal oluyor.
Site haritası beklediğimden biraz daha pahalı. İçinde 3.136 adres ve bunlara eklenmiş 13.248 alternatif dil işaretlemesi var: 1,85 MB XML, sıkıştırıldığında 35 KB. En fazla altı saatte bir yeniden oluşturuluyor; öğleden sonra saat biri on geçe yayımlanan bir yazının haritada hemen değil de birkaç saat sonra eksiksiz görünmesinin nedeni bu.
Bu rakamlarda değiştirmeye değer bir şey yok. Çekmeyi azaltacak tek kaldıraç o adreslerin hiç olmaması; oysa işin özü de zaten o adresler.
Okurlar ve botlar farklı şeyler istiyor
Aynı iki gün, dile göre ayrıldığında oldukça farklı iki alışkanlık ortaya koyuyor.
Botlar neredeyse eşit dağılıyor: blog isteklerinin %5,5 ile %10,5 arası on bir önekli sürümün her birine, %16'sı da öneksiz sürüme gitti. Bu, bir listeyi sırayla dolaşan bir şeyin görüntüsü.
Okurlar eşit dağılmıyor. İsteklerinin %38'i öneksiz adrese gitti, %18'i de şu adrese: /en/, yani yarıdan fazlası ya İngilizce ya da müzakere yoluyla geldi. Geri kalanı on dile bölünüyor; en büyüğü %7 ile Almanca, en küçüğü %2 ile Fransızca.
Geri kalan bu %44, dil yollarının var olmasının tek nedeni. Aynı zamanda, dil yollarını gereksiz ilan etmeyi kolaylaştıracak kadar küçük — ki bu, bot sütununa bakıp sayfaların popüler olduğu sonucuna varmakla aynı hata olur.
Buradan çıkan ders
Doğru bir ipucu bir talimat değildir. Bu sayfaların head bölümündeki her şey doğru, karşılıklı ve doğrulanabilir; yine de altı bottan beşi sanki bunların hiçbiri yokmuş gibi çekiyor. Spesifikasyon, işaretlemenin ne anlama geldiğini anlatır; herhangi bir programın onu gördüğünde ne yapacağını değil.
Dolayısıyla asıl yararlı soru hiçbir zaman işaretlemenin doğru olup olmadığı değildi. Her botun gerçekte kaç kez geldiğiydi; bu, yalnızca günlüğün yanıtlayabileceği bir soru — ve yanıtı alınınca dürüst sonuç şu: on bir katlı bot trafiği yüzde yarıma mal oluyor ve olduğu gibi bırakılmalı.