308 Kalıcı Yönlendirme

308 Permanent Redirect ile 301 arasındaki yöntemi ve gövdeyi koruma farkını, Google ve Bing açısından SEO eşdeğerliğini, API/form/webhook kullanımlarını ve kablo üzerinde doğrulama yollarını açıklar.

İlk yayın tarihi: 28 Haz 2026 · Son güncelleme: 22 Ağu 2026 · Advanced
Diller
Bu sayfada 1 kanıt sinyali

308, 301 gibi kalıcı bir yönlendirmedir; farkı, istemcinin yeni URL’de istek yöntemini değiştirememesi ve uyumlu istemcide gövdenin de taşınmasıdır. Google 308’i 301’e eşdeğer SEO sinyali sayar. Düz GET sayfalarında 301 varsayılandır; geçici 302 veya yöntem koruyan 307 yerine gövdeli API, form veya webhook isteği korunacaksa 308 kullanın ve gerçek istemci ile aracı katmanında doğrulayın.

Kısa özet — 308, yöntemi kesin biçimde koruyan kalıcı yönlendirmedir. 301 ile aynı kanonikleştirme sinyalini verir; Google belgeleri onu “Equivalent to 301 (çeviri)301 ile eşdeğer” diye tanımlar. Buna ek olarak istemcinin yeni URL’de yöntemi değiştirmemesini garanti eder. Uyumlu istemci yeni bir istek oluşturmak yerine aynı isteği tekrar ettiği için gövde de taşınır. HTTP’de yöntemi koruyan geçici kod (307), kalıcı eşdeğerinden yıllar önce vardı; RFC 7538 (2015) bu boşluğu doldurdu ve RFC 9110 artık 301 tanımından doğrudan 308’e yönlendiriyor. SEO açısından ikisi birbirinin yerine kullanılabilir: Illyes, Google’ın 308’i 301 ile “birleştirdiğini” söyledi; Bing’den Canel de eşdeğerliği doğruladı. API/sürüm geçişleri, webhook URL’leri ve kimlik doğrulama veya form POST akışları gibi GET dışı isteğin korunması gereken durumlarda 308 kullanın. Yine de yöntem ve gövde korumasını yalnızca spesifikasyona güvenmek yerine kendi istemcinizle doğrulayın. Diğer durumlarda 301 varsayılan kalır. 308’in tarayıcı desteği 2026’da güçlüdür (caniuse yaklaşık %96,5’in üzerinde gösteriyor), ancak RFC 9110 kodun daha genç olduğunu ve her yerde tanınmayabileceğini hâlâ belirtir; bazı CMS eklentileri, edge kural arayüzleri ve eski proxy’ler yalnızca 301/302/307 sunar.

308 mekanik olarak ne anlama gelir

308 Permanent Redirect, 301 ile aynı mesajı taşır — bu kaynak artık kalıcı olarak yeni bir URL’de yaşıyor — ancak 301’in garanti etmediği bir ek vardır: istemci hedefte istek yöntemini değiştirmemelidir. İstemci yeni bir istek çıkarmak yerine aynı isteği tekrarladığı için, spesifikasyona uyan bir istemcide gövde de onunla gider. Bu, ayrı bir sertifikalı söz değil, yöntem garantisinin sonucudur; bu yüzden kesin varsaymak yerine kendi istemciniz ve sunucunuzla uçtan uca doğrulayın. MDN, 308’i yönlendirme boyunca istek yöntemini (pratikte gövdeyi de) değiştirmeden koruyan kod olarak açıklar; 301 bunu yapmayabilir.

Ahrefs yönlendirme rehberimde kullandığım sade anlatım şöyledir: “A 308 redirect is the same as a 301 redirect, except it retains the HTTP method of the original request, GET or POST, when performing the redirect.” (Türkçe çeviri) “308 yönlendirmesi, yönlendirme sırasında özgün isteğin GET veya POST olan HTTP yöntemini koruması dışında 301 yönlendirmesiyle aynıdır.” Daha kısa olarak HTTP durum kodları rehberinde şöyle derim: “308 Permanent Redirect – Has the same functionality as a 301 redirect, except you can’t switch between POST and GET.” (Türkçe çeviri) “308 Permanent Redirect, POST ile GET arasında geçiş yapılamaması dışında 301 yönlendirmesiyle aynı işlevi görür.” Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent Redirect

Farkı somutlaştıralım. Bir istemcinin /api/orders adresine JSON gövdesiyle bir sipariş POST ettiğini düşünün:

POST /api/orders HTTP/1.1
Host: shop.example.com
Content-Type: application/json

{ "sku": "A-100", "qty": 2 }

Bu uç nokta 301 döndürür ve istemci eski “GET’e çevirebilirsin” iznini kullanırsa istek yeni URL’ye boş bir GET olarak ulaşabilir; gövde kaybolur, sipariş düşer. 308 döndürürseniz istemci POST’u yeni URL’de tekrarlamak zorundadır; uyumlu istemci gövdeyi de taşır ve sipariş işlenir. Bunu evrensel varsaymayın; kendi istemciniz ve sunucu günlüklerinizle doğrulayın (bkz. Scripts sekmesi). Pratik farkın tamamı budur: yalnızca özgün istek düz bir GET olmadığında ortaya çıkar.

308 neden var — spesifikasyon tarihçesi

Çoğu açıklamanın atladığı, kodu anlamanın en temiz yolu olan bölüm budur.

Önce 307 geldi. HTTP, kalıcı eşdeğeri ortaya çıkmadan çok önce yöntemi koruyan geçici yönlendirmeye, yani 307’ye sahipti. İlk temel spesifikasyon RFC 7231, 307’nin kalıcı karşılığını tanımlamadı. Dolayısıyla geçici bir “yöntemi koru” kodu ile kalıcı bir “yöntemi değiştirebilirsin” kodu (301) vardı; ancak kalıcı bir “yöntemi koru” kodu yoktu.

RFC 7538 boşluğu doldurdu. 308, eksik kalıcı 307 olmak için eklendi — önce deneysel RFC 7238 olarak (Haziran 2014), ardından RFC 7538 ile standartlaştırıldı (Nisan 2015). Gerçek bir boşluğu kapatır; 301’in yerine geçmez.

Güncel spesifikasyon doğrudan onu gösterir. Bugünün HTTP semantik standardı olan RFC 9110, 301’in yerleşik belirsizliğini hâlâ belgeler ve ardından 301’in kendi tanımı içinde çözüm olarak 308’i adlandırır: kullanıcı aracısı “MAY change the request method from POST to GET for the subsequent request… If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (Türkçe çeviri) “Sonraki isteğin yöntemini POST’tan GET’e değiştirebilir; bu davranış istenmiyorsa bunun yerine 308 kullanılabilir.” Yetkili spesifikasyondan gelen bu tek cümle 308’in varlık nedenidir. RFC 9110, 308’in kendi bölümünde şu dürüst uyarıyı da ekler: “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (Türkçe çeviri) “Kardeş kodlarından çok daha gençtir (Haziran 2014) ve bu nedenle her yerde tanınmayabilir.”

301’in POST→GET davranışı bir hata değildir; spesifikasyona “tarihsel nedenlerle” işlenmiş belgeli bir izindir. 308, bundan kaçınmanın resmen önerilen yoludur.

301 ve 308 — pratik fark tek tabloda

Düz GET isteğiGövdeli POST/PUT/DELETE
301308 ile aynı davranırGET’e düşürülebilir; gövde kaybolabilir
308301 ile aynı davranırYöntem ve gövdenin tekrarlanması garanti edilir
SEO sinyaliAynı (kalıcı, birleştirir)Aynı (kalıcı, birleştirir)

Sonuç şu: büyük çoğunluğu düz GET olan yönlendirmelerde 301 ve 308 aynı işi yapar. Garanti yalnızca gövdeli GET dışı bir yöntem devredeyken anlam kazanır. (Tam karşılaştırma için özel 301-vs-308 yazısına bakın.)

Google SEO açısından 308 ve 301’i aynı mı ele alır?

Evet, açıkça ve belgeli biçimde. Google’ın HTTP durum kodları belgesi, 301’i Google’ın yönlendirme hedefinin işlenmesi gerektiğine dair güçlü sinyal olarak kullandığı kod diye listeler ve 308 için “Equivalent to 301.” (çeviri)301 ile eşdeğer” der. Ayrıca şu uyarıyı ekler: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (çeviri) “Google bu durum kodlarını aynı şekilde ele alsa da anlamsal olarak farklı olduklarını unutmayın. Diğer istemcilerin yararlanabilmesi için yönlendirmeye uygun durum kodunu kullanın.” Sade Türkçesi: Google “yanlış” kod için ceza vermez; ancak başka yazılımlar ayrıma güvendiğinden isteğe uygun kodu seçmelisiniz.

Evidence for this claim Google treats 308 as equivalent to 301 for Search and groups both as permanent redirects. Scope: Google Search processing; the two status codes remain semantically different for HTTP clients. Confidence: high · Verified: Google: HTTP status codes and Search Google: Redirects and Google Search

Google’ın yönlendirmeler belgesi iki kodu da aynı öneri katmanına yerleştirir: “The 301 and 308 status codes mean that a page has permanently moved to a new location.” (çeviri)301 ve 308 durum kodları, bir sayfanın kalıcı olarak yeni konuma taşındığı anlamına gelir.” Site taşıma rehberi de 308’i 301’in sonradan eklenmiş bir ayrıntısı gibi ele almaz; kalıcı taşımada “301 ve 308 gibi” kalıcı HTTP yönlendirmelerinin kullanılmasını açıkça önerir.

Şunu bilmek faydalı: bu eşdeğerlik her zaman belgeli değildi. Gary Illyes, Google’ın 308’i içeride 301 ile birleştirdiğini söyledi; Search Engine Roundtable haberi, bunun resmî belgelere girdiği anı, gayriresmî bir açıklamanın güvenilebilir bir belgeye dönüştüğü an olarak çerçeveliyor. Birkaç yıl önce “bu gerçekten belgeli mi?” diye soran site sahiplerinin temkinli olması doğruydu; temel davranış değişmemişti. Google ve temsilcilerinin tam ifadeleri için doğrulanmış alıntıların ve derin bağlantıların bulunduğu Quotes sekmesine bakın.

Bing 308 ve 301’i aynı mı ele alır?

Evet. Bing’in Google’daki gibi 308’i açıklayan özel bir doküman sayfası yok; ancak Microsoft’tan Fabrice Canel bunu Eylül 2024’te X’te doğrudan doğruladı. Search Engine Roundtable haberi, Bing’in 308 yönlendirmelerini 301 yönlendirmeleriyle aynı ele aldığını aktarır. Bu, Bing için yetkili açıklamadır; kelimesi kelimesine alıntı için Quotes sekmesine bakın.

308 ne zaman gerçekten kullanılmalı

308 için bağımsız kullanım gerekçesi burada başlar ve neredeyse her zaman GET dışı bir istektir.

API uç noktası ve sürüm geçişleri. /v1/ yolunu /v2/ yoluna taşımak veya bir API ana bilgisayarını değiştirmek klasik örnektir. İstemciler bu uç noktalara POST/PUT/PATCH/DELETE ve gerçek gövdeler gönderir. 308 yöntemle yükün sıçramadan geçmesini garanti eder; 301 isteği sessizce düşürerek kaybedebilir.

POST ağırlıklı site taşımaları. Ödeme akışları, giriş/kimlik doğrulama uç noktaları ve form eylem hedefleri veri POST eder. Bu URL’lerden biri taşıma sırasında değişirse 308, 301’in koruyamayabileceği gönderimi sağlam tutar.

Webhook URL değişiklikleri. Başka bir servis taşımakta olduğunuz webhook URL’sine POST yaptığında 308, HTTP istemcisine gövdeyi koruyarak yeni adrese yeniden POST etmesini söyler; webhook tüketicisinin ihtiyacı tam olarak budur.

Ortak nokta şudur: gövdenin kaybolması veya yöntemin sessizce GET’e düşmesi işlevselliği bozacaksa 308 kullanın; yalnızca biraz SEO değeri taşımak için değil.

Bunlardan birini devreye almadan önce yalnızca durum kodunu değil, entegrasyonu test edin:

  • Gerçek yöntemi ve yükü yeni uç noktanın hazırlık kopyasına yeniden gönderin.
  • Yetkilendirme başlıklarının veya çerezlerin taşınması gerekip gerekmediğini doğrulayın ve gerçekten taşındığını kontrol edin.
  • Özgün istek idempotent değilse (örneğin sipariş oluşturan bir POST), yönlendirme sırasında yinelenen yan etkilere bakın.
  • Yalnızca gövdenin değil, sorgu dizesinin ve Content-Type başlığının da korunduğunu doğrulayın.
  • Eski uç noktayı emekliye ayırmadan önce gerçek istemcinin — webhook göndericisi, API SDK’sı veya tarayıcı — 308’i otomatik izlediğini doğrulayın. Her HTTP istemcisi bunu varsayılan olarak yapmaz.

301 hâlâ ne zaman pratik varsayılandır

Düz GET olan her şey için 301 makul varsayılan olmaya devam eder:

  • Sıradan içerik/sayfa URL değişiklikleri.
  • http → https geçişleri.
  • Alan adı değişiklikleri ve standart site taşımaları.
  • Sondaki eğik çizgi ile www/www olmayan normalleştirmesi.

Buradaki istek sıradan bir GET’tir; dolayısıyla 308’in garantisi ek yarar sağlamaz ve evrensellik açısından 301 öne çıkar. İkisinin de SEO maliyeti yoktur. Sıralama artışı umuduyla mevcut 301’leri topluca 308’e taşımayın; böyle bir kazanç yoktur. Ahrefs yönlendirmeler rehberindeki tercih sıralamasında 308 ile 301 en üst katmanı birlikte paylaşır; meta refresh, JavaScript ve diğer geçici çözümlerin önündedirler. Biri diğerinin basamağı değil, eşdeğer seçeneklerdir.

Benimseme ve destek uyarıları — 2026’da gerçek risk nedir

Tarayıcı desteği eskisi gibi pratik risk değildir. caniuse güncel takibinde 308 için küresel desteği yaklaşık %96,5+ gösteriyor; oran değiştiği için canlı tabloyu kontrol edin. Görünür boşluklar yıllardır ölü olan tarayıcılarda yoğunlaşıyor: IE11 öncesi, eski Chrome/Firefox/Safari ve eski Android Browser. Hâlâ dolaşan “IE11 gibi eski tarayıcılarda 308 bozulur” uyarısı ana akım trafik için güncel değildir.

Güncel uyarı daha çok araçlarla ilgilidir. 2026’daki gerçek boşluk, her katmanın 308 seçeneği sunmamasıdır. Bazı CMS yönlendirme eklentileri, CDN/edge kural arayüzleri ve eski ters proxy’ler veya yük dengeleyiciler hâlâ yalnızca 301/302/307 seçmenize izin verir. 308’e karar vermeden önce yönlendirmeyi gerçekten sunan katmanın bunu sessizce başka koda düşürmek yerine 308 döndürebildiğini doğrulayın; Scripts sekmesinde ağdaki gerçek durum kodunu denetleyen tek satırlık komut bulunur. RFC 9110’un “much younger… might not be recognized everywhere” (çeviri) “çok daha gençtir… her yerde tanınmayabilir” notu yalnızca tarayıcılarla sınırlı değildir; spesifikasyonun 308 için genel dağıtım uyarısıdır. 2026’da bunun pratik etkisi ana akım tarayıcılardan çok araçlarda görülür, ancak not hâlâ temel uyarı olarak okunmalıdır.

Standart dışı dipnot: “308 Resume Incomplete”

Bu kodun hâlâ genç olduğunu gösteren bir ayrıntı: 308 gerçek dünyada yalnızca yönlendirme değildir. Google Drive yükleme API’si 308’i tamamen farklı bir anlamla — “Resume Incomplete” — yeniden kullanır; parçalı yüklemenin durduğunu ve istemcinin devam etmesi gerektiğini bildirir. John Mueller bunu kendisi de işaret etti; MDN aynı standart dışı kullanımı belgeler. Bu, 308 yönlendirmesini değiştirmez, ancak 308’in 301 kadar yerleşik olmayan, daha yeni bir durum kodu olduğunu iyi gösterir.

Yönlendirme zincirleri ve sıçramalar her iki kodda da aynıdır

Yukarıdakilerin hiçbiri yönlendirme zincirlerinin işleyişini değiştirmez. Google tarayıcıları varsayılan olarak en fazla 10 yönlendirme sıçramasını izler. Bu evrensel sabit değil, varsayılandır; Google belgeleri belirli ürünlerin farklı davranabileceğini belirtir. Örneğin URL Inspection aracı yönlendirmeleri hiç izlemez. Bu nedenle 10 sayısını sonsuza dek değişmez kabul etmek yerine güncel değeri Google belgelerinden kontrol edin. Varsayılan sınır, sıçramalar ister 301 ister 308 olsun aynıdır. Eski bir API yolunun hedefe varmadan iki kez yönlenmesi gibi zincirler oluşturuyorsanız aynı zincir ve döngü temizliği geçerlidir: mümkün olduğunda zinciri tek sıçramaya indirin. İşleyiş ayrıntıları için yönlendirme zincirlerine ayrılmış makaleye bakın.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.