
Kimse zincir kurmaz, zincir birikir
Bir mağazanın basılı kataloğuna 2018'de yazılmış bir ürün adresini düşünün: http://magaza.com/urun/kahve-degirmeni. O adres bugün de çalışıyor. Ama çalışma biçimi değişti.
Aradan geçen sürede dört ayrı karar alındı. Sertifika alındı ve tüm http istekleri https tarafına gönderildi. Site içinde adres tutarsızlığı görülünce çıplak alan adı www sürümüne bağlandı. Kategori yapısı sadeleştirilirken /urun/ öneki kaldırıldı. En son, ürün başka bir varyantla birleştirilince eski slug yenisine yönlendirildi. Dört karar, dört kural, dört farklı yıl.
Kataloğa bakıp o adresi tarayıcıya yazan kişi bugün içeriğe ulaşmadan önce dört ayrı sunucu cevabı alır. Dört kuralın hiçbiri yanlış değildi; her biri yazıldığı gün doğru işi yaptı. Kimse oturup zincir kurmadı. Zincir, doğru kararların üst üste binmesinden arta kalan tortu.
Teknik tanımı yalın: yönlendirme zinciri, bir adresin son hedefe tek adımda değil araya giren bir ya da birden fazla adres üzerinden ulaşmasıdır. A adresini isteyen istemci önce B'ye, oradan C'ye gönderilir ve içeriğin ilk baytı ancak üçüncü istekte gelir. Zincirin görünmez olmasının nedeni de burada: kurallar tek bir ekranda durmaz. Biri sunucu yapılandırmasında, biri CDN katmanında, biri CMS eklentisinde, biri uygulama kodunda yaşar. Hiçbir panel size dördünü aynı anda göstermez.
Zincir ile döngü aynı sorun değildir
İkisi aynı mekanizmadan doğar ama sonuçları arasında kategori farkı vardır.
Zincir sonlanır. Dizinin ucunda içerik döndüren bir adres bulunur, sayfa açılır, sadece geç açılır. Zincir bir performans ve bakım sorunudur.
Döngü kapanmaz. A adresi B'ye, B de A'ya gönderir. Hiçbir adım içerik döndürmez. Tarayıcı belirli sayıda denemeden sonra vazgeçer ve kullanıcıya ERR_TOO_MANY_REDIRECTS gösterir. Sayfa kimse için açılmaz: ne ziyaretçi için, ne bot için. Döngü bir erişilebilirlik arızasıdır.
Döngüler tipik olarak iki kuralın birbiriyle çekişmesinden doğar. Bir katman www sürümünü çıplak alan adına gönderirken başka bir katman çıplak alan adını www sürümüne gönderiyorsa döngü kaçınılmazdır. Aynı çekişme protokol tarafında da yaşanır: CDN isteği https tarafına zorlar, arkadaki uygulama bağlantıyı http sanıp yeniden yönlendirir. Sondaki eğik çizgi kuralları da klasik bir döngü kaynağıdır; bir kural adresin sonuna eğik çizgi ekler, diğeri siler, ikisi sonsuza kadar birbirini düzeltir.
Pratik ayrım şu: yavaşlık zincirdir, hiç açılmama döngüdür. Döngü aynı gün müdahale ister, zincir planlı bakım işidir.
Googlebot bir zinciri nereye kadar izler?
Google'ın tarayıcıları varsayılan olarak en fazla 10 yönlendirme atlaması izler. Googlebot genel web içeriğini tararken genellikle bu sınırla çalışır, ancak Google'ın farklı ürünlerine ait tarayıcılar farklı sınırlara sahip olabilir. Zincirdeki ara adreslerden alınan içerik yok sayılır, işlenen şey nihai hedef adresin içeriğidir.
Test yaparken çoğu kişinin gözden kaçırdığı bir ayrıntı var: Google'ın denetleme araçları yönlendirmeleri izlemez. Yani Search Console'un URL denetleme aracına yönlendirilen bir adres verdiğinizde aracın davranışı Googlebot'un tarama davranışıyla birebir aynı değildir. Zincirin sonunu görmek istiyorsanız denetleme aracının verdiği cevabı tek kanıt saymayın.
Yönlendirmenin türü sonucu doğrudan değiştirir. Kalıcı yönlendirmede arama sonuçlarında yeni hedef gösterilir ve yönlendirme, hedefin standart adres olması yönünde bir sinyal olarak kullanılır; 301 bu yönde güçlü, 302 zayıf sinyal taşır. Geçici yönlendirmede ise arama sonuçlarında kaynak sayfa gösterilmeye devam eder. Bir adresi yönlendirdiğinizde Google hem kaynağı hem hedefi izler, ikisinden biri standart adres olur, diğeri onun alternatif adına dönüşür. Bu yüzden zincirin sonundaki sayfanın kendine işaret eden canonical kurulumu ile yönlendirme kuralının aynı adresi işaret etmesi gerekir; ikisi çelişirse Google'a birbirini iptal eden iki sinyal göndermiş olursunuz. Kalıcı yönlendirmenin ne taşıdığı ve kopmuş bağlantıları kurtarmak için nasıl kullanıldığı ayrı bir konu, o tarafın ayrıntısı kırık backlink ve yönlendirme yazısında duruyor.
10 sayısını bir hedef gibi okumamak gerekir, o bir tavandır. Sekiz atlamalı bir zincir bugün sınırın altında kalır, ama tek bir yeni taşıma katmanı onu dokuza, bir sonraki de ona çıkarır. Sınıra yaklaşmış zincirler, kimse fark etmeden yapılan bir sonraki taşımada sessizce kopar.
Zincirin gerçek maliyeti nedir?
En somut maliyet gecikmedir ve nedeni basittir: atlamalar paralelleşmez, sıraya girer. Tarayıcı ikinci adresi öğrenmeden üçüncüsünü isteyemez, çünkü sonraki durağı ancak bir önceki cevabın başlığından öğrenir. Her atlama ayrı bir istek ve cevap turudur; zincir farklı bir alan adına ya da alt alan adına atlıyorsa o tur ad çözümleme ve güvenli bağlantı kurma maliyetini de yeniden ödeyebilir. İçeriğin ilk baytı zincir bitene kadar gelmez. Mobil bağlantıda bu, kullanıcının hissettiği türden bir gecikmedir.
İkinci maliyet tarama tarafındadır. Zincirdeki her adres ayrı bir istektir ve hiçbiri içerik döndürmez. Küçük bir sitede bu önemsizdir, yüz binlerce adresli bir katalogda taşınan her adresin ikişer üçer atlama taşıması ölçülebilir bir yüktür.
Üçüncü başlık daha dikkatli konuşmayı gerektiriyor. SEO çevrelerinde "her atlamada link değerinin şu kadarı kaybolur" biçiminde yüzdeler dolaşır. Bu yüzdelerin doğrulanabilir bir birincil kaynağı yok ve Google atlama başına bir kayıp oranı yayınlamıyor. Belgelenen şey daha basit ve aslında daha sert: sınır aşılırsa hedefe hiç ulaşılmaz, zincirin bir halkası bozulursa arkasındaki her şey birlikte kopar. Zinciri düzleştirme gerekçesini tartışmalı bir yüzdeye dayandırmak yerine bu iki kesin sonuca dayandırmak hem daha doğru hem de karar vermek için daha kullanışlıdır.
Zinciri nasıl bulursunuz?
Search Console'un sayfa dizine ekleme raporundaki "Yönlendirme hatası" nedeni tek bir durumu değil dört ayrı durumu birden kapsar: çok uzun yönlendirme zinciri, yönlendirme döngüsü, maksimum adres uzunluğunu aşan bir yönlendirme adresi ve zincirde bozuk ya da boş adres. Bu satırı bir uyarı gibi değil, zaten kopmuş bir zincirin tutanağı gibi okuyun. Rapor hangi alt duruma denk geldiğini söylemez, o ayrımı adresi kendiniz izleyerek yaparsınız.
Tek bir adresin zincirini görmenin en hızlı yolu komut satırıdır. -I yalnızca başlıkları ister, -L yönlendirmeleri sonuna kadar izler:
curl -sIL https://ornek.com/eski-adres | grep -iE "^(HTTP|location)"
HTTP/1.1 301 Moved Permanently
location: https://www.ornek.com/eski-adres
HTTP/1.1 301 Moved Permanently
location: https://www.ornek.com/yeni-adres
HTTP/1.1 200 OK
Çıktıda kaç durum satırı görüyorsanız zincirde o kadar adım var demektir; her location satırı bir sonraki durağı gösterir. Buradaki örnekte iki atlama var ve sonunda içerik geliyor. -L bayrağını unutursanız yalnızca ilk adımı görürsünüz, arkadaki zincir tamamen gözden kaçar. Zincirin hiç bitmediği, yani aynı iki adresin dönüp durduğu çıktı ise döngünün kendisidir.
Site geneli için tarayıcı araçlarının yönlendirme raporu kullanılır; burada aranacak iki şey vardır: ikiden fazla adım içeren zincirler ve site içi bağlantıların işaret ettiği yönlendirilmiş adresler. İkinci liste genelde birincisinden uzundur. Kendi sitenizde bu iki taramayı düzenli yapmıyorsanız, site içi SEO analizi kapsamında adres yapısı ve yönlendirme haritası birlikte çıkarılabilir.
Zinciri düzleştirmek: her eski adres doğrudan son hedefe
Önce en sık yapılan hatayı söylemek gerekiyor, çünkü zincirlerin uzamasının bir numaralı nedeni onları düzeltme girişimidir. Yeni bir taşımada refleks şudur: "eski kural zaten duruyor, yenisini de ekleyelim." Bu, zinciri kısaltmaz, bir halka daha ekler. Kural eklemek zincir düzeltmek değildir.
Doğru işlem sırası şöyle:
- Son hedefi bulun. Zinciri sonuna kadar izleyin ve içerik döndüren adresi tespit edin. Düzeltme her zaman bu adrese göre yazılır.
- Zincirdeki her adresi tek tek o hedefe bağlayın. A → B → C zinciri için hem A → C hem B → C kuralı yazılır. Amaç, hangi adrese gelinirse gelinsin tek atlamada bitmesidir.
- Ara adreslerin kuralını silmeyin. B'nin kuralını kaldırmak zinciri düzleştirmez, doğrudan B'ye gelen dış bağlantıları ve eski dizin kayıtlarını 404'e düşürür. Zincirdeki her adres yaşamaya devam eder, sadece hedefi değişir.
- Kural sırasını kontrol edin. Aynı dosyada birden fazla desen aynı adrese uyuyorsa sunucu ilk eşleşeni uygular. Yeni yazdığınız doğrudan kural, eski genel desenin altında kalırsa hiç çalışmaz.
- Site içi bağlantıları güncelleyin. Kendi sitenizde yönlendirme kullanmak tamamen israftır, çünkü hedef adresi zaten siz kontrol ediyorsunuz. Menüde, gövde metinlerinde, site haritasında ve canonical etiketlerinde eski adres kaldıysa her ziyaret gereksiz bir atlama üretir.
Beşinci madde işin görünmeyen yarısıdır. Zincir düzleştirme yalnızca sunucu kuralı işi değildir; kuralları düzelttikten sonra içerik tarafında eski adres kaldığı sürece kullanıcı ve bot aynı gereksiz turu atmaya devam eder.
Sıralama yaparken önceliği şöyle kurun: önce döngüler, çünkü orada sayfa hiç açılmıyor. Sonra sınıra yaklaşan uzun zincirler, çünkü bir sonraki taşımada kopacaklar. Sonra dış bağlantı alan adreslerin zincirleri, çünkü orada kaybedilecek gerçek bir sinyal var. En son iç bağlantı temizliği, çünkü etkisi gerçek ama tek tek acil değil.
İkinci taşımada zincir üretmemek
Zincirlerin çoğu ilk taşımada değil ikincisinde doğar. Önleme de tam olarak orada yapılır.
Temel kural: yeni taşımada kural yığmayın, eski kuralın hedefini güncelleyin. Elinizde /urun/kahve-degirmeni → /kahve-degirmeni kuralı varken ürün /ogutucu-kahve adresine taşınıyorsa, doğru hamle yeni bir satır eklemek değil ilk kuralı /urun/kahve-degirmeni → /ogutucu-kahve olacak biçimde yeniden yazmak, yanına da /kahve-degirmeni → /ogutucu-kahve satırını koymaktır. Aynı iş, bir atlama yerine iki katman derinliğinde biriktirilmeden bitmiş olur.
İkinci kural: standartları içerik taşımasından önce belirleyin. Protokol tercihi, www kullanılıp kullanılmayacağı ve sondaki eğik çizginin durumu bir kere kararlaştırılır. Bu üç karar sonradan verildiğinde her biri mevcut her adrese bir katman ekler, üçü birden geciktiğinde en kısa yol bile üç atlamaya çıkar.
Üçüncü kural: yönlendirme haritasını saklayın. Harita, taşıma bittiğinde çöpe atılan bir çalışma dosyası değil, sitenin adres geçmişinin kaydıdır. Bir sonraki taşımada eski kuralların hedefini güncelleyeceğiniz tek yer orasıdır; harita yoksa herkes yeni kural eklemeye geri döner.
Dördüncü kural: taşımadan sonra ölçün. Taşınan adreslerden rastgele bir örneklem alıp atlama sayısını sayın. Bir atlamadan fazlasını gördüğünüz her adres, haritanın eksik olduğunu söyler. Bu kontrolü taşımanın ertesi günü yapmak, altı ay sonra Search Console'da yönlendirme hatası görmekten çok daha ucuzdur.
Sık sorulan sorular
İki atlamalı bir zinciri düzeltmek acil mi?
Hayır, ama listeye yazılması gerekir. İki atlama tek başına kriz değildir; sayfa açılır, Googlebot hedefe ulaşır, kullanıcı farkı çoğu zaman hissetmez. Sorun şu ki zincirler kendiliğinden kısalmaz. Bugün iki olan sayı, bir sonraki taşımada üç, ondan sonrakinde dört olur. İki atlamayı düzeltmek ucuzdur, altıyı düzeltmek arkeoloji işidir.
Eski adresleri yönlendirmek yerine tamamen silsem olmaz mı?
Olmaz. Silmek zinciri değil erişimi bitirir. O adrese gelen dış bağlantılar, kaydedilmiş yer imleri, basılı materyaldeki adresler ve dizinde duran eski kayıtlar 404 cevabıyla karşılaşır. Zincir düzleştirmenin amacı ara adresleri yok etmek değil, hepsinin tek adımda son hedefe çıkmasını sağlamaktır.
Zincirin ortasında geçici yönlendirme kalmışsa ne olur?
Geçici yönlendirme, hedefin standart adres olması yönünde sinyal taşımaz ve arama sonuçlarında kaynak sayfa gösterilmeye devam eder. Kalıcı bir taşımanın ortasında 302 kalması, taşımayı Google açısından yarım bırakır: adres değişti ama değiştiği söylenmedi. Kalıcı olduğundan emin olduğunuz her taşımada kalıcı yönlendirme kullanın, geçici kodu yalnızca gerçekten geri alınacak durumlara bırakın.
Zincir sıralamamı düşürür mü?
Zincir için tanımlanmış bir ceza yoktur ve makul uzunlukta bir zincir tek başına sıralama kaybı anlamına gelmez. Somut riskler başka yerde: atlama sınırının aşılması durumunda hedefe hiç ulaşılamaması, halkalardan biri bozulduğunda arkadaki her şeyin birden kopması ve her atlamanın kullanıcıya eklediği bekleme süresi. Zinciri bu üç nedenle düzeltin, dolaşımdaki kayıp yüzdeleri nedeniyle değil.



