Web sitesi önbelleği (cache), bir sayfanın ya da verinin hazırlanmış bir kopyasını geçici olarak saklayıp, bir sonraki istekte her şeyi baştan üretmek yerine bu kopyayı sunma yöntemidir. Doğru kurulduğunda sayfalar daha hızlı açılır, sunucu daha az yorulur. Ama yanlış kurulduğunda eski içerik gösterebilir, formları ve menüleri bozabilir. Bu yazıda önbelleğin katmanlarını ve işletmeniz için ne anlama geldiğini anlatıyoruz.
Kısaca
- Önbellek, sık istenen içeriğin hazır bir kopyasını saklayarak her istekte yeniden üretilmesini önler.
- Bir web sitesinde birden fazla önbellek katmanı vardır: tarayıcı, CDN, sayfa, nesne ve kod (OPcache).
- Sayfa önbelleği çoğu kurumsal sitede en büyük hız kazancını sağlar.
- Kişiye özel içerikler (sepet, üye paneli) önbelleğe alınmamalıdır.
- Agresif optimizasyon ayarları menüleri ve formları bozabilir. Her ayarı test ederek açın.
Önbellek (cache) nedir?
Gündelik bir benzetmeyle başlayalım. Bir kafede her müşteri için filtre kahveyi baştan demlemek yerine, demlenmiş kahveyi termosta hazır tutarsınız. Müşteri beklemez, barista da yorulmaz. Ama termostaki kahvenin de bir ömrü vardır; belli bir süre sonra tazelenmesi gerekir.
Web sitelerinde de durum aynıdır. Bir WordPress sayfası her istendiğinde sunucu PHP kodunu çalıştırır, veritabanından içerikleri çeker, temayı ve eklentileri işler ve sonunda bir HTML sayfası üretir. Önbellek, bu sürecin sonucunu saklar. Bir sonraki ziyaretçiye aynı işlem tekrarlanmadan hazır kopya sunulur.
Önbelleğin iki temel kavramı vardır:
- Tazelik süresi (TTL): Kopyanın ne kadar süre geçerli sayılacağı.
- Geçersiz kılma (invalidation / purge): İçerik değiştiğinde eski kopyanın silinmesi.
Önbellekle ilgili sorunların çoğu bu iki kavramın yanlış ayarlanmasından doğar.
Bir web sitesinde hangi önbellek katmanları var?
Ziyaretçinin tarayıcısından sunucudaki veritabanına kadar her katmanda ayrı bir önbellek olabilir.

1. Tarayıcı önbelleği
Ziyaretçinin tarayıcısı; logo, CSS, JavaScript ve görsel gibi dosyaları kendi cihazına kaydeder. Aynı ziyaretçi başka bir sayfaya geçtiğinde ya da siteye tekrar geldiğinde bu dosyalar yeniden indirilmez.
Tarayıcıya neyi ne kadar süre saklayacağını sunucu, Cache-Control başlığıyla söyler. MDN'nin HTTP önbellek rehberine göre örneğin max-age=604800, yanıtın bir hafta boyunca taze sayılacağı anlamına gelir. Süre dolduğunda tarayıcı, dosyanın değişip değişmediğini sunucuya sorar (ETag ya da Last-Modified ile). Dosya değişmediyse sunucu içeriği yeniden göndermez, kısa bir "304 Not Modified" yanıtı döner.
Uzun süreli tarayıcı önbelleğinin bir püf noktası vardır: Dosya adına bir sürüm ya da özet (hash) eklemek. Böylece dosya değiştiğinde adı da değişir ve tarayıcı yeni dosyayı indirir. Ana HTML sayfası için ise genellikle doğrulamalı, kısa süreli önbellek tercih edilir.
2. CDN önbelleği
CDN, sitenizin dosyalarını dünyanın farklı yerlerindeki sunucularda saklayıp ziyaretçiye en yakın noktadan sunar. MDN bu tür önbellekleri, birden fazla kullanıcıya hizmet veren "paylaşımlı önbellek" olarak sınıflandırır. Kişiye özel yanıtların paylaşımlı bir önbellekte saklanmaması için Cache-Control: private kullanılması gerekir.
3. Sayfa önbelleği (full-page cache)
Sunucu, ürettiği HTML sayfasının tamamını saklar. Sonraki ziyaretçilere PHP ve veritabanı hiç çalıştırılmadan bu hazır sayfa gönderilir. WordPress sitelerinde en büyük hız farkı genellikle buradan gelir.
Sayfa önbelleği bir eklentiyle (ör. WP Super Cache, W3 Total Cache) ya da doğrudan sunucu düzeyinde yapılabilir. LiteSpeed sunucularda bu işi LSCache modülü sunucu düzeyinde yapar ve LiteSpeed Cache eklentisi WordPress tarafında bunu yönetir. Nginx kullanan sunucularda fastcgi_cache benzer bir rol üstlenir.
4. Nesne önbelleği (object cache)
Sayfanın tamamı yerine, sayfayı oluşturan parçaların, yani veritabanı sorgu sonuçlarının saklanmasıdır. WordPress'in kendi nesne önbelleği vardır ama geliştirici belgelerine göre varsayılan olarak kalıcı değildir: Veriler yalnız o istek boyunca bellekte kalır. İstekler arasında saklanması için Redis ya da Memcached gibi bir sistem ve bunu bağlayan bir eklenti gerekir.
Nesne önbelleği özellikle sayfa önbelleğinin kullanılamadığı yerlerde işe yarar: giriş yapmış kullanıcılar, WooCommerce sepet ve ödeme sayfaları, yönetim paneli.
5. Kod önbelleği (OPcache)
PHP her istekte kod dosyalarını okuyup derler. PHP'nin OPcache eklentisi, derlenmiş kodu paylaşılan bellekte saklayarak bu işin her istekte tekrarlanmasını önler. Bu katman genellikle sunucu ya da hosting sağlayıcısı tarafından yönetilir. Açık olup olmadığını sağlayıcınıza sorabilirsiniz.
Önbellek sitenizi ve işinizi nasıl etkiler?
- Hız ve kullanıcı deneyimi: Sayfanın ilk baytının daha hızlı gelmesi, ziyaretçinin içeriği daha erken görmesi demektir. Bu da Core Web Vitals ölçümlerine olumlu yansıyabilir.
- Sunucu yükü ve maliyet: Önbellekten sunulan her istek, sunucunun yeniden çalışmadığı bir istektir. Aynı sunucu daha fazla ziyaretçiyi kaldırabilir. Çoğu zaman daha büyük bir sunucuya geçmeden önce önbelleği doğru kurmak daha verimlidir.
- Ani trafik artışlarına dayanıklılık: Bir kampanya ya da paylaşım sonrası gelen yoğunlukta önbellek, sitenin ayakta kalmasına yardım eder.
- Yanlış kurulumun maliyeti: Eski fiyatın, eski kampanyanın ya da başka bir kullanıcının sepetinin görünmesi, hızdan çok daha pahalı sonuçlar doğurabilir.
Önbellek ne zaman sorun çıkarır?
Eski içerik görünüyor
İçeriği güncellediniz ama ziyaretçiler hâlâ eski hâlini görüyor. Genellikle sayfa önbelleği ya da CDN temizlenmemiştir. İyi önbellek eklentileri içerik güncellendiğinde ilgili sayfaları otomatik temizler. Tema, menü ya da genel ayar değişikliklerinden sonra ise tüm önbelleği elle temizlemek gerekebilir.
Kişiye özel içerik herkese gösteriliyor
Sepet, üye paneli, "Merhaba, Ayşe Hanım" gibi kişiye özel alanlar sayfa önbelleğine alınırsa başka ziyaretçilere de gösterilebilir. Bu sayfalar önbellek dışında tutulmalı ya da kişiye özel parçalar ayrı yöntemlerle (ör. ESI ya da AJAX ile) yüklenmelidir.
Formlar çalışmıyor
Bazı formlar ve eklentiler, güvenlik için süreli bir doğrulama anahtarı (nonce) kullanır. WordPress belgelerine göre bir nonce'ın ömrü varsayılan olarak bir gündür ve fiilen 12 ile 24 saat arasında geçerli kalır. Bu anahtarı içeren sayfa, nonce'ın ömründen daha uzun süre önbellekte tutulursa form gönderimleri hata verebilir. Form eklentisinin önbellekle uyumlu çalışıp çalışmadığını kontrol edin ve formu gerçekten gönderip test edin.
Agresif optimizasyon menüleri ve formları bozuyor
Önbellek eklentileri yalnız önbellek değil, sayfa optimizasyonu da yapar: CSS ve JavaScript birleştirme, küçültme, JavaScript'i erteleme. Bu ayarlar puanları yükseltebilir ama sitenin işleyişini bozabilir. Bir sonraki bölümde kendi deneyimimizi anlatıyoruz.

Bizim deneyimimiz
Bu sitede (artsution.com.tr) WordPress, Hello Elementor ve Elementor Pro ile çalışıyoruz. Sunucu tarafında LiteSpeed ve LiteSpeed Cache eklentisini kullanıyoruz.
LiteSpeed Cache'in Konuk Modu ve Konuk İyileştirme (Guest Mode / Guest Optimization) özellikleri, ilk kez gelen ziyaretçilere ve botlara sayfanın varsayılan, en yüksek düzeyde optimize edilmiş bir kopyasını sunar. Eklentinin belgelerine göre bu modda en üst düzey sayfa optimizasyonu uygulanır. Sayfa optimizasyon ayarlarındaki "gecikmeli" (Delayed) JavaScript yükleme seçeneği de JavaScript'i ancak kullanıcı etkileşimi (tuş basma ya da fare hareketi gibi) algılandıktan sonra çalıştırır.
Bizim deneyimimizde bu yaklaşım, JavaScript'i ilk etkileşime kadar geciktirdiği için menülerin ve formların bozulmasına yol açabiliyor. Ziyaretçi menüye dokunduğunda menü açılmayabiliyor ya da form beklendiği gibi çalışmayabiliyor. Hız testlerinde yüksek puan görmek, gerçek ziyaretçinin sorunsuz bir deneyim yaşadığı anlamına gelmiyor. LiteSpeed'in kendi belgeleri de bu özelliğin hız testlerinde iyi sonuç verirken gerçek sorunları gizleyebileceği konusunda uyarıyor ve gecikmeli modun canlı sitede açılmadan önce test edilmesini öneriyor. Bu nedenle Konuk İyileştirme'yi bu sitede kapalı tutuyoruz.
Bunun yerine daha kontrollü iyileştirmelerle ilerledik: CSS dosyalarını birleştirdik, fontları yerel olarak barındırdık, Türkçe karakterler için küçük font alt kümeleri kullandık ve ekran dışında kalan animasyonları düzenledik. Bu adımlarla mobil PageSpeed sonucunu iyileştirirken menülerin ve formların çalışmasından ödün vermedik. Her değişiklikten sonra önbelleği temizleyip siteyi gizli pencerede, gerçek bir ziyaretçi gibi test ediyoruz.
Sık yapılan hatalar
- Tüm optimizasyon seçeneklerini aynı anda açmak: Bir şey bozulduğunda hangi ayarın sorun çıkardığını bulmak zorlaşır. Ayarları tek tek açın ve her birinden sonra test edin.
- Yalnız hız testi puanına bakmak: Menüyü açın, formu gönderin, sepete ürün ekleyin. Puan değil, işleyiş önemlidir.
- Birden fazla önbellek eklentisini birlikte kullanmak: İki sayfa önbelleği aynı anda çalışırsa çakışmalar ve öngörülemeyen sonuçlar doğabilir.
- Kişiye özel sayfaları önbellek dışında bırakmamak: Sepet, ödeme ve hesap sayfaları için istisnaları kontrol edin.
- Güncellemeden sonra önbelleği temizlemeyi unutmak: Özellikle tema ve menü değişikliklerinden sonra.
Sık sorulan sorular
Önbelleği temizlersem sitem bozulur mu?
Hayır. Önbellek yalnız kopyaları içerir. Temizlendiğinde ilk ziyaretçiler için sayfalar yeniden üretilir; bu birkaç isteğin biraz daha yavaş olmasına neden olur, sonra önbellek yeniden dolar. Asıl içerik veritabanında ve dosyalarda güvendedir.
Ziyaretçiler neden sitemin eski hâlini görüyor?
En sık neden, sayfa önbelleğinin ya da CDN'in güncellemeden sonra temizlenmemesidir. Daha nadiren, ziyaretçinin tarayıcısı eski bir CSS ya da JavaScript dosyasını önbellekte tutuyordur. Dosya adlarına sürüm eklenmesi bu sorunu büyük ölçüde önler.
Her WordPress sitesinde Redis ya da Memcached gerekir mi?
Hayır. Ziyaretçilerin çoğuna önbelleğe alınmış sayfaların sunulduğu kurumsal sitelerde sayfa önbelleği genellikle yeterlidir. Nesne önbelleği; giriş yapmış kullanıcıların yoğun olduğu, WooCommerce gibi dinamik siteler ya da yavaş çalışan yönetim panelleri için daha anlamlıdır.
Önbellek eklentisinin optimizasyon ayarlarını açmalı mıyım?
Açabilirsiniz, ama tek tek ve test ederek. CSS ve JavaScript birleştirme, erteleme gibi ayarlar sitenin temasına ve eklentilerine göre farklı sonuç verir. Bir ayar bir şeyi bozuyorsa onu kapatın ya da ilgili dosyayı istisna listesine ekleyin.
Sonuç
Önbellek, bir web sitesini hızlandırmanın en etkili ve çoğu zaman en ucuz yoludur. Ama tek bir anahtar değil, birlikte çalışan katmanlardan oluşur: tarayıcı, CDN, sayfa, nesne ve kod önbelleği. Doğru kurulum; neyin, ne kadar süreyle ve kime gösterilmek üzere saklandığını bilmeyi ve her ayarı gerçek kullanımda test etmeyi gerektirir.
Sitenizin hızını ve önbellek ayarlarını birlikte gözden geçirmek isterseniz WordPress geliştirme ve web tasarım hizmetlerimize göz atabilir ya da bizimle iletişime geçebilirsiniz.
Grafik Sanat'ta öğrenin: Konuyu görselli anlatım ve testlerle öğrenmek için → grafiksanat.com.tr/terim/onbellek
Kaynaklar10
- MDN Web Docs — HTTP caching. developer.mozilla.org
- IETF — RFC 9111, HTTP Caching (Haziran 2022). rfc-editor.org
- WordPress Developer Resources — WP_Object_Cache. developer.wordpress.org
- WordPress Developer Resources — Nginx (fastcgi_cache ve önbellek eklentileri). developer.wordpress.org
- WordPress Developer Resources — Nonces. developer.wordpress.org
- PHP Manual — OPcache. php.net
- LiteSpeed Docs — LSCache for WordPress, General (Guest Mode, Guest Optimization). docs.litespeedtech.com
- LiteSpeed Docs — LSCache for WordPress, Page Optimization (Load JS Deferred: Delayed). docs.litespeedtech.com
- LiteSpeed Docs — LSCache for WordPress, Cache (Object Cache, Browser Cache). docs.litespeedtech.com
- Grafik Sanat — Önbellek (Cache) terimi. grafiksanat.com.tr



