/en/blog/... altında yaklaşık 3.000 yeni sayfa içeren bir sitemap güncellemesi yayınladım. Kısa süre sonra Yandex Webmaster’da beklemediğim bir desen gördüm: Yandex, /en öneki olmadan karşılık gelen /blog/... yollarını taramaya çalışıyordu.
Bu URL’ler doğrudan 404 dönseydi, var olmayan yollar üzerinde binlerce gereksiz crawl isteği oluşabilirdi. Neyse ki dil öneki olmayan rotalardan gerçek İngilizce URL’lere giden kalıcı 308 yönlendirmelerini daha önce kurmuştum.
Bu küçük savunmacı routing katmanı beklediğimden çok daha değerli çıktı.
Gerçekte ne gözlemledim
/en/blog/...yapısında yaklaşık 3.000 yeni sayfa içeren sitemap’i yayınladım.- Ardından Yandex Webmaster, Yandex’in karşılık gelen
/blog/...URL’lerini taramaya çalıştığını gösterdi. - Bu alternatif yollar zaten 308 yönlendirmeleriyle kapsanıyordu.
- İstekler 404 ile bitmek yerine hedeflenen
/en/blog/...URL’lerine gitti.
İlk yazımdaki bir ifadeyi düzeltmem gerekiyor: Yandex’in “sitemap’i yanlış parse ettiğini” kanıtlayamam. Sitemap güncellemesinden sonra beklenmedik yolları gördüm; fakat zamanlama tek başına iç nedeni kanıtlamaz. Arama motorları URL’leri farklı sinyallerden ve geçmiş kaynaklardan keşfedebilir. Daha güçlü kanıt olmadan doğru ifade yalnızca şudur: Yandex benim beklemediğim yolları taradı.
Bu ayrım önemli. Crawler’ın garip bir URL istemesi gözlemdir. Neden tam olarak o URL’yi seçtiğini açıklamak ayrı bir iddiadır.
308 yönlendirmeleri neden işe yaradı
Yönlendirme mantığım kısa yolu lokalize URL’nin kalıcı bir alias’ı gibi ele alıyordu:
/blog/example-post -> 308 -> /en/blog/example-postBöylece crawler beklenmedik URL’den gelse bile sunmak istediğim gerçek sayfaya ulaşıyordu.
308 Permanent Redirect, istek metodunu ve body’sini koruyan kalıcı bir HTTP yönlendirmesidir. Crawler’ların normal GET isteklerinde metodun korunması genellikle asıl konu değildir; benim durumumda önemli olan yönlendirmenin açıkça kalıcı olmasıydı. Yandex Webmaster’ın güncel dokümantasyonu hem 301 hem 308 kodlarını kalıcı yönlendirme olarak sınıflandırıyor.
Yandex Webmaster’ın yönlendirmelerle ilgili resmi dokümantasyonu.
Bu, SEO açısından 308’in otomatik olarak 301’den daha iyi olduğu anlamına gelmez. Ben zaten 308 kullanıyordum ve ihtiyacım olan işi yaptı: beklenmedik URL çıkmaz sokağa dönüşmedi.
Yönlendirme güvenlik ağıdır, sitemap düzeltmesi değildir
Yönlendirmeler etkileri sınırladı ama gereksiz crawl’ı iyi bir şey yapmadı. Her gereksiz redirect ek bir istek ve ek bir hop demektir. Fazla geniş kurallar, hatalı URL’lerin kaynağını araştırmayı bırakırsanız URL üretim hatalarını da gizleyebilir.
Sitemap’in kendisi eski veya yönlendiren URL’ler içeriyorsa doğru çözüm sitemap’i düzeltip final URL’leri yazmaktır. Redirectler eski, alternatif ya da yanlışlıkla keşfedilmiş yolları güvenli şekilde karşılamalı; özensiz URL verisini mazur göstermemelidir.
Benim sitemap’im zaten /en/blog/... kullanıyordu. 308’ler yalnızca crawler /blog/... üzerinden geldiğinde siteyi daha toleranslı hale getirdi.
Bugün neyi kontrol ederdim
- Gerçekte deploy edilmiş sitemap’i açmak. Sadece generator koduna değil, final dosyaya ve örnek URL’lere bakmak.
- Final response’ları test etmek. Indexlenmesi amaçlanan URL’ler gereksiz redirect zincirleri olmadan doğru sayfaya gitmeli.
- Öngörülebilir alternatif yolları test etmek. Eski veya öneksiz URL’nin kalıcı hedefi varsa mapping açık ve bire bir olmalı.
- Redirect zincirlerinden kaçınmak.
A -> B -> C,A -> C’den daha zor kontrol edilir. - Mümkünse crawler raporlarını sunucu verileriyle karşılaştırmak. Webmaster araçları faydalıdır ama URL’nin ilk nereden keşfedildiğini her zaman göstermez.
- Sadece crawl’dan ranking sonucu çıkarmamak. Crawling, indexing, ranking ve traffic ayrı aşamalardır.
curl -I https://example.com/blog/example-post
HTTP/2 308
location: https://example.com/en/blog/example-postBu sadece açıklayıcı bir örnek. Amaç kuralın çalıştığını varsaymak değil, tam status kodunu ve tam hedefi doğrulamaktır.
Neyi söyleyebilirim, neyi söyleyemem
Önceden ayarladığım 308’lerin beklenmedik /blog/... isteklerinin 404 ile bitmesini önlediğini ve onları hedef URL’lere gönderdiğini doğrulayabilirim.
Sebebin Yandex’in sitemap parser’ı olduğunu doğrulayamam. Ranking artışı, indexing iyileşmesi veya belirli miktarda “kurtarılmış” trafik de ölçmedim. Bunları iddia etmek elimdeki kanıtın ötesine geçer.
Bende kalan ders daha dar ve daha kullanışlı: URL mimarisi sistem sınırlarındaki öngörülebilir hataları tolere edebilmelidir. Temiz bir sitemap ilk savunma hattıdır. Kesin bir kalıcı redirect katmanı ikincisidir.
İkisi birlikte olduğunda, beklenmedik bir crawler yolu binlerce ölü URL’ye dönüşmeye çok daha az yatkın olur.