Fratres

Rehber

301, 302, 307, 308: Hangi yönlendirme ne zaman kullanılır?

HTTP standardı dört kodu nasıl tanımlıyor, Google hangisini kanonik sinyal sayıyor, A/B testinde ve form gönderiminde hangi kod seçilmeli?

Fratres Editör ·

Yönlendirme (redirect), bir URL'ye gelen isteği başka bir URL'ye gönderen sunucu yanıtıdır. Adres kalıcı olarak değiştiyse 301 veya 308, geçici olarak değiştiyse 302 veya 307 kullanılır. Google, arama açısından 301 ile 308'i, 302 ile 307'yi eşdeğer sayıyor. Aradaki fark formlar ve API'ler için önemlidir: 308 ve 307 istek yöntemini korur.

Dört kod standartta ne anlama geliyor?

HTTP'nin anlamını tanımlayan RFC 9110 (Haziran 2022) bu kodları iki soruya göre ayırır: Taşınma kalıcı mı ve istemci istek yöntemini değiştirebilir mi?

  • 301 Moved Permanently: Kaynak kalıcı olarak yeni adrese geçti, sonraki istekler yeni adresi kullanmalı. Standart, tarihsel nedenlerle tarayıcının POST isteğini GET'e çevirmesine izin verir.
  • 308 Permanent Redirect: Anlamı 301 ile aynıdır, ama yöntem değişmez. Standart, bu kodun Haziran 2014'te tanımlandığını ve kardeşlerinden çok daha genç olduğu için her istemcide tanınmayabileceğini not eder.
  • 302 Found: Kaynak geçici olarak başka bir adreste, istemci asıl adresi kullanmayı sürdürmeli. 301'deki tarihsel POST'tan GET'e geçiş esnekliği burada da vardır.
  • 307 Temporary Redirect: 302'nin yöntemi koruyan karşılığıdır. İstemci yöntemi değiştirmemelidir.

Beşinci bir kod daha karşınıza çıkar: 303 See Other. Bir form gönderiminden sonra kullanıcıyı sonuç sayfasına götürür. MDN, bunun sayfa yenilendiğinde işlemin tekrarlanmasını önlediğini anlatıyor.

Bir ayrıntı daha önemli: Standarda göre 301 ve 308 yanıtları, aksi belirtilmedikçe önbelleğe alınabilir (heuristically cacheable). Yanlışlıkla açılmış bir 301'i sunucudan kaldırsanız bile, daha önce gelen kullanıcıların tarayıcısı eski yönlendirmeyi bir süre hatırlayabilir. Kalıcı kodu test etmeden canlıya almayın.

Google 301 ile 308'i farklı görür mü?

Hayır. Google'ın durum kodları belgesi 308'i 301'e, 307'yi 302'ye eşdeğer sayıyor. 301, hedefin işlenmesi gerektiğine dair güçlü bir sinyal, 302 ise zayıf bir sinyaldir. Aynı belge, Google bu kodları pratikte aynı işlese de e-kitap okuyucular ve diğer arama motorları gibi istemcilerin doğru koddan yararlanabileceğini hatırlatıyor.

Asıl ayrım kalıcı ile geçici arasındadır. Google'ın yönlendirme belgesine göre:

  • Kalıcı yönlendirmede arama sonuçlarında hedef sayfa görünür. Yönlendirme, hedefin kanonik (asıl) adres olması gerektiğine dair sinyal olarak kullanılır.
  • Geçici yönlendirmede sonuçlarda kaynak sayfa kalır. Yönlendirme kanonik sinyal sayılmaz, ama başka kanonik sinyaller hedefi destekliyorsa hedef yine de dizine girebilir.

Google iki adresi de kayıtta tutar. Biri kanonik olur, diğeri onun alternatif adı (alternate name) olarak kalır. Bu yüzden alan adını değiştirdikten sonra, yeni adresler dizine girmiş olsa bile eski adresler zaman zaman sonuçlarda görünebilir. Google bunu normal sayıyor ve kullanıcılar yeni adrese alıştıkça kendiliğinden azalacağını söylüyor. Bu durumda yönlendirmeyi değiştirmeniz gerekmez.

Sunucu dışı yöntemler de aynı ayrıma göre okunur. 0 saniyelik meta refresh kalıcı, daha uzun bekleten meta refresh geçici sayılır. JavaScript ile yapılan yönlendirmeyi Google ancak sayfayı işledikten (render) sonra görür. İşleme başarısız olursa yönlendirme hiç görülmeyebilir. Bu yüzden Google, sunucu tarafı yönlendirmeyi doğru yorumlanma olasılığı en yüksek yöntem olarak ilk sıraya koyuyor. Kanonik URL rehberi de en hızlı etki için sunucu tarafı yönlendirme öneriyor.

Hangi durumda hangi kodu seçmelisiniz?

  • Alan adı, HTTPS veya URL yapısı değişikliği: 301. Adres bir daha geri dönmeyecekse kalıcı kod seçin. Sürecin tamamı için site taşıma kontrol listesine bakabilirsiniz.
  • POST isteği alan formlar ve API uç noktaları kalıcı taşınıyorsa: 308. İsteğin gövdesi yolda kaybolmaz.
  • Kopya sayfaların birleştirilmesi: 301. Kopya sayfa erişilebilir kalacaksa yönlendirme yerine canonical etiketi daha uygundur. Google'ın kanonik rehberi yönlendirmeyi, kopya sayfayı kullanımdan kaldırırken önerir.
  • A/B testi: 302. Google'ın test rehberi, ziyaretçiyi bir varyant URL'sine gönderirken 301 değil 302 kullanılmasını, varyantlarda asıl URL'yi gösteren canonical etiketini öneriyor. Test bitince varyant adreslerini kaldırın.
  • Kısa süreli kampanya veya geçici olarak kaldırılan ürün sayfası: 302 veya 307. Asıl adres geri dönecekse geçici kod seçin.
  • Form gönderiminden sonra teşekkür sayfası: 303.

Google da kalıcı yönlendirmeyi yalnız geri alınmayacağından emin olduğunuz değişiklikler için öneriyor. Emin değilseniz kararı ertelemek, yanlış bir 301'i geri almaktan kolaydır.

Yönlendirme nasıl doğru kurulur?

  1. Kuralları tek listede toplayın. Sunucu ayarlarındaki kuralları, içerik yönetim sistemindeki yönlendirme eklentilerini ve CDN kurallarını bir araya getirin. Aynı URL için iki katmanda kural varsa zincir veya döngü oluşur.
  2. Kodu açıkça yazın. MDN, Apache'nin mod_alias modülündeki Redirect ve RedirectMatch komutlarının varsayılan olarak 302 ürettiğini belirtiyor. Kalıcı taşımada "Redirect 301" veya "Redirect permanent" yazın. Nginx'te return 301 kullanın ya da rewrite satırının sonuna permanent ekleyin, çünkü redirect bayrağı geçici yönlendirme üretir.
  3. Doğrudan son hedefe gönderin. A'dan B'ye, B'den C'ye giden bir zincir varsa A'yı doğrudan C'ye çevirin. Google'ın tarayıcıları zincirde 10 adıma kadar ilerliyor, ama her adım kullanıcı için ek bekleme demek.
  4. Komut satırından test edin. curl -I ile yanıtın durum kodunu ve Location başlığını görün. Tarayıcı kalıcı yönlendirmeleri önbellekte saklayabildiği için tarayıcıda yapılan test yanıltıcı olabilir.
  5. İç bağlantıları güncelleyin. Yönlendirme eski dış bağlantıların değerini korur. Sitenin kendi menüsü, metin içi bağlantıları ve site haritası ise doğrudan yeni adresi göstermeli.

Yönlendirmelerin etkisi nasıl ölçülür?

  • Lighthouse: Chrome'un Lighthouse belgesi, iki veya daha fazla yönlendirmesi olan sayfaları işaretliyor. Lighthouse 13 ile bu denetim belge isteği gecikmesi (Document request latency) başlığı altına taşındı. Belgeye göre her yönlendirme ek bir ağ gidiş dönüşü ekliyor ve yüklemeyi yüzlerce milisaniye geciktirebiliyor. Hızın diğer ölçüleri için Core Web Vitals rehberi yol gösterir.
  • Search Console: Sayfa dizine ekleme raporunda başka sayfaya yönlenen kanonik olmayan URL'ler "Yönlendirmeli sayfa" durumunda listelenir ve dizine eklenmez. Bu liste, sizin bildiğiniz yönlendirme listesiyle örtüşmeli. Döngü ve bozuk zincirler ise ayrı bir yönlendirme hatası durumunda görünür.
  • Tarama aracı: Siteyi bir tarama aracıyla gezip 3xx dönen iç bağlantıları, zincirleri ve döngüleri çıkarın. Hedefi 4xx veya 5xx dönen yönlendirmeleri önce düzeltin.
  • Sunucu kayıtları: Googlebot'un hâlâ sık istediği eski URL'ler, henüz kaldırmamanız gereken yönlendirmeleri gösterir.

Sık yapılan hatalar

  • Kalıcı taşımada 302 bırakmak. Genellikle varsayılan ayarlardan veya eklentilerden kaynaklanır. Arama sonuçlarında eski adres görünmeyi sürdürebilir.
  • Döngü kurmak. MDN, sunucu döngüyü fark ettiğinde çoğunlukla 500 Internal Server Error döndürdüğünü, fark edemediğinde tarayıcının hata sayfası gösterdiğini anlatıyor. Sunucu ayarı değiştikten hemen sonra gelen hata çoğu zaman döngü işaretidir.
  • HTTPS'ten HTTP'ye yönlendirmek. Google, bunun sistemlerin HTTP sürümünü çok güçlü biçimde tercih etmesine yol açtığını yazıyor.
  • Her şeyi ana sayfaya göndermek. İlgisiz hedef kullanıcıyı şaşırtır ve yumuşak 404 (soft 404) olarak değerlendirilebilir.
  • Yönlendirme ile canonical etiketini çeliştirmek. A sayfası B'ye yönlenirken B'nin canonical etiketi A'yı gösteriyorsa Google'a çelişkili sinyal verirsiniz.
  • Gecikmeli meta refresh kullanmak. Gecikmeli olanı geçici sayılır. MDN de erişilebilirlik için süreyi 0 tutmayı öneriyor.

Yönlendirme kurallarının düzenli denetimi, teknik SEO çalışmasının olağan bir parçasıdır. Kurallar her yeni kampanya ve tasarım değişikliğiyle birikir.

Yarın en değerli 20 sayfayı test edin

Search Console'dan en çok tıklama alan 20 sayfayı alın. Her birinin eski sürümlerini, yani http ile başlayanı, www'suz olanı ve sonunda eğik çizgi bulunanı listeleyin. Hepsini curl -I ile tek tek sorgulayın. Her biri tek adımda, kalıcı bir kodla ve 200 dönen son adrese gitmeli. Birden fazla adım atan veya 302 dönen her satır, ilk düzeltme listenizi oluşturur.

Kaynaklar

  1. IETF, RFC 9110: HTTP Semantics, Haziran 2022
  2. MDN Web Docs, Redirections in HTTP
  3. Google Search Central, Redirects and Google Search, Nisan 2026 güncellemesi
  4. Google Search Central, How HTTP status codes and network errors affect Google Search, Şubat 2026 güncellemesi
  5. Google Search Central, How to specify a canonical URL, Temmuz 2026 güncellemesi
  6. Google Search Central, Minimize A/B testing impact in Google Search
  7. Chrome for Developers, Avoid multiple page redirects (Lighthouse)
  8. Search Console Yardım, Page indexing report