CDN Önbelleğini İçeriğin Niteliğine Göre Kurun
Hiç başınıza geldi mi? Büyük bir kampanya sabahı, kahvenizi alıp bilgisayarın başına oturuyorsunuz, her şey planlı. Reklamlar açık, içerikler güncel, WooCommerce sepetler dolacak diye umut yüksek. Sonra aniden grafikler zıplıyor ama sayfa açılış süreleri uzuyor, yönetim paneli ağırlaşıyor, sipariş süreçleri tekliyor. O an anlarsınız: statik olanla dinamik olanı ayırıp doğru CDN önbellekleme kurallarını yazmadıysanız, trafiği karşılamak bir masaldan kabusa dönebilir.
Bu rehber, WordPress ve WooCommerce’de HTTP önbellek başlıklarını ve CDN kurallarını birlikte tasarlamayı açıklar. Tarayıcı ile ortak CDN cache’i aynı şey değildir; hangi yanıtın paylaşılabileceği, ne kadar eski kalabileceği ve güncellemede nasıl temizleneceği ayrı kararlardır. Kısa TTL, kişisel yanıtı ortak önbelleğe koymayı güvenli hale getirmez.
CDN Önbellekleme Nedir, Nereden Başlamalı?
Vitrin, Depo ve Kasa Benzetmesi
CDN’i, mağazanızın farklı şehirlere yakın küçük depoları gibi düşünün. Ziyaretçi nerede olursa olsun vitrindeki görseller, CSS ve JS dosyaları ona en yakın yerden sunulur. Bu sayede bekleme süresi kısalır ve siteniz daha akıcı hissedilir. Ama kasada gerçek zamanlı işlemler döner; ürün stoğu güncellenir, kullanıcı giriş yapar, kupon uygulanır. Yani her içerik aynı şekilde önbelleğe atılmaz. Bazısı günlerce saklanır, bazısı anlık kalır, bazıları ise hiç saklanmaz.
Statik ve Yarı-Dinamik İçerikler
Uzun cache süresi, içeriği değiştiğinde adresi de değişen statik dosyalara uygundur. Aynı URL altında güncellenen dosyalarda tarayıcı ve CDN tazelik planı gerekir. HTML için önce kişisel veri ve oturum bağımlılığını inceleyin, sonra kabul edilebilir içerik gecikmesini seçin. Mini sepet veya üyelik fiyatı sunan ürün sayfası sırf kullanıcı giriş yapmadı diye ortak cache’e uygun sayılmaz.
Ölçeği Büyütmenin Sırrı
Yük altında nefes almanın iki yolu var: daha güçlü sunucular ve daha akıllı cache. İkisi bir arada en tatlı dengeyi verir. Sunucuyu iyileştirirken, CDN tarafında doğru önbellek ve edge kurallarıyla sık gelen içerikleri en önde tutarsınız. Böylece PHP ve veritabanına daha az iş düşer. Merak edenler için, arka tarafta makinenin kas gücünü planlamak adına WooCommerce kapasite planlama rehberi güzel bir eşlikçi olabilir.
Cache-Control Başlıkları: Ne Söylersek CDN Ne Anlar?
Basitçe: Max-Age, S-Maxage ve Arkadaşları
max-age yalnız tarayıcıya değil HTTP önbelleklerine genel tazelik süresi verir; s-maxage ortak önbelleklerde bu süreyi geçersiz kılar, tarayıcılar tarafından yok sayılır. TTL dolunca kayıt hemen silinmek zorunda değildir, yeniden doğrulanması gerekebilir. stale-while-revalidate, destekleyen cache’in belirli süre eski yanıt sunarken arka planda doğrulamasına izin verir. Bunu Cache-Control içine eklemek tarayıcıyı da etkileyebilir; yalnız edge davranışı gerekiyorsa sağlayıcıya özgü ayarı kullanın.
Public/Private, ETag ve Son Değiştirilme
public paylaşılabilir yanıtlar içindir; bütün HTML’e otomatik eklenmemelidir. private ortak cache’i yasaklar ama tarayıcı saklamasına izin verebilir; no-store saklamayı, no-cache ise doğrulamadan yeniden kullanmayı engeller. must-revalidate tazelik bitince doğrulama gerektirir. ETag/Last-Modified doğru üretiliyorsa koşullu istek ve 304 ile gövde aktarımı azalabilir; WordPress’in her yanıtta bunları doğru verdiğini varsaymayın. MDN Cache-Control referansı ayrımları açıklar.
HTML ile Statik Dosyalar Arasındaki Denge
Statik dosyada içerik karmalı ad en açık sürümleme yoludur. ?ver= kullanılıyorsa sürüm her içerik değişikliğinde değişmeli ve bütün cache katmanlarının anahtarında korunmalıdır. CDN purge tarayıcıdaki uzun ömürlü dosyayı silmez. Kişisiz HTML için örneğin public, max-age=0, s-maxage=300 tarayıcı kopyasını hemen bayat, ortak kopyayı beş dakika taze kabul eder; bu süre yalnız kabul edilebilir gecikme örneğidir. Yayımlama anında kesin yenilik gerekiyorsa purge/doğrulama gerekir.
WordPress ve WooCommerce’de Neyi Cache’lemeli, Neyi Bypass Etmeli?
Giriş Yapmış Kullanıcılar ve Avatar Gibi Küçük Ama Etkili Ayrıntılar
Giriş, sepet ve oturum cookie’leri ortak HTML cache’ini istek aşamasında bypass etmelidir: wordpress_logged_in_, wp_woocommerce_session_, woocommerce_cart_hash ve woocommerce_items_in_cart başlangıç listesidir. Değişken sonekli aileleri doğru eşleştirin. Şifreli içerik için wp-postpass_, kişisel yorum formu için comment_author_ ve eklentiye özel para birimi/üyelik sinyallerini de inceleyin. Authorization isteklerini bypass edin. İlk yanıt Set-Cookie üretebilir; cookie henüz yokken bu yanıtı da depolamayın. Aynı ayrım kaynak sayfa cache’inde uygulanmalıdır.
Sepet, Ödeme ve Hesabım: Canlı Kalması Gerekenler
Gerçek sepet, ödeme, hesap ve ödeme dönüş yollarını alt uçlarıyla bypass edin; İngilizce /cart/ gibi örnekleri Türkçe veya özel permalinklerinize uyarlayın. /wp-admin/, /wp-login.php, /wp-cron.php ve /wp-admin/admin-ajax.php yollarını da ortak cache dışında tutun. Önizleme ve özelleştirici isteklerini, yalnız tek bir preview=true yazımına bağlı kalmadan gerçek parametreleriyle tanıyın. add-to-cart, wc-ajax, wc-api, preview ve eylem parametrelerini sıralarından bağımsız tanıyın. WooCommerce Store API sepet/ödeme çağrıları GET olsa bile kişiseldir; kullanılan tüm erişim biçimlerini bypass kapsamına alın. Ürün HTML’inde üyelik fiyatı veya oturum parçası varsa doğru varyant/ayrıştırma tasarımı ya da bypass gerekir; kısa TTL bunun yerine geçmez.
Görseller, CSS/JS ve Yazı Tipleri
Uzun ömürlü cache’i yalnız incelenmiş herkese açık statik URL alanlarına uygulayın. .css veya .jpg soneki taşıyan her yolun statik olduğunu varsaymayın; uygulama yönlendirmesi kişisel HTML döndürebilir. İçerik değişince URL’yi değiştirin, eski dosyaları geçişte koruyun ve HTML’in yeni adlara işaret ettiğini test edin. Sorgu üzerinden sürümlemede ver parametresinin key’den çıkarılmadığını doğrulayın.
Bu bölümdeki pratik düzenlemeleri adım adım görmek isterseniz, WordPress için CDN önbellek kurallarıyla uçtan uca hız yazısı uygulanabilir örneklerle güzel eşlik ediyor. Ayrıca arka uçta PHP-FPM, OPcache, Redis ve veritabanı ayarlarını sıkılaştırmak için sunucu tarafı optimizasyon rehberi ile CDN stratejisini birlikte düşünmek, her katmanda dengeli bir yapı kurmanızı sağlar.
Edge Kuralları: İnce Ayarların Kısa Yolu
Bypass on Cookie, Parametre Temizleme ve TTL Mantığı
Cookie/yetki, hassas yol ve eylem bypass kuralları ortak cache aramasından önce etkili olmalıdır. UTM parametrelerini yalnız HTML, yönlendirme ve yanıt başlıklarını değiştirmedikleri doğrulandıysa key’den çıkarın. Kampanya eklentisi aynı parametreyle farklı içerik gösterebilir. Bilinmeyen parametreleri gelişigüzel yok saymayın. Key sadeleştirmek URL’den veya kaynak isteğinden parametre silmek değildir; analytics davranışını ayrıca test edin.
POST İstekleri, Başlıklar ve Önbellek Anahtarı
Bu genel politika yalnız incelenmiş kişisiz GET yanıtlarını paylaşır; diğer yöntemleri açıkça bypass edin. “POST hiçbir yerde cache’lenmez” varsayımına güvenmeyin, özel Worker/kural davranışını kontrol edin. Dil, para birimi, konum veya başlık yanıtı değiştiriyorsa doğru key varyantı ya da bypass gerekir. Vary’nin her CDN’de her alan için uygulanacağını varsaymayın. Cloudflare belgeleri ile planınıza uygun key seçeneklerini ve kural sırasını doğrulayın; çakışan Cache Rules ayarında son eşleşme kazanır.
Hatalarda Sakin Kalmak: Stale-If-Error ve Grace Süreleri
stale-if-error yalnız kabul edilen hata ve sürelerde eski herkese açık yanıtı sunmaya izin verir; kişisel veya güncelliği kritik fiyat/ödeme verisi için genel çözüm değildir. Desteği ve no-cache/must-revalidate gibi direktiflerle etkileşimi sağlayıcıda kontrol edin. Sonradan TTL azaltmak mevcut tarayıcı/edge kayıtlarını otomatik kısaltmaz. Hemen güncelleme gerekiyorsa kaynak cache’inden başlayarak ilgili CDN kayıtlarını temizleyip yeni içeriği doğrulayın.
Uygulamada Adım Adım: Test, Ölçüm ve Sorun Giderme
Tarayıcı Araçları ve Basit Başlık Kontrolleri
Tek bir HEAD yanıtı yeterli değildir. Tekrarlanan GET isteklerinde gövde, Cache-Control, Vary, Set-Cookie, Age ve sağlayıcı cache durumunu birlikte inceleyin. Age kalan TTL değil yanıtın tahmini yaşıdır. MISS, sonraki istek için cache doldurabilir; bypass kanıtı değildir. İki bağımsız müşteri ve boş oturumda, önce kişisel sonra anonim ve ters sırayla deneme yaparak veri karışmadığını kontrol edin.
Ölçtüğün Kadar İyisin
TTFB yanında LCP, INP ve CLS gibi kullanıcı deneyimi ölçümlerini, hata oranını ve tamamlanan siparişleri izleyin. CDN cache isabeti kaynak işini azaltabilir ama dış ödeme servisi veya tarayıcı JS darboğazını çözmez. Sıcak/soğuk cache sonuçlarını ayırın ve gerçek kullanıcı verisiyle karşılaştırın; tek başına düşük CPU doğru cache kapsamını kanıtlamaz.
Yayın ve Temizleme Rutinleri
Güncelleme yalnız tek URL’yi etkilemeyebilir: ürün, kategori, anasayfa kutuları, ilişkili ürünler ve dil/para birimi varyantları birlikte değişebilir. Önce kaynak sayfa cache’ini, sonra ilgili CDN bağımlılıklarını temizleyin; yeni yanıtın gerçekten görüldüğünü doğrulayın. Geniş tema değişikliğinde geniş purge gerekebilir. Etiket/path desteği sağlayıcıya bağlıdır. WordPress önbellek rehberi katmanları ayırmak için başlangıçtır.
WooCommerce’e Özel İnce Ayarlar: Sepetler Mutlu, Kampanyalar Akıcı
Dinamik Olanı Koru, Statik Olanı Uzağa Taşı
Cookie ve yol istisnaları birlikte çalışmalıdır. Kişisel HTML için Cache-Control: private, no-store kullanın ve CDN’de etkin bypass/pass kuralını doğrulayın. Bazı ürünler standart başlıkları farklı uygular: Fastly, no-store’u kendi cache’i için tek başına yeterli saymaz; CloudFront’ta pozitif Minimum TTL private/no-store’u aşabilir. Genel ürün HTML’i de yalnız kişisiz olduğu doğrulanırsa ve kabul edilebilir stok/fiyat gecikmesi tanımlanırsa paylaşılmalıdır.
Parametre Karmaşası ve Pazarlama Etiketleri
UTM, gclid ve fbclid gibi parametreler çoğu kullanımda ölçüm içindir, ancak siteye özel etkilerini doğrulamadan hepsini yok saymayın. İçerik, yönlendirme veya Set-Cookie değişiyorsa ortak key veri karıştırabilir. Etkisiz olduğu doğrulanan parametreyi yalnız key’den çıkarın; tarayıcı URL’si korununca istemci analytics okuyabilir, sunucu tarafı raporlama ise farklı davranabilir. İki biçimde gövdeyi ve ölçümü karşılaştırın.
Arka Tarafı Unutmadan
Önbellek tek başına kahraman değildir; arka tarafta da motoru güçlendirmek gerekir. PHP süreçleri, OPcache, Redis ve veritabanı ayarlarını bir bütün olarak düşünün. Uygulamada bunları nasıl ayarlayacağınızı merak ediyorsanız, PHP-FPM, OPcache, Redis ve MySQL ile sunucu tarafı optimizasyon yazısı, CDN stratejinizi tamamlayan harika bir rehberdir.
Güvenlik, SEO ve Küçük Püf Noktaları
Özel Veriler, Özel Kurallar
Kişisel yanıtları ortak cache dışında tutun; yeni no-store başlığı eski yanlış kaydı kendiliğinden temizlemez. Böyle bir hata bulunursa etkilenen kuralı kapatıp kayıtları ilgili katmanlardan temizleyin. 301/404 cache’i de hedefe ve kabul edilebilir gecikmeye göre sınırlanmalıdır. Örneğin yeni sayfa açıldığında önceki 404 veya değiştirilmiş yönlendirme hâlâ servis edilmemelidir; geçiş ve purge testini yapın.
SEO’ya Kısa Bir Selam
Doğru cache key, aynı URL’nin farklı kullanıcıya yanlış dil, fiyat, canonical veya hreflang döndürmesini önler. Key’de parametreyi yok saymak tarayıcı URL’sini veya arama motorunun canonical kararını değiştirmez; bunlar ayrı konulardır. Bir CDN veya kısa TTL sıralama artışı garantisi vermez. Sağlayıcı belgeleri üzerinden gerçek key, header ve purge davranışını test edin.
Yan Etkileri Erken Yakalamak
Staging’de iki bağımsız sepet, bir girişli kullanıcı ve temiz ziyaretçiyle; kupon, ödeme, çıkış, önizleme, yorum formu ve dil/para birimi geçişlerini sınayın. İlk Set-Cookie yanıtını ve oturum sona ermesini de kapsayın. Gerçek tahsilat yerine test ödeme akışı kullanın. Doğruluk hatasını TTL küçülterek maskelemeyin; cache kapsamını düzeltin, gerekirse etkilenen kayıtların tamamını temizleyin.
Kapanış: Sakin, Tutarlı ve Ölçülebilir Bir Önbellek Düzeni
Önce yanıtın ortak paylaşılabilir olup olmadığını belirleyin; sonra tarayıcı ve CDN tazeliğini ayrı ayarlayın. Kişisel yollar, cookie/yetki ve ilk oturum yanıtları bypass edilmeli; sürümlü statik dosyalar uzun saklanmalıdır. Key yalnız doğru içerik varyantlarını birleştirmeli, purge tüm bağımlılıkları kapsamalıdır. Başlıklar ile sağlayıcı ayarları ancak gövde ve iki oturum testiyle birlikte doğrulanır.
Pratik bir ipucu seti bırakarak bitireyim: Yayın öncesi staging’de test edin, canlıda kademeli temizlik yapın, ölçümleri takip edin ve sorun gördüğünüz alanlarda TTL’leri küçük adımlarla ayarlayın. Eğer mağazanız büyüyor ve arka plandaki kapasiteyi planlamak istiyorsanız, ölçek planlama üzerine rehberi gözden geçirmek iyi fikir. CDN tarafındaki pratik kural örneklerine de yeniden bakmak isterseniz, WordPress için CDN önbellek kurallarıyla uçtan uca hız yazısı adım adım ilerliyor. Umarım bu yazı, bir sonraki kampanya sabahı kahvenizi keyifle yudumlarken sayfalarınızın yağ gibi akmasına yardım eder. Bir dahaki yazıda görüşmek üzere.





