Kategoriler
WordPress

Windows Server ve IIS Üzerinde WordPress İçin Page Cache (Sayfa Önbellekleme) Kurulum ve Yapılandırma Rehberi

WordPress tabanlı web projelerinde sayfa önbellekleme (Page Cache), sunucu üzerindeki PHP işlemci yükünü ve veritabanı sorgularını minimize ederek, sayfaların son kullanıcıya çok daha hızlı sunulmasını sağlayan kritik bir performans optimizasyonudur.

Linux tabanlı sunucularda WordPress önbellekleme eklentilerinin büyük bir bölümü, Apache veya Nginx için hazırlanan .htaccess ve benzeri sunucu yapılandırma kurallarına dayanmaktadır.

Ancak, Windows Server üzerinde IIS (Internet Information Services) kullanan WordPress mimarilerinde bu kuralların bir kısmı doğrudan uygulanamaz.

Bu nedenle, IIS üzerinde çalışan WordPress sistemleri için web sunucusunun kurallarından bağımsız olarak çalışan bir önbellekleme mekanizmasının tercih edilmesi en verimli yaklaşımdır.

Bu yazımızda, Windows Server, IIS, PHP, MySQL ve WordPress bileşenlerinden oluşan bir ortamda WP-Optimize eklentisi kullanılarak Page Cache oluşumunu detaylı bir şekilde incelemeye çalışacağız.

Ayrıca, kurulum sürecinde IIS’in mevcut yapılandırmasına müdahale edilmemiş, gereksiz ve mükerrer sunucu kurallarından kaçınılmıştır.

Mevcut Sunucu Mimarisinin Değerlendirilmesi

Kurulumun gerçekleştirildiği altyapı aşağıdaki bileşenlerden oluşmaktadır.

  • İşletim Sistemi: Windows Server
  • Web Sunucusu: IIS Web Server
  • Çalışma Ortamı: PHP 8.5.9 ve MySQL Community Server 26.7.0
  • İçerik Yönetim Sistemi: WordPress 7.0.3 (Multisite/Ağ yapısında)
  • Sunucu Tarafı Optimizasyonlar: HTTPS, IIS seviyesinde Gzip Sıkıştırması, IIS seviyesinde Statik Dosya Önbellekleme

Mevcut IIS web.config dosyasında, statik dosyalar için istemci önbelleklemesi (Browser Cache) halihazırda Aşağıdaki yapıyı kullanarak etkin durumdadır.

<staticContent>
<clientCache
cacheControlMode="UseMaxAge"
cacheControlMaxAge="4.00:00:00" />
</staticContent>

Bu yapılandırma sayesinde CSS, JavaScript ve görsel gibi statik dosyalar tarayıcı tarafından dört gün süreyle önbellekte tutulmaktadır.

Dolayısıyla, statik dosyaların önbelleklenmesi işlemi doğrudan IIS tarafından yönetilmekte olup, kurulacak eklenti üzerinden bu işlevin tekrar etkinleştirilmesine gerek duyulmamıştır.

Page Cache Stratejisi ve Eklenti Seçimi

Windows Server ve IIS ortamında, Apache Web sunucusuna özgü yapılandırma dosyalarına bağımlı olmayan bir çözüm hedeflenmiştir.

Bu doğrultuda, WordPress deposunda yer alan WP-Optimize eklentisi tercih edilmiştir.

Sistemde WordPress Multisite (Ağ) yapısı kullanıldığı için eklenti ağ seviyesinde etkinleştirilmiş, ancak Page Cache yapılandırmaları her sitenin kendi yönetim panelinden izole olarak gerçekleştirilmiştir.

Performansı olumsuz etkilememesi adına, kurulum sihirbazında yer alan ve Page Cache için doğrudan gerekli olmayan ek özellikler devre dışı bırakılmıştır.

Page Cache’in Etkinleştirilmesi ve WP_CACHE Yapılandırması

WP-Optimize yönetim panelinden WP-Optimize → Cache → Page Cache menüsüne ulaşılarak “Enable page caching” seçeneği aktif edilmiştir.

İşlem sonrasında PHP hata günlüğünde aşağıdaki uyarı tespit edilmiştir:
[ERROR] : WP_CACHE constant is not present in wp-config.php

Yapılan incelemede, WP_CACHE tanımının eklenti kurulurken, wp-config.php dosyasına otomatik olarak eklendiği, ancak bir açıklama satırıyla aynı satırda bulunması sebebiyle sistem tarafından işlenemediği saptanmıştır.

İlgili tanım aşağıdaki gibi izole edilerek sorun giderilmiştir:

define('WP_CACHE', true);

Bu düzeltmenin ardından sayfalar yeniden çağrılmış, PHP hata kayıtlarında ilgili uyarının kaybolduğu ve önbellek dosyalarının (index.php, index.htm, index.html) sunucu dizininde (wp-content/cache/wpo-cache/…) başarıyla oluşturulmaya başlandığı doğrulanmıştır.

Performans ve Önbellek Ayarları

WP-Optimize eklenti ayarları kısmında sitenin dinamik yapısına zarar vermeden maksimum verim elde edebilmek için aşağıdaki gibi konfigürasyon tercih edilmiştir.

  • Enable page caching:
    Açık.
    Temel önbellekleme işlevini başlatır.
  • Cache lifespan:
    10 saat.
    24 saat olan varsayılan değer, WordPress nonce mekanizması ve dinamik içeriklerin güncelliğini korumak amacıyla 10 saate düşürülmüştür.
  • Serve cached pages to logged-in users:
    Kapalı.
    Yöneticilerin ve giriş yapmış kullanıcıların her zaman güncel, dinamik içerik almasını sağlamak için kapalı tutulmuştur.
  • Generate separate files for mobile devices:
    Kapalı.
    Modern responsive (duyarlı) tasarımlarda HTML yapısı değişmediği için mobil cihazlara özel ayrı bir önbellek dosyası oluşturmak gereksiz görülmüştür.
  • Gzip compression:
    Eklenti üzerinde Kapalı.
    IIS seviyesinde zaten etkin olduğu için çakışmayı önlemek amacıyla eklenti üzerinden kapatılmıştır.
  • Automatically preload content…:
    Açık.
    Önbellek temizlendiğinde içeriğin otomatik olarak yeniden oluşturulmasını sağlar.

İstisnalar (Cache Exclusion) ve IIS Çıkış Önbelleğinin kullanılmaması

Kurulum esnasında eklentinin URL, çerez (cookie) ve tarayıcı temsilcisi tabanlı gelişmiş dışlama (exclusion) seçenekleri incelenmiştir.

WordPress’in varsayılan önbellek davranışını bozmamak ve sistem karmaşıklığını artırmamak adına, geniş kapsamlı istisna kuralları tanımlanmamıştır.

Ayrıca, IIS Web sunucusunun kendi yerleşik “Output Caching” mekanizmasının devreye alınması değerlendirilmiştir.

Ancak WP-Optimize tarafından sağlanan Page Cache yapısı yeterli HTML önbelleklemesini sağladığından, ikinci bir HTML önbellek katmanı oluşturmanın gereksiz (ve potansiyel olarak çakışmalara yol açabilecek) bir adım olduğu sonucuna varılmıştır.

Doğrulama ve Test Aşaması

Yapılandırmanın ardından sistemin sağlıklı çalıştığını teyit etmek için aşağıdaki kapsamlı doğrulamalar gerçekleştirilmiştir.

  1. Dosya Sistemi Kontrolü: İlgili sayfalara ait .html uzantılı statik çıktıların dizinde oluştuğu teyit edilmiştir.
  2. Kaynak Kodu İncelemesi: Tarayıcı üzerinden ziyaret edilen sayfaların kaynak kodunun en alt satırında, WP-Optimize’ın başarı imzasının bulunduğu saptanmıştır:

    <!– Cached by WP-Optimize (gzip) – https://teamupdraft.com/wp-optimize/ – Last modified: 11 August 2026 07:50 (UTC:3) –>

  3. Log Denetimi: PHP hata günlüklerinin temiz olduğu ve WP_CACHE hatasının tekrarlamadığı gözlemlenmiştir.

Sonuç ve Mimari Şema

Windows Server ve IIS ortamında barındırılan WordPress sistemi için Page Cache kurulumu, .htaccess bağımlılığı olmadan ve görevlerin doğru katmanlara dağıtılması prensibiyle başarıyla tamamlanmıştır.

Bu mimaride süreç şu şekilde işlemektedir:

[ Windows Server / IIS ]

  • HTTPS Yönetimi
  • Gzip Sıkıştırması
  • Statik Dosya İstemci Önbelleği (4 Gün)

[ WP-Optimize ]

  • (Page Cache)
  • [ Cache HIT ] [ Cache MISS ]
  • │ │

  • Statik HTML PHP / WordPress
    Sunumu İşlemesi.

[ MySQL ]

İstek işleme akışının ayrıntılı Detaylandırılması

  1. Sunucu Katmanı (IIS):

    İstek sunucuya ulaştığında IIS; güvenli bağlantıyı (HTTPS), önbelleklenmiş medya/CSS/JS dosyalarının sunumunu ve genel Gzip sıkıştırmasını üstlenir.

    İsteği işlenmek üzere WordPress’e aktarır.

  2. Önbellek Katmanı (WP-Optimize):

    Cache HIT (Önbellekte Var): Talep edilen sayfanın statik HTML kopyası daha önce oluşturulmuşsa, istek hiç PHP ve veritabanı katmanına uğramadan doğrudan IIS üzerinden kullanıcıya iletilir.

    Bu senaryo, sunucu kaynak tüketimini minimuma indirir.

    Cache MISS (Önbellekte Yok): Sayfa henüz önbelleğe alınmamışsa, içerik güncellenmişse veya önbellek süresi dolmuşsa istek “Sunumu İşleme” sürecine yönlendirilir.

  3. Sunumu İşleme ve Dinamik Derleme Katmanı (PHP + WordPress + MySQL):

    İstek Yönlendirme: İlgili sayfa isteği PHP derleyicisine aktarılır ve WordPress çekirdeği başlatılır.

    Veri Sorgulama: WordPress, sayfa içeriğini, tema ayarlarını, eklenti verilerini ve kullanıcı yetkilerini oluşturmak adına MySQL veritabanına SQL sorguları gönderir.

    HTML Çıktısı Üretme: Veritabanından gelen veriler PHP tarafından işlenerek dinamik bir HTML belgesi haline getirilir.

    Önbelleğe Yazma (Sayfa Kaydı): Oluşturulan bu nihai HTML çıktısının bir kopyası, WP-Optimize tarafından wp-content/cache/wpo-cache/… dizinine bir sonraki ziyaretçinin Cache HIT alabilmesi için bir .html dosyası olarak kaydedilir.

    Yanıt Gönderimi: Üretilen içerik kullanıcıya sunulur.

Ortaya çıkan bu yapılandırma, statik dosya yönetimini ve Gzip sıkıştırmasını IIS sunucusuna; dinamik HTML çıktılarının önbelleklenmesini WP-Optimize eklentisine; zorunlu dinamik durumları ise PHP ve MySQL katmanına devrederek sunucu kaynaklarının (CPU/RAM) optimum verimle kullanılmasını sağlayacaktır.

Farsça