Bu makalede7 bölüm
- Teknoloji
- Cloudflare, WP Rocket, Redis, OPcache
- Konu
- WordPress cache mimarisi
- Seviye
- Orta
WordPress sitelerinde hız sorunlarının çoğu önbellek (cache) eksikliğinden değil, önbellek katmanlarının birbirini bilmeden çalışmasından kaynaklanır. Bu rehber OPcache, Redis, WP Rocket (tam sayfa cache) ve Cloudflare’in aynı sitede nasıl birlikte çalıştığını, her katmanın görevini ve en sık yapılan hataları anlatır.
Bir isteğin yolculuğu
- Cloudflare (kenar): Ziyaretçiye en yakın veri merkezi isteği karşılar. Statik dosyalar (CSS, JS, görseller) ve kural tanımlıysa HTML önbellekte varsa sunucuya hiç gidilmez.
- Tam sayfa cache (WP Rocket veya sunucu cache): İstek sunucuya geldiğinde hazır HTML dosyası varsa doğrudan sunulur; PHP ve veritabanı çalışmaz.
- PHP + OPcache: Önbellekte sayfa yoksa WordPress çalışır. OPcache PHP dosyalarını derlenmiş halde bellekte tuttuğu için kod her istekte yeniden derlenmez.
- Redis (nesne önbelleği): WordPress’in tekrarlanan sorgu ve hesaplama sonuçları (seçenekler, menüler, transient’ler) bellekten okunur; veritabanına giden sorgu sayısı azalır.
- MariaDB/MySQL: Önbellekte olmayan veri veritabanından okunur.
Her katmanın görevi ve sınırı
| Katman | Hızlandırdığı | Etkisiz kaldığı durum |
|---|---|---|
| Cloudflare | Statik dosyalar, kuralla HTML; coğrafi gecikme | Oturumlu ve kişiye özel sayfalar |
| Tam sayfa cache | Anonim ziyaretçi sayfaları | Giriş yapmış kullanıcı, sepet, ödeme, form sonuçları |
| OPcache | Tüm PHP çalıştırmaları | Yanlış bellek ayarında sürekli yeniden derleme |
| Redis | Admin paneli, WooCommerce, cache dışı sayfalar | Yavaş sorgunun kendisi (sonucu önbelleğe alınamıyorsa) |
Doğru istisnalar
Önbellek hatalarının büyük kısmı yanlış istisnalardan kaynaklanır. Tam sayfa cache ve Cloudflare’da şu istekler önbelleğe alınmamalıdır:
/wp-admin/,wp-login.php, önizleme bağlantıları ve REST API’nin kişiye özel uç noktaları.- WordPress oturum çerezi (
wordpress_logged_in_*) veya WooCommerce çerezleri (woocommerce_items_in_cart,wp_woocommerce_session_*) taşıyan istekler. - Sepet, ödeme ve hesabım sayfaları; form gönderim sonuçları.
- Sorgu dizesiyle kişiselleştirilen sayfalar (izleme parametreleri hariç tutulabilir).
WooCommerce’e özgü sorunlar ve test yöntemi için WooCommerce cache hataları rehberine bakabilirsiniz.
Temizleme (purge) zinciri
Bir yazı güncellendiğinde temizlik sırası içten dışa olmalıdır: önce nesne önbelleğinde ilgili anahtarlar, sonra tam sayfa cache’te ilgili sayfa ve arşivler, en son Cloudflare’da aynı URL’ler. WP Rocket ve Cloudflare’ın resmi entegrasyonu veya API tabanlı temizlik bu zinciri otomatikleştirir. Tüm önbelleği her değişiklikte silmek basit görünse de, yoğun trafikte sunucuya ani yük bindirir.
Sık yapılan hatalar
- Aynı anda iki tam sayfa cache eklentisi veya hem eklenti hem sunucu cache’i aktif.
- Cloudflare’da “Cache Everything” kuralı, oturum çerezi istisnası olmadan açılmış.
- Redis bellek sınırı ve tahliye (eviction) politikası ayarlanmamış; bellek dolunca hata.
- OPcache bellek ve dosya sayısı sınırı küçük; çok siteli sunucularda sürekli yeniden derleme.
- CSS/JS birleştirme ve geciktirme ayarları test edilmeden açılmış; etkileşim veya düzen bozulmuş.
Doğrulama
Kurulumdan sonra yanıt başlıkları kontrol edilmelidir: Cloudflare için cf-cache-status (HIT/MISS/BYPASS), sayfa cache’i için eklentinin eklediği başlık veya HTML yorumu. Giriş yapmış kullanıcıyla, sepete ürün eklenmiş tarayıcıyla ve anonim tarayıcıyla ayrı ayrı test edilmelidir. Önbellek dışı yanıt süresi de ölçülmelidir; önbellek yavaş bir uygulamayı gizler ama düzeltmez. Sunucu tarafı için PHP-FPM ve MariaDB rehberine bakabilirsiniz.
Sık sorulan sorular
Redis ve WP Rocket aynı işi mi yapar?
Hayır. WP Rocket hazır HTML sayfayı saklar ve PHP’nin hiç çalışmamasını sağlar. Redis ise PHP çalıştığında (giriş yapmış kullanıcı, sepet, admin paneli, cache dışı sayfalar) tekrarlanan veritabanı sorgularının sonucunu bellekte tutar. Birbirini tamamlarlar.
Cloudflare HTML’i önbelleğe alırsa güncellemeler nasıl yansır?
İçerik güncellendiğinde ilgili URL’ler Cloudflare’da da temizlenmelidir. Bu, Cloudflare eklentisi, WP Rocket entegrasyonu veya API ile otomatikleştirilir; aksi halde ziyaretçiler önbellek süresi dolana kadar eski sayfayı görür.
İki sayfa cache eklentisini birlikte kullanabilir miyiz?
Önerilmez. İki tam sayfa önbelleği birbirinin dosyalarını ve başlıklarını bozar, temizleme mantığı karışır. Her katmanda tek bir sorumlu araç olmalıdır.
Sitenizin önbellek katmanlarını birlikte kurmak için WordPress cache ve CDN optimizasyonu hizmetimizi inceleyin.
- Teknoloji
- Cloudflare, WP Rocket, Redis, OPcache
- Konu
- WordPress cache mimarisi
- Seviye
- Orta
Performans ve SEO
- WordPress Cache ve CDN OptimizasyonuOPcache, Redis, tam sayfa cache, WP Rocket ve Cloudflare katmanlarını doğru istisna ve temizleme kurallarıyla kurup PHP ve…
- WooCommerce E-Ticaret ÇözümleriÜrün kataloğu, ödeme güvenliği, cache istisnaları, ERP/stok ve pazaryeri entegrasyonlarıyla ölçeklenebilir WooCommerce e-ticaret projeleri.
- Web Performansı ve Core Web VitalsLCP, INP ve CLS için ölçülebilir iyileştirme: saha (CrUX) ve laboratuvar verisi, kök neden analizi, görsel, font, JavaScript,…