301 Yönlendirme Kontrolü: Her yönlendirme zincirini izleyin
Bir URL veya en fazla 10 URL girin; her 301, 302, 307 ve 308 adımını durum kodu, Location başlığı ve yanıt süresiyle, ayrıca son URL’yi, döngüleri ve Google’ın izlediğinden uzun zincirleri görün.
Bir yönlendirme kontrolü, bir bağlantıya tıklamakla bir sayfaya inmek arasında gerçekte ne olduğunu gösterir. Girdiğiniz her URL, otomatik yönlendirmeler kapalıyken Marqly’nin sunucusundan istenir; böylece her yanıt ayrı ayrı kaydedilir: durum kodu, işaret ettiği Location başlığı, ne kadar sürdüğü ve SEO için önemli başlıklar. Araç ardından o konumu izler ve Google’ın tarayıcılarının varsayılan olarak kullandığı sınır olan 10 yönlendirmeye kadar tekrarlar. Tam yönlendirme zincirini, son URL’yi ve durumu; ayrıca döngüler, geçici yönlendirmeler, yavaş adımlar, kaybolan izleme parametreleri ve kısaltmaya değer zincirler için sade dilde uyarılar alırsınız.
Bir yönlendirme nasıl kontrol edilir
- Bir URL’yi kutuya yapıştırın. Toplu kontrol için her satırda bir tane olacak şekilde en fazla 10 URL yapıştırın.
- Gerekirse bir kullanıcı aracısı seçin. Varsayılan kendini Marqly denetleyicisi olarak tanıtır; tarayıcıları, telefonları ve tarayıcı botlarını farklı ele alan kuralları yakalamak için bir Chrome, iPhone Safari, Googlebot akıllı telefon veya Googlebot masaüstü kullanıcı aracısı da gönderebilirsiniz.
- Aynı adresin dört biçimini birden sınamak için http/https ve www/www’suz sürümlerini de kontrol etseçeneğini işaretleyin. Bir sitenin tek bir kanonik ana bilgisayar adına sahip olduğunu ve her varyantın ona tek adımda ulaştığını doğrulamanın en hızlı yolu budur.
- Yönlendirmeleri kontrol et düğmesine basın. Her URL; hükmü, ipuçları ve adım adım zincirle birlikte kendi kartını alır.
- Metin raporu için Sonuçları kopyala, adım başına bir satır içeren bir hesap tablosu içinCSV indir ya da aynı kontrolü yeniden çalıştıran bir bağlantı göndermek içinPaylaşım bağlantısını kopyala düğmesini kullanın.
Sonuçlar nasıl okunur
Her kart; son durum kodu, girdiğiniz URL, yönlendirme sayısı, toplam süre ve son URL ile başlar. Altında, dikkat gerektireni ipuçları işaretler: hatalardan (döngüler, sınırı aşan zincirler, 404’le biten bir zincir) uyarılara (geçici yönlendirmeler, meta refresh’ler, https’den http’ye düşüş, kaybolan sorgu parametreleri, son sayfadaki bir X-Robots-Tag: noindex) ve nötr notlara (sondaki eğik çizgi ya da www değişiklikleri, başka bir alan adına taşınma, yavaş adımlar) kadar.
Zincir tablosu her isteği sırasıyla listeler. Durum, sunucunun döndürdüğü HTTP durum kodudur. URL, istenen adrestir ve altında o adımın istemciyi bir sonraki nereye gönderdiği yer alır; sunucu göreli bir Location gönderdiyse mutlak adrese çevrilmiştir.Süre, sunucunun o adım için başlıkları döndürmesinin ne kadar sürdüğüdür. Herhangi bir satırdaBaşlıklar bölümünü açarak Location, Cache-Control,Content-Type, X-Robots-Tag, Link (bir canonical bildirilebilen yer),Strict-Transport-Security, X-Redirect-By (WordPress ve bazı eklentiler burada kendilerini adlandırır) ve Server başlıklarını görebilirsiniz. Çerez değerleri asla gösterilmez, yalnızca kaç tane ayarlandığı gösterilir.
301, 302, 307 ve 308: her yönlendirme kodu ne anlama gelir
HTTP, yönlendirme durum kodlarını RFC 9110, bölüm 15.4’te tanımlar (İngilizce). İki soru onları ayırır: taşınma kalıcı mı ve istemci yönlendirmeyi izlerken istek yöntemini değiştirebilir mi (örneğin bir form POST’unu GET’e çevirmek)? Google’ınHTTP durum kodları belgeleri (İngilizce), tarayıcılarının ve dizinlemenin her birini nasıl ele aldığını açıklar.
| Kod | Anlamı | Yöntem değişebilir mi? | Google nasıl ele alır |
|---|---|---|---|
| 301 Moved Permanently | Kaynağın yeni bir kalıcı URI’si var; gelecekteki başvurular onu kullanmalı. | Evet, tarihsel nedenlerle POST, GET’e dönüşebilir | Hedefin kanonik olduğuna dair güçlü sinyal |
| 302 Found | Kaynak geçici olarak başka bir URI’de; özgün olanı kullanmaya devam edin. | Evet, POST, GET’e dönüşebilir | Hedefin kanonik olduğuna dair zayıf sinyal |
| 303 See Other | Farklı bir kaynağa gidin; genellikle bir POST sonrasındaki sonuç sayfası. | GET (veya HEAD) ile alınır | 302 gibi zayıf sinyal |
| 307 Temporary Redirect | Geçici olarak başka yerde; istemci aynı yöntemi tekrarlamalı. | Hayır | 302’ye eşdeğer |
| 308 Permanent Redirect | Kalıcı olarak taşındı; istemci aynı yöntemi tekrarlamalı. | Hayır | 301’e eşdeğer |
Sıradan sayfalarda içerik kalıcı olarak taşındığında 301 kullanın: yeniden adlandırılmış bir slug, birleştirilmiş bir makale, bir alan adı taşıması, HTTPS’ye geçiş. Özgün URL geri dönecekse302 veya 307 kullanın; bir bakım sayfası, kısa bir kampanya ya da bir test gibi. Yöntem önemli olduğunda, örneğin bir API uç noktası ya da POST istekleri alan bir form için308’e başvurun; çünkü RFC 9110, istemcilerin 301 ve 302’de yönlendirilen bir POST’u GET’e çevirmesine izin verir ancak 307 ve 308’de bunu yasaklar.
Meta refresh ve JavaScript yönlendirmeleri
Google’ın yönlendirme rehberi (İngilizce), mümkün olduğunda kalıcı bir sunucu tarafı yönlendirmeyi önerir. Anlık bir meta refresh’i kalıcı, gecikmeli olanı geçici yönlendirme olarak ele alır ve işleme başarısız olabileceği için JavaScript yönlendirmelerini yalnızca ne sunucu tarafı ne de meta refresh yönlendirmeleri mümkün olduğunda önerir. Bu denetleyici meta refresh etiketlerini ve Refresh başlığını izler ve etiketler, ancak JavaScript çalıştırmaz.
Yönlendirme zinciri nedir ve neden zarar verir?
Yönlendirme zinciri, birden fazla adımı olan her yoldur: http://example.com/page →https://example.com/page → https://www.example.com/page →https://www.example.com/page/. Zincirler nadiren bilerek başlar. Bir site HTTPS’ye geçtikçe, bir www tercihi belirledikçe, içerik yönetim sistemini değiştirdikçe, bölümleri yeniden adlandırdıkça ve eski yönlendirmeleri yeniden yazmak yerine onları yönlendirdikçe birikirler. Her katman tek başına, kendi başına bakıldığında makul görünür ve çalışır; birlikte toplanırlar. Türkiye’de sık görülen bir örnek, eski bir alan adından yeni alan adına yapılan taşımanın üstüne yıllar içinde eklenen www, HTTPS ve eğik çizgi kurallarıdır.
- Hız. Her adım, sayfa yüklenmeye başlamadan önce başka bir tam istektir ve yeni bir ana bilgisayar adına giden adım bir DNS sorgusu ve bir TLS el sıkışması ekler. Süre sütunu her adımın neye mal olduğunu gösterir.
- Tarama. Google, tarayıcılarının varsayılan olarak 10 yönlendirme adımına kadar izlediğini söyler; Sayfa dizinleme raporu da çok uzun bir yönlendirme zincirini, bir yönlendirme döngüsünü ve zincirdeki hatalı veya boş bir URL’yi yönlendirme hataları (İngilizce) olarak listeler. Google’ın site taşıma rehberi (İngilizce) doğrudan son hedefe yönlendirmeyi önerir; zincirlemenin gecikme eklediğini ve tüm kullanıcı aracılarının ve tarayıcıların uzun zincirleri desteklemediğini belirtir.
- Diğer istemciler. RFC 9110, daha eski bir HTTP belirtiminin en fazla beş yönlendirme önerdiğini ve bazı istemcilerin hâlâ bunun gibi sabit bir sınır uygulayabileceğini not eder; yani Googlebot’un hoş gördüğü bir zincir başka yazılımlar için yine de bozulabilir.
- Kırılganlık ve kayıp veri. Her adım, düzenlenebilen, silinebilen veya gölgelenebilen bir kural daha demektir. URL’yi yeniden oluşturan bir adım sorgu dizelerini sessizce düşürebilir; UTM etiketleri analitik onları görmeden böyle kaybolur. Özgün URL’nizdeki bir parametre son URL’de eksikse denetleyici sizi uyarır.
Bir yönlendirme zinciri nasıl düzeltilir
- Son URL’yi bulun. Eski URL’yi denetleyiciden geçirin ve zincirdeki son URL’yi kopyalayın.
- İlk yönlendirmeyi son URL’ye yöneltin. A, B’ye ve B de C’ye yönlendiriyorsa A’nın kuralını doğrudan C’ye gidecek şekilde değiştirin ve B’ye hâlâ sahip olanlar için B → C’yi koruyun. Bir yönlendirme haritasında veya eklentide, hedefi başka bir kuralın kaynağı olan kuralları arayın.
- Protokol ve ana bilgisayar kurallarını birleştirin. En yaygın zincir, http → https’yi izleyen www’suz → www’dir. Her varyantı kanonik biçime tek adımda gönderen tek bir kural yazın; bu nginx örneğindeki gibi:
# Her varyanttan https://www.example.com adresine tek adım
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# ssl_certificate satırları çıkarıldı
return 301 https://www.example.com$request_uri;
}- Bağlantıları kaynağında güncelleyin. İç bağlantıları, canonical etiketlerini, hreflang ek açıklamalarını ve XML site haritalarını son URL’lere çevirin; Google’ın site taşıma rehberi iç bağlantıların yeni URL’lere güncellenmesini ister. Yönlendirmeler, kendi gezinmenizi taşımak için değil, başka yerlerdeki eski bağlantıları yakalamak içindir.
- Yönlendirmeleri koruyun. Google, yönlendirmeleri mümkün olduğunca uzun, genellikle en az bir yıl tutmayı önerir. Bir zinciri kısaltmak, onu yeniden hedeflemek demektir; eski kuralları silmek değil.
- Yeniden test edin. Aynı URL’leri, ideal olarak varyantlar seçeneği işaretliyken yeniden çalıştırın ve her birinin tek adımda bir 200 sayfasına ulaştığını doğrulayın.
Yönlendirme döngülerini düzeltme
Döngü, daha önce ziyaret ettiği bir URL’ye geri dönen ve bu yüzden hiç bitmeyen bir zincirdir; tarayıcılar “çok fazla yönlendirme” hatası gösterir. Olağan nedenler birbiriyle anlaşamayan iki katmandır: kaynak HTTPS’yi zorlarken kaynakla HTTP üzerinden konuşan bir CDN, web sunucusundaki bir sondaki eğik çizgi kuralının uygulamadaki ters kuralla çatışması ya da hem DNS düzeyinde yönlendirmede hem de sitede ayarlanmış www kuralları. URL’nin geri döndüğü adıma bakın; Server ve X-Redirect-By başlıkları çoğu kez hangi katmanın gönderdiğini söyler. Bazı döngüler yalnızca çerezsiz oluşur (onay veya giriş yönlendirmeleri) ve zaten çerezi olan ziyaretçileri etkilemez; denetleyici çerez göndermez, dolayısıyla bunları da ortaya çıkarır.
Yönlendirmeleri toplu kontrol edin
Tek seferde kontrol etmek için her satırda bir tane olacak şekilde en fazla 10 URL yapıştırın; yinelenenler kaldırılır ve her URL kendi sonucunu alır. CSV dışa aktarımı, girdi URL’si tekrarlanarak adım başına bir satır içerir; böylece duruma göre filtreleyebilir, adım sayısına göre sıralayabilir veya dosyayı yönlendirme kurallarının sahibine verebilirsiniz. Eski yer imlerinden ya da bir belgedeki bağlantılardan oluşan bir liste için önce URL’leri yer imi dosyası görüntüleyiciyle (İngilizce) çıkarın, ardından hangilerinin basitçe ölü olduğunu çalıştırma başına 25 URL alankırık link kontrolüyle denetleyin. Bütün bir site için yönlendirilen URL’leri bulmak üzere bir tarayıcı (crawler) veya sunucu günlüklerinizi kullanın, ardından önemli olanları burada Googlebot kullanıcı aracısıyla kontrol edin.
HTTPS, www ve sondaki eğik çizgiler
Çoğu site, protokol ve ana bilgisayar adının tam olarak tek bir birleşiminde yanıt vermeli, diğer her biçim ona kalıcı olarak ve tek adımda yönlendirmelidir. Varyantlar seçeneği aynı yolla http://example.com,https://example.com, http://www.example.com ve https://www.example.comadreslerini kontrol eder ve dördünün de aynı URL’de bitip bitmediğini ve her birinin kaç adım sürdüğünü bildirir. İpuçları, zincirde geç gerçekleşen bir HTTPS yükseltmesine, www ile www’suz arasında birden fazla kez geçiş yapan bir zincire ve yalnızca sondaki eğik çizgiyi ekleyen veya kaldıran ya da harf büyüklüğünü değiştiren adımlara dikkat çeker; bunların ilk yönlendirmeye katılması ucuzdur.
Sonuçlar tarayıcınızdan neden farklı olabilir
Tarayıcınız başka bir yere iniyorsa genellikle bir şeyi hatırlıyordur. RFC 9110 bir 301’in önbelleğe alınmasına izin verir; bu yüzden bir tarayıcı eski bir yönlendirmeyi atlayabilir veya sizin zaten kaldırdığınız birini izlemeye devam edebilir. Bir tarayıcı bir sitenin HSTS başlığını gördükten sonra (ya da site HSTS ön yükleme listesindeyse) hiçbir istek makinenizden çıkmadan önce http:// adresini dahili olarak https:// adresine yükseltir. Çerezler, diliniz ve konumunuz kendi yönlendirmelerini tetikleyebilir; örneğin bir site Türkçe ziyaretçiyi otomatik olarak /tr yoluna gönderebilir. Denetleyici her seferinde temiz başlar ve sunucunun gönderdiğini bildirir; bu, tarayıcılar (crawler) ve ilk kez gelen ziyaretçiler için önemli olan görünümdür.
Denetleyici nasıl çalışır
Her adım, Cloudflare üzerindeki Marqly sunucusundan yönlendirmeler manuel ayarlanmış bir GETisteğidir; böylece denetleyici kaydedene kadar hiçbir şey izlenmez. Her ana bilgisayar adı çözümlenir ve herkese açık bir adrese işaret etmelidir; özel ağlar, localhost ve bulut meta veri adresleri, zincirin ortasında bir yönlendirme birine işaret ettiğinde de dahil olmak üzere reddedilir. Her adımın 6 saniyelik bir zaman aşımı vardır, bütün bir zincir 20 saniye veya 10 yönlendirmeden sonra durur ve sayfa gövdeleri, bir meta refresh için taranan nihai bir HTML sayfasının ilk 64 KB’ı dışında atılır. Hiçbir şey saklanmaz ve hiçbir hesap gerekmez: sonuçlar yalnızca tarayıcı sekmenizde bulunur. Bu yüzden müşterinize ya da ekip arkadaşınıza göstermek istediğiniz bir sonucu paylaşmak için CSV’yi veya paylaşım bağlantısını kullanın; sekme kapandığında sonuçlar da kaybolur.
Bir yönlendirmeden veya bir bağlantı kısaltıcıdan geçmiş bir bağlantıyı paylaşmadan önce izleme kalabalığınıURL temizleyiciyle kaldırın. Kampanya bağlantıları oluşturuyorsanızUTM oluşturucu onları üretir ve bu denetleyici parametrelerin her adımda hayatta kaldığını doğrular. Son sayfa yüklendiğinde sunduğu başlığı, açıklamayı ve sosyal önizlemeyiOpen Graph denetleyicisiyle (İngilizce) inceleyin.
Sıkça Sorulan Sorular
301 yönlendirme kontrolü nedir?
301 yönlendirme kontrolü, bir URL’yi yönlendirmeleri otomatik izlemeden ister, sunucunun gönderdiği durum kodunu ve Location başlığını kaydeder, ardından o Location’ı ister ve yönlendirmeyen bir sayfaya ulaşana kadar bunu tekrarlar. Sonuç, tam yönlendirme zinciridir: her adım, durum kodu (301, 302, 307, 308 vb.), işaret ettiği yer ile son URL ve durum.
Bir 301 yönlendirmesinin çalışıp çalışmadığını nasıl kontrol ederim?
Eski URL’yi yukarıya girin ve kontrolü çalıştırın. Çalışan kalıcı bir yönlendirme, 301 (veya 308) durumlu eski URL’yi, yeni URL’ye işaret eden bir Location’ı ve ardından 200 OK yanıtı veren yeni URL’yi gösterir. Bunun yerine 302 görürseniz yönlendirme geçicidir; birden fazla adım görürseniz yönlendirme çalışır ama bir zincirden geçer; son satır bir 404 veya 5xx ise yönlendirme bozuk bir sayfaya işaret ediyordur.
Bir zincirde kaç yönlendirme çok fazladır?
Tek adımı hedefleyin. Google’ın belgeleri, tarayıcılarının varsayılan olarak 10 yönlendirme adımına kadar izlediğini söyler; dolayısıyla daha uzun bir zincir sonuna kadar izlenmez ve Search Console çok uzun bir zinciri yönlendirme hatası olarak bildirir. Bu sınıra çok önce, her ek adım tam bir ağ gidiş dönüşü ve bozulabilecek bir kural daha ekler; bu yüzden iki adımı temizlenecek bir şey, üç ve fazlasını öncelik olarak değerlendirin.
SEO için 301 mi 302 mi daha iyi?
Taşınmanın kalıcı olup olmadığına bağlıdır. Google, 301 ve 308’i yönlendirme hedefinin kanonik URL olması gerektiğine dair güçlü bir sinyal, 302, 303 ve 307’yi ise zayıf bir sinyal olarak kullanır; bu yüzden geçici bir yönlendirmeyle özgün URL dizinde kalma eğilimindedir. Bir sayfa kalıcı olarak taşındıysa 301 (veya 308), özgün URL’yi geri getireceğiniz durumlarda 302 (veya 307) kullanın.
Tarayıcım neden yönlendirme kontrolünden farklı bir sonuç gösteriyor?
Tarayıcılar, denetleyicinin bilerek hatırlamadığı şeyleri hatırlar. Bir 301 tarayıcı tarafından önbelleğe alınabilir, HSTS tarayıcının herhangi bir istek gönderilmeden önce http’yi https’ye yükseltmesini sağlar ve çerezler, dil ya da konum farklı yönlendirmeleri tetikleyebilir. Denetleyici her çalıştırmada sıfırdan başlar, çerez göndermez ve sunucunun tam olarak ne yanıt verdiğini bildirir; bu da bir tarayıcının (crawler) gördüğüne daha yakındır.
Yönlendirmeleri Googlebot olarak kontrol edebilir miyim?
Evet. Google’ın belgelenmiş kullanıcı aracısı dizelerini göndermek için kullanıcı aracısı menüsünden Googlebot akıllı telefon veya Googlebot masaüstü seçin. Bu, mobil veya bota özgü kurallar gibi kullanıcı aracısına bağlı yönlendirmeleri ortaya çıkarır. Googlebot’u ters DNS ile doğrulayan siteler isteğin Google’dan gelmediğini yine de anlar; bu yüzden sonucu mükemmel bir simülasyon değil, bir kullanıcı aracısı testi olarak değerlendirin.
Meta refresh ve JavaScript yönlendirmelerini algılıyor mu?
Bir HTML sayfasının ilk 64 KB’ındaki meta refresh etiketlerini ve HTTP Refresh başlığını algılar, bunları izler ve bu adımları sunucu tarafı yönlendirmelerden ayırt edebilmeniz için etiketler. JavaScript çalıştırmaz; dolayısıyla window.location ile yapılan bir yönlendirme normal bir 200 sayfası gibi görünür. Google her ikisine karşı da sunucu tarafı yönlendirmeleri önerir.
localhost, hazırlık (staging) veya özel ağ URL’lerini kontrol edebilir mi?
Hayır. Yalnızca 80 ve 443 bağlantı noktalarındaki herkese açık http ve https URL’leri kabul edilir. Localhost, özel ve bağlantı-yerel IP aralıkları, bulut meta veri adresleri, gömülü kimlik bilgisi içeren URL’ler ve özel adreslere çözümlenen ana bilgisayar adları, bir yönlendirme zincirin ortasında birine işaret ettiğinde de dahil olmak üzere reddedilir.





