Geri/İleri Önbelleği (bfcache)

Bir sayfanın tamamını bellekte dondurarak Geri/İleri gezinmelerinin anında gerçekleşmesini sağlayan tarayıcı özelliği bfcache’in ne olduğu, HTTP önbelleğinden farkı, uygunluğu engelleyen etkenler, nasıl test edildiği ve Core Web Vitals ile SEO’yla gerçek ancak dolaylı ilişkisi.

İlk yayın tarihi: 3 Tem 2026 · Son güncelleme: 9 Ağu 2026 · Advanced
Diller

Geri/İleri önbelleği (bfcache), başka bir sayfaya gittiğinizde sayfanın tamamını — DOM’u, JavaScript heap’ini ve çalışma durumunu — bellekte donduran bir tarayıcı optimizasyonudur. Tarayıcı bu donmuş anlık görüntüyü bellekten çıkarmamışsa Geri veya İleri düğmesine basıldığında sayfa yeniden yükleme, yeniden işleme ve ağ isteği olmadan anında geri getirilebilir. Bu bir tarayıcı özelliğidir, arama sıralama faktörü değildir; Google’ın kendi Core Web Vitals sıralama belgelerinde bfcache’ten söz edilmez. SEO açısından etkisi dolaylı ve sınırlıdır: bfcache üzerinden geri yüklenen bir gezinme, bundan yararlanan kullanıcılar için neredeyse anında LCP ve fiilen sıfır CLS sağlar. Bu durum, Geri/İleri trafiği anlamlı düzeyde olan sitelerde — masaüstündeki her 10 gezinmeden 1’i ve mobildeki her 5 gezinmeden 1’i — toplam alan Core Web Vitals ölçümlerini iyileştirebilir; ancak geri yükleme oranını, genel CWV değerlendirmesini, sıralamaları veya dönüşümü garanti etmez. En büyük engel unload olay işleyicisidir; geçmişteki en büyük engel ise Cache-Control: no-store olmuştur. Bununla birlikte Chrome, 2025 dağıtımından beri birçok no-store sayfası için bfcache kullanımına koşullu olarak izin vermektedir. Tek seferlik laboratuvar kontrollerini Chrome DevTools ile, alan verisi incelemelerini ise yalnızca Chrome’da bulunan notRestoredReasons API’siyle yapın. Bfcache’i HTTP önbelleğiyle, tarayıcının bellek içi kaynak önbelleğiyle, bir service worker’ın Cache Storage alanıyla veya kullanımdan kaldırılmış eski 'cached page' arama özelliğiyle karıştırmayın.

TL;DR — Bfcache, yeniden getirilebilir bir HTTP yanıtı, tarayıcının bellek içi kaynak önbelleği veya bir service worker’ın Cache Storage alanı değil; sayfanın tamamının bellek içi anlık görüntüsüdür (DOM + JS heap + çalışma durumu). Kavranması gereken bir numaralı kavramsal ayrım budur. Sayfadan ayrılırken tarayıcı JS’yi duraklatır ve sayfayı dondurur. Geri/İleri gezinmesinde, eğer bu dondurulmuş anlık görüntü hâlâ mevcutsa, donmayı çözüp sıfır ağ isteğiyle sayfayı anında yeniden gösterir. Ancak bellekten çıkarılma her zaman mümkündür; bu nedenle geri yüklemeyi garanti değil, olasılık olarak değerlendirin. Bfcache, belgelenmiş bir Google Arama sıralama faktörü değildir; Search Central’ın Core Web Vitals belgelerinde bundan hiç söz edilmez. İlgisi dolaylı ve sınırlıdır: Geri yüklenen gezinmelerin alan CWV ölçümleri (özellikle LCP ve CLS) üzerinden etki eder; geri yükleme oranını, toplam CWV değerlendirmesini, sıralamaları veya dönüşümü garanti etmez. En büyük uygunluk engeli unload işleyicisidir (Chrome’daki isabet oranında ~18 yüzde puanı). Tarihsel olarak en büyük engel ise Cache-Control: no-store idi (mobil geçmiş gezinmelerinin ~17%‘sini, masaüstündekilerin ~7%‘sini engelliyordu). Ancak Chrome, 2025 dağıtımından sonra birçok no-store sayfası için belirli koşullarla bfcache’e izin veriyor; kimlik doğrulama/çerez değişiminde sayfa bellekten çıkarılıyor ve aynı açık bağlantı API’leri engel olmaya devam ediyor. Açık bağlantılar, zamanlayıcılar ve gözlemciler pagehide/freeze sırasında kapatılmalı veya duraklatılmalı, pageshow/resume sırasında yeniden kurulmalıdır. window.opener, izin politikaları ve çerçeveler de engel olabilir; varsayımda bulunmak yerine DevTools veya notRestoredReasons içindeki çerçeve başına nedeni kontrol edin. Tek seferlik testler için Chrome DevTools’u, alan tanılaması için yalnızca Chrome’da bulunan notRestoredReasons API’sini kullanın (null sonucu geri yükleme kanıtı değildir ve neden metni kararlı değildir). Her tarayıcının kendi uygunluk kuralları vardır; SPA’lerin yumuşak gezinmeleri aynı şekilde işlenmez.

Evidence for this claim The back-forward cache stores a complete page snapshot for instant history navigation. Scope: Current official or standards documentation. Confidence: high · Verified: web.dev: Back/forward cache Evidence for this claim Browser eligibility rules and APIs such as unload handlers can prevent bfcache use. Scope: Current official or standards documentation. Confidence: high · Verified: web.dev: bfcache eligibility

Bfcache gerçekte nedir? (doğruluğun temeli)

Doğru anlaşılması gereken en önemli nokta şudur: bfcache, önbelleğe alınmış bir HTTP yanıtı değil, sayfanın tamamının bellek içi anlık görüntüsüdür. Bir sayfadan ayrıldığınızda tarayıcı sayfayı ortadan kaldırmak yerine JavaScript yürütmesini duraklatır ve DOM, JS heap, devam eden zamanlayıcılar ve diğer her şey dâhil sayfanın tamamını dondurarak bellekte tutar. Bu dondurulmuş anlık görüntü hâlâ mevcutken Geri veya İleri düğmesine basarsanız tarayıcı donmayı çözer ve bıraktığınız sayfayı sıfır ağ isteği ve sıfır yeniden işleme ile yeniden gösterir. Bu, mümkün olan bir geri yüklemedir; garanti değildir. Tarayıcı siz geri dönmeden önce bellek baskısı, zaman aşımı veya belirli olaylar nedeniyle anlık görüntüyü bellekten çıkarabilir ya da tarayıcıya özgü bir kural yeni yüklemeyi zorunlu kılabilir. Böyle bir durumda sıradan bir geçmiş gezinmesi gerçekleşir. Google’ın yerleşik tanımı şöyledir: bfcache, “a browser optimization that enables instant back and forward navigation.”

Bunu HTTP/tarayıcı önbelleğiyle karıştırmak, rakip içeriklerde tekrar tekrar görülen hatanın nedenidir. HTTP önbelleği, yeniden sunabileceği dosyalar olan önceki isteklerin yanıtlarını saklar. Bfcache ise canlı ve çalışır durumdaki sayfayı saklar. Chrome’un DevTools belgeleri ayrımı açıkça yapar: bfcache “differs from browser cache and HTTP cache.” HTTP önbelleğini yapılandırdığınız gibi önbellekleme başlıklarıyla bfcache’i “açmazsınız”. Başlıkların konuya dâhil olduğu tek nokta, Cache-Control: no-store değerinin eskiden bir sayfayı uygunsuz kılmasıdır (aşağıda daha ayrıntılı ele alınmıştır).

Aynı ayrım, insanların bazen bfcache ile karıştırdığı iki başka önbellek için de geçerlidir: Geçerli oturum boyunca tutulan derlenmiş betikleri ve kodu çözülmüş görselleri içeren tarayıcının bellek içi kaynak önbelleği ile sitenin caches.open() üzerinden kendisinin yönettiği açık istek/yanıt çiftlerini içeren bir service worker’ın Cache Storage alanı. İkisi de bfcache ile aynı anda aynı sayfada etkin olabilir; ancak hiçbiri bfcache değildir. Bfcache, önbelleğe alınmış varlıklar veya yakalanan yanıtlar değil, özellikle dondurulmuş sayfa örneğidir.

Hâlâ karışıklığa yol açtığı için bir ayrımı daha belirtmek gerekir: bfcache’in, Google’ın (ve Bing’in) bir zamanlar sonuçlarda sunduğu eski “cached page” arama özelliğiyle hiçbir ilgisi yoktur. O özellik, arama dizininde saklanan bir sayfa anlık görüntüsüydü ve kullanımdan kaldırıldı. Bfcache, istemci tarafında çalışan bir işleme motoru özelliğidir.

Geri/İleri gezinmeleri gerçekte ne kadar yaygın?

Bu, nadir görülen uç bir durum değildir. web.dev’e göre, “1 in 10 navigations on desktop and 1 in 5 on mobile are either back or forward.” E-ticarette kategori-ürün-geri akışları, arama sonuçları, sayfalandırılmış içerikler ve makaleler arası okuma gibi tekrarlanan Geri/İleri akışlarına sahip herhangi bir sitede bu, neredeyse anında gerçekleşmesini sağlayabileceğiniz gerçek gezinmelerin büyük bir bölümüdür.

Tarayıcı desteği

“All major browsers include a bfcache, including Chrome since version 96, Firefox and Safari.” Firefox ve Safari’nin daha uzun süredir kullanılan kendi bfcache uygulamaları vardır; Chromium tabanlı tüm tarayıcılar (Edge, Brave, Opera, Arc) Chrome’un uygulamasını devralır. Microsoft’un Edge politika belgeleri aynı özelliği şöyle açıklar: Bir sayfadan ayrılırken sayfanın geçerli durumu (belge ağacı, betik vb.) geri/ileri önbelleğinde korunabilir. Tarayıcı sayfaya geri dönerse sayfa bu önbellekten geri yüklenerek önbelleğe alınmadan önceki durumunda gösterilebilir. Özellik Edge’de varsayılan olarak etkindir; tek kapatma seçeneği site sahibinin değil, BT yöneticisinin denetlediği kurumsal politikadır.

Önemli uyarı: Her tarayıcının bfcache’i kendi uygunluk kurallarını uygular. Chrome DevTools’un “Test back/forward cache” testini geçen bir sayfanın Firefox veya Safari’de uygun olacağı garanti değildir. Chrome’dan geçmeyi gerekli ancak yeterli olmayan bir koşul olarak değerlendirin.

Bfcache uygunluğunu neler engeller?

unload olayı — en büyük engel

Bu makaleden tek bir şey çıkaracaksanız şu olsun: unload olayını kullanmayı bırakın. web.dev, bir Google belgesinde nadiren görülen bir vurguyla şöyle der: “Never use the unload event. Ever!” Chrome’da unload işleyicileri, bfcache isabet oranında yaklaşık 18 yüzde puanlık düşüşe yol açar ve açık ara en büyük, kişinin kendi oluşturduğu uygunsuzluk nedenidir.

Chrome’un bunu etkin biçimde kullanımdan kaldırmasının iki nedeni vardır. Birincisi, en büyük bfcache engeli olmasıdır. İkincisi, unload zaten son derece güvenilmezdir: Mobil cihazlarda sekmeler arka plana alınıp kapatıldığı ve tarayıcı unload olayını tetiklemek yerine bfcache’e öncelik verdiği için çoğu zaman hiç tetiklenmez. Dolayısıyla “temizlik” için güvendiğiniz olay çoğu zaman hiç çalışmaz ve gerçek bir performans kazancını engeller.

Düzeltmeler:

  • unload yerine pagehide kullanın. pagehide olayı, unload olayının tetiklendiği her durumda ve ayrıca sayfa bfcache’e girdiğinde tetiklenir; bu nedenle kesin bir iyileştirmedir. Güvenilir “kullanıcı ayrılıyor” temizliği için visibilitychange kullanın.
  • Bfcache geri yüklemesini pageshow ile algılayın. pageshow olayını dinleyip event.persisted değerini kontrol edin. Değer true ise sayfa bfcache’ten geri yüklenmiştir; bu, eski verileri yenilemeniz veya bir sayfa görüntülemesini yeniden saymanız gerektiğini gösterir.
  • Permissions-Policy: unload=() yanıt başlığıyla unload dinleyicilerini önceden engelleyin. Bu başlık, herhangi bir unload işleyicisinin kaydedilmesini tamamen önler. Chrome, varsayılan politikayı aşamalı olarak reddetme yönünde değiştiriyor (unload için Permissions-Policy, Chrome 115 ile sunuldu).

Cache-Control: no-store — tarihsel olarak en büyük engel, artık daha ayrıntılı

Rakip içeriklerin çoğunun yanlış aktardığı güncellik noktası budur. Tarihsel olarak Cache-Control: no-store, sayfaların bfcache dışında bırakılmasının tek başına en büyük nedeniydi. Chrome’un kendi rakamlarına göre mobil geçmiş gezinmelerinin yaklaşık 17%‘sini, masaüstündekilerin ise 7%‘sini etkiliyordu. Birçok site eski bir sayfa sunmamak için savunma amacıyla no-store ayarlar. Ancak Google’ın savı, bu gerekçenin bfcache bağlamında zayıfladığıdır: Bfcache geri yüklemesi eski ve önbelleğe alınmış bir yanıtı yüklemez; sekme açık bırakılmışçasına canlı sayfanın tam hâlini yeniden gösterir.

Bu nedenle Chrome davranışı değiştirdi; ancak evrensel değil, koşullu olarak. Denemeler Chrome 116’da başladı ve Mart ile Nisan 2025 boyunca kullanıcıların 100%‘üne nihai dağıtım yapıldı. Chrome artık genel bir istisna yerine belirli güvenlik koşullarına bağlı olarak birçok no-store sayfası için bfcache’e izin veriyor. Chrome’un kendi belgelerine göre bunun gerçek kısıtlamaları vardır: Sayfa donmuşken kimlik doğrulama durumu veya çerezler değişirse bfcache’ten çıkarılır. Böylece çıkış yapmış veya çerezlerini temizlemiş bir ziyaretçi, oturumun açık olduğu eski bir anlık görüntüyü görmez. Ayrıca aşağıda ele alınan aynı açık bağlantı API’lerinden oluşan sabit liste (IndexedDB, WebSocket, WebRTC ve diğerleri), diğer sayfalarda olduğu gibi bir no-store sayfasını da bfcache dışında bırakmaya devam eder. Bu, belirli bir sürüm aralığına özgü Chrome davranışıdır; diğer tarayıcıların veya eski Chrome sürümlerinin izlediğini varsayabileceğiniz bir kural değildir. Sabit bir genel kurala güvenmek yerine gerçekten test ettiğiniz tarayıcı ve sürüm için güncel DevTools/notRestoredReasons raporunu alın. Pratik sonuç: no-store değerini koşulsuz ve kalıcı bir bfcache engeli olarak listeleyen her rehber (bu rehberin eski sürümleri dâhil) güncelliğini yitirmiştir; ancak sorunun tamamen çözüldüğünü söylemek de güncel değildir. Bir sayfa için güncellik gerçekten önemliyse Chrome belgeleri, no-store yerine no-cache veya kısa bir max-age (ör. max-age=60) önerir.

Açık bağlantılar, gözlemciler ve diğer engeller

Gezinme anında belirli açık kaynaklar uygunluğu hâlâ engelleyebilir. Tam olarak hangilerinin engel olduğu ve bunların uygunluğu doğrudan mı engellediği yoksa kapatılıp yeniden bağlanabilir mi hâle geldiği tarayıcıya ve sürüme göre değişir. Aşağıdaki listeyi sabit ve kalıcı bir engel listesi olarak değil, bir örüntünün örnekleri olarak değerlendirin:

  • Devam eden fetch() / XMLHttpRequest istekleri.
  • Açık IndexedDB işlemleri.
  • Açık WebSocket / WebRTC bağlantıları, zamanlayıcılar ve gözlemciler (MutationObserver, IntersectionObserver ve benzerleri). Bu alan etkin biçimde gelişmektedir. Yakın tarihli Microsoft Edge sürüm notları, açık bir WebSocket’ın artık sayfa bfcache’e girdiğinde önbelleğe almayı doğrudan engellemek yerine kapatıldığını gösteriyor. pageshow olayındaki event.persisted kontrolüyle yeniden bağlanılması öneriliyor. Bu, Chrome’un sayfaları dışlamak yerine engelleri azaltma yönündeki daha geniş eğilimini yansıtır.

Sabit bir listeyi ezberlemek yerine uygulamanız gereken genel örüntü şudur: pagehide/freeze işlemlerinizde açık bağlantıları, zamanlayıcıları ve gözlemcileri kapatın veya duraklatın; event.persisted true olduğunda bunları pageshow/resume işlemlerinizde yeniden kurun. Bu örüntü, tarayıcı hangi API’lerin uygunluğu doğrudan engellediğini ve hangilerini artık yalnızca askıya alıp yeniden bağlanmanıza izin verdiğini değiştirse bile geçerliliğini korur.

window.opener, izin politikaları ve çerçeveler. Bir window.opener başvurusu, belirli izin politikaları ve gömülü (aynı veya farklı kaynaklı) iframe’ler de uygunluğu etkileyebilir. Bunlar, Ahrefs CLS rehberinde ve Chrome belgelerinde derlediğim kontrol listesinde yer alır. Ancak genel bir kontrol listesine bakarak gerçek nedenin hangisi olduğunu varsaymayın. Chrome’un DevTools paneli ve notRestoredReasons API’si, engelleme nedenlerini çerçeve başına, yani üst çerçeve ve her iframe için ayrı ayrı bildirir. Bunun nedeni, engelden gerçekten sorumlu olan çerçevenin her zaman üst düzey sayfa olmamasıdır. Genel bir listeden tahminde bulunmak yerine test ettiğiniz tarayıcının çerçeve düzeyindeki raporundan gerçek nedeni alın.

Yaşam döngüsü olay/durum sırasını doğru kurma

Her yaşam döngüsü olayının gerçekte neyi kanıtladığı ile yalnızca neye işaret ettiğini karıştırmak, yukarıdaki uygunluk hatalarından sonra burada görülen en yaygın ikinci doğruluk hatasıdır:

Olay / durumSinyalGerçekte ne anlama gelir?Ne yapılmalı?
pagehide (event.persisted === true)Önbelleğe alma niyetiTarayıcı sayfayı bfcache için dondurmaya çalışıyor; bu, doğrulanmış bir önbellek kaydı değildirBağlantıları, zamanlayıcıları ve gözlemcileri burada kapatın/duraklatın; sayfanın gerçekten geri yükleneceğini varsaymayın
freezeDuraklatıldıJS yürütmesi duraklatılmıştır; sayfa herhangi bir geri yüklemeden önce yine de bellekten çıkarılabilirpagehide sırasında zaten yaptıklarınızın ötesinde bir işlem gerekmez
(olay yok) olası bellekten çıkarmaTarayıcı dondurulmuş bir sayfayı bellek baskısı, zaman aşımı veya tarayıcı kuralı nedeniyle herhangi bir anda bellekten çıkarabilir; bunun için tetiklenen bir olay yokturTemizleme kodunun daha sonra çalışmasına güvenmeyin; temizliği pagehide/freeze sırasında koşulsuz yapın
pageshow (event.persisted === true)Doğrulanmış geri yüklemeBfcache geri yüklemesinin gerçekten gerçekleştiğini gösteren tek güvenilir sinyalZamana duyarlı/hassas durumu yenileyin, kapatılan bağlantıları yeniden kurun ve tam olarak bir analiz görüntülemesi sayın
resumeSürdürüldüDoğrulanmış bir geri yüklemenin ardından JS yürütmesi yeniden başlatılmıştırfreeze sırasında duraklatılan her şeyi yeniden bağlayın

Pratik kural şudur: pagehide.persisted değerini kanıt değil, niyet olarak değerlendirin; sayfa bir geri yükleme görülmeden önce bellekten çıkarılabilir. Yalnızca pageshow.persisted === true, geri yüklemenin gerçekleştiğinin kanıtıdır. Temizliği pagehide/freeze sırasında koşulsuz yapın; sıradan gezinmede bile ucuz ve güvenlidir. Geri yüklemeye özgü işleri ise yalnızca event.persisted koşuluyla pageshow/resume sırasında yapın. Böylece sıradan yeni yüklemede verileri gereksiz yere yenilemez veya bir analiz görüntülemesini iki kez saymazsınız.

Bfcache nasıl test ve teşhis edilir?

Laboratuvar / tek seferlik: Chrome DevTools

DevTools → Application → Background services → Back/forward cache yolunu açın ve “Test back/forward cache” seçeneğine tıklayın. Chrome otomatik olarak chrome://terms/ adresine gidip geri döner ve ardından başarıyı veya engelleme nedenlerinin belirli bir listesini bildirir. Her seferinde tek bir URL’yi kontrol etmek için uygundur.

Alan / üretim: notRestoredReasons API’si

Daha önce uygunluğu kontrol etmenin tek yolu, her seferinde tek URL üzerinde yapılan manuel DevTools testiydi; gerçek kullanıcıların gezinmelerinin neden engellendiğini görmek mümkün değildi. PerformanceNavigationTiming üzerindeki notRestoredReasons özelliği (Chrome 123+ ile sunuldu) bu açığı kapatır: Gerçek alan verilerinde üst çerçeve ve aynı kaynaklı iframe’ler için belirli engelleme nedenlerini bildirir.

const nav = performance.getEntriesByType('navigation')[0];
console.log(nav.notRestoredReasons);

Chrome’un kendi API rehberine göre kullanırken doğru değerlendirmeniz gereken birkaç nokta vardır:

  • Yalnızca Chrome’da kullanılabilir (123+). Firefox ve Safari eşdeğer bir alan API’si sunmaz. Bu nedenle bu tarayıcılardaki geri yükleme oranınızı öğrenmek için manuel nokta kontrolleri yapmanız gerekir.
  • null sonucu yeşil ışık değil, belirsiz bir sonuçtur. Sayfanın geri yüklendiği veya tarayıcının herhangi bir neden toplamadığı anlamına gelebilir. Chrome’un kendi belgeleri, null değerinin başarılı geri yükleme kanıtı olarak değerlendirilmemesini söyler.
  • Neden metni kararlı bir sözleşme değildir. Kesin ifade Chrome sürümleri arasında değişebileceğinden metin üzerinde sabit kodlanmış dize eşleşmeleri kullanmayın; bunun yerine sonuçları nedene göre gruplayıp eğilimi izleyin.

Pratikte, bir düzeltmenin yayımlanmasından önce ve sonra notRestoredReasons verilerini pageshow.persisted geri yükleme oranlarıyla birlikte alın ve tek bir anlık görüntü yerine eğilimi karşılaştırın. API’nin erişemediği tarayıcılar için bunu Firefox ve Safari’deki manuel DevTools/laboratuvar kontrolleriyle eşleştirin. RUM/üretim ortamında büyük ölçekte bfcache tanısı koyarken URL’leri tek tek kontrol etmek yerine başvurulacak araç budur; ancak bunu resmin tamamı olarak görmeyin.

Bfcache ve Core Web Vitals — kesin ilişki

Rakip içeriklerin çoğunun bulanıklaştırdığı ayrıntı ve sahiplenmeye değer yaklaşım şudur.

Bfcache geri yüklemesi nasıl ölçülür? Tarayıcılar ve dolayısıyla CrUX alan verileri, bfcache üzerinden geri yüklenen bir gezinmeyi son derece hızlı bir “sayfa yüklemesi” olarak sayar: Neredeyse anında LCP ve sayfa doğru uygulandığında (hiçbir şeyin düzeninin yeniden hesaplanması gerekmediğinde), yeniden işleme yapılmadığı için fiilen sıfır ek CLS elde edilir. DebugBear’ın gerçek dünya karşılaştırmasında bfcache üzerinden geri yüklenen bir sayfa, önbelleksiz yüklemedeki ~427 ms’ye karşılık yaklaşık 100ms’de LCP’ye ulaştı. Bfcache’in kendi Ahrefs CLS kontrol listemde CLS ve LCP üzerinde etkili bir araç olarak yer almasının nedeni tam olarak budur. Orada bunu kısaca şöyle ifade ettim: “Make sure your pages are eligible for bfcache. The back/forward cache keeps pages in the browser cache. It allows for instant loading of a page that was already loaded, meaning no layout shifts will happen.”

Rakip içeriklerin genellikle aşırı iddiada bulunduğu nokta burası olduğundan iki kapsam uyarısını kesin biçimde belirtmek gerekir. Birincisi, bu yalnızca CrUX’un navigation-type boyutunda back/forward olarak sınıflandırdığı gezinmeleri etkiler; çoğu sitedeki trafiğin büyük bölümünü oluşturan ilk ziyaret veya yeniden yükleme gezinmeleri hakkında hiçbir şey söylemez. İkincisi, geri yükleme alan kullanıcılar için ölçülen deneyimin iyileşmesi bir garanti değildir. Bfcache’ten çıkarılan bir kullanıcı (yukarıdaki yaşam döngüsü tablosuna bakın) normal, iyileştirilmemiş bir yükleme alır. Dolayısıyla bfcache uygunluğu çalışmaları, toplam trafiğinizin sabit bir payını değil, Geri/İleri gezinmelerindeki geri yükleme oranınızı değiştirir; toplam alan Core Web Vitals değerlendirmenizi, sıralamalarınızı veya dönüşüm oranınızı garanti etmez. Bu, genel bir performans veya SEO çözümü değil; belirli ve sınırlı kapsama sahip gerçek ve ölçülebilir bir kaldıraçtır.

Bfcache bir sıralama faktörü müdür? Hayır. Savunulabilir ve farklılaştırılmış iddia budur. Google’ın kendi Core Web Vitals sıralama belgelerinde bfcache’ten hiç söz edilmez. Etkinin dürüst zinciri şöyledir: bfcache uygunluğu → geri/ileri gezinmelerinde daha iyi alan CWV değerleri (özellikle LCP/CLS) → Core Web Vitals, Google’ın sıralama sistemlerinin zaten ödüllendirdiği deneyimle uyumlu olduğunu söylediği birçok “sayfa deneyimi” sinyalinden biridir. Bu, “bfcache sıralamaları yükseltir” iddiasından önemli ölçüde daha zayıf ama daha kesin bir iddiadır. Rakip içeriklerin öne sürmesi gereken, ancak genellikle dikkatle ele almadığı iddia da budur. Ayrıca bfcache doğru biçimde bir işleme motoru özelliğidir; tarayıcı özelliği değildir. Googlebot veya Bingbot’ın sayfalarınızı nasıl taradığıyla hiçbir ilgisi yoktur. Bu nedenle robots.txt veya site haritalarında olduğu gibi “Bing’in SEO için bfcache görüşü” diye bir şey yoktur.

SPA’ler ve yumuşak gezinmeler. Bfcache, gerçek tarayıcı gezinmeleri ve geçmiş olayları üzerinde çalışır. Tek sayfalı bir uygulamadaki istemci taraflı “yumuşak” rota değişikliği (gerçek tarayıcı gezinmesini tetiklemeyen, JS ile gerçekleştirilen görünüm değişimi) bir bfcache olayı değildir ve aynı şekilde işlenmez. Bazı RUM araçlarının Core Web Vitals değerlerini yumuşak gezinmelere atfetme girişimleri, CrUX ile RUM arasında ölçüm uyuşmazlıkları oluşturabilir. JS framework’ü kullanan bir siteyi denetliyorsanız bunu özellikle belirtmek gerekir.

Bfcache engelleri gerçek dünyada ne kadar yaygın?

HTTP Archive’ın Web Almanac çalışması bunu izler. Bu, kapanmış eski bir konu değil; canlı ve değişen bir alandır. 2022 sürümünde mobil sayfaların en az ~22%‘si yalnızca unload ve no-store ölçütleri nedeniyle bfcache için uygun değildi. O zamandan beri site katmanları ve cihazlar genelinde unload işleyicisi kullanımı azalıyor; ancak Cache-Control: no-store kullanımı arttı. 2025 bölümü, bu değeri 2024’teki ~21%‘den yaklaşık 23%‘e yükselmiş olarak veriyor ve artışı kısmen daha fazla kimlik doğrulamalı/kişiselleştirilmiş deneyime ve daha katı uyumluluk gereksinimlerine bağlıyor.

Alıntılanmaya değer, sezgilere aykırı bulgu şu: Daha büyük ve daha yoğun trafikli sitelerin kendi bfcache kullanımını engelleme olasılığı orantısız derecede yüksektir. En büyük 1 000 sitede masaüstü sayfalarının yaklaşık %28’i ve mobil sayfaların %20’si hâlâ unload işleyicileri kullanırken, tüm sitelerde bu oranlar masaüstünde yalnızca ~%11, mobilde ise ~%10’dur. Bunun nedeni çoğunlukla büyük sitelerin daha fazla eski analiz sistemi ve unload bağımlı kod taşımasıdır. Geri/İleri trafiğinden en fazla kaybedecek siteler, çoğu zaman hâlâ kendi önlerine engel koyanlardır.

Bunun yeri

Bfcache, bu gruptaki çeşitli performans araçlarından biridir. Geri yüklenen bir sayfa, düzeni yeniden hesaplanmadan anında yeniden gösterildiğinden sağladığı kazanç Core Web Vitals alan verilerine — özellikle Cumulative Layout Shift ve Largest Contentful Paint ölçümlerine — yansır. Canlı bir sayfa anlık görüntüsü yerine dosyaları saklayan önbelleklemeden farklıdır; ancak Cache-Control başlığı, ikisinin kesiştiği bir noktadır. Bfcache ile Interaction to Next Paint arasında doğrudan bir bağ yoktur; dolayısıyla böyle bir bağlantıyı zorlamayacağım.

Add an expert note

Pin an expert quote

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