Yeni kurulan bir WordPress sitesi hızlıdır. Üç yıl sonra aynı site, aynı sunucuda, aynı temayla belirgin biçimde yavaşlamıştır. Tasarım değişmemiştir, trafik da çok artmamıştır. Değişen şey birikmedir: kaldırılmış eklentilerden kalan kayıtlar, yüzlerce revizyon, geçici veri tabloları, artık kullanılmayan medya dosyaları ve zamanla eklenmiş ama hiç kaldırılmamış işlevler.
Bu yazıda, şişmiş bir WordPress sitesini nasıl denetlediğimi ve hafiflettiğimi anlatacağım. Yaklaşım basit: önce ölç, sonra sil, sonra optimize et. Ters sırada gidenler genellikle çalışan bir şeyi bozar.
Önce Yedek, Sonra Her Şey
Bu yazıdaki hiçbir adımı yedek almadan uygulamayın. Veritabanı temizliği geri alınamaz işlemler içerir. Tam bir yedek alın (dosyalar ve veritabanı), yedeği sunucu dışında saklayın ve mümkünse tüm işlemi önce bir test ortamında yapın.
Adım 1: Eklenti Denetimi
Her eklenti üç maliyet üretir: yüklenen dosyalar, çalıştırılan sorgular ve olası güvenlik açığı. Denetimi şöyle yapın.
Etkin eklentileri bir tabloya listeleyin ve her biri için şu soruları cevaplayın: Bu eklenti hangi işlevi sağlıyor? Bu işlev hâlâ kullanılıyor mu? Aynı işi yapan başka bir eklenti var mı? Son ne zaman güncellendi? Sitenin kaç sayfasında gerçekten çalışıyor?
Bu tabloyu doldurduğunuzda genellikle şu üç grup ortaya çıkar:
- Kaldırılabilecekler: Bir kampanya için kurulmuş, kampanya bitmiş ama eklenti kalmış olanlar
- Birleştirilebilecekler: Üç ayrı eklentinin yaptığı işi tek bir eklenti yapıyor olabilir
- Koda dönüştürülebilecekler: Tek bir küçük işlev için kurulmuş eklentiler, çoğu zaman birkaç satır kodla çözülebilir
Bir eklentiyi kaldırırken önemli nokta: pek çok eklenti kaldırıldığında veritabanındaki kayıtlarını bırakır. Kaldırma öncesi ayarlarda “veriyi de sil” seçeneği varsa işaretleyin; yoksa kalan kayıtları elle temizlemeniz gerekecek.
Adım 2: Yazı Revizyonları
WordPress her kaydetmede bir revizyon oluşturur. Uzun süredir yayında olan bir sitede tek bir sayfanın 60 revizyonu olabilir. Bu kayıtlar veritabanının en büyük tablosunu gereksiz yere şişirir.
Çözüm iki aşamalı:
Mevcut revizyonları temizleyin. Belirli bir sayının üzerindeki eski revizyonları silin. Son birkaç revizyonu saklamak makul bir dengedir.
İleriye dönük sınır koyun. Yapılandırma dosyasına revizyon sayısı sınırı tanımlayın. Sınırsız revizyon, hiçbir sitede gerekli değildir.
Aynı şekilde çöp kutusundaki yazılar, onaylanmamış ve spam yorumlar da düzenli temizlenmelidir.
Adım 3: Geçici Veriler (Transient)
Eklentiler ve tema, geçici veri saklamak için transient adı verilen kayıtlar oluşturur. Bunların süresi dolduğunda otomatik silinmesi beklenir, ancak pratikte pek çok kayıt yıllarca kalır.
Süresi dolmuş transient kayıtlarını temizlemek, seçenekler tablosunu belirgin biçimde küçültür ve her sayfa yüklemesinde çalışan sorguları hafifletir.
Adım 4: Otomatik Yüklenen Seçenekler
WordPress’in seçenekler tablosunda “autoload” işaretli kayıtlar, her sayfa yüklemesinde belleğe alınır. Bu alanın toplam boyutu birkaç yüz kilobaytı aştığında etkisi ölçülebilir hale gelir.
Yapılacak iş: en büyük autoload kayıtlarını listeleyin, kaynağını tespit edin ve artık kullanılmayan eklentilere ait olanları temizleyin. Gerekli olanların bir kısmı da autoload dışına alınabilir. Bu adım teknik bilgi gerektirir; emin olmadığınız kaydı silmeyin.
Adım 5: Artık Tablolar
Kaldırılan eklentiler çoğu zaman kendi özel tablolarını geride bırakır. Bir sitede on beş yıl önce kurulmuş bir forum eklentisinin tablolarını bulduğum olmuştu.
Veritabanı tablolarını listeleyin, WordPress çekirdeğine ait olmayanları belirleyin ve her birinin hangi eklentiye ait olduğunu tespit edin. Eklenti artık kurulu değilse ve veriye ihtiyacınız yoksa tablo silinebilir. Silmeden önce mutlaka o tablonun yedeğini ayrıca alın.
Adım 6: Medya Kütüphanesi
Medya kütüphanesi iki yönden şişer: hiçbir içerikte kullanılmayan dosyalar ve her yükleme için üretilen çok sayıda boyut varyasyonu.
Kullanılmayan dosyalar. Yıllar içinde yüklenip vazgeçilen görseller birikir. Tespit edip temizlemek disk alanı ve yedekleme süresi kazandırır. Dikkat: bazı görseller sayfa oluşturucu içinde veya CSS’te kullanılıyor olabilir ve tarama araçları bunları “kullanılmıyor” olarak işaretleyebilir. Silmeden önce örneklem kontrolü yapın.
Boyut varyasyonları. Tema ve eklentiler kendi görsel boyutlarını kaydeder. Tek bir fotoğraf yüklediğinizde sunucuda sekiz, on farklı dosya oluşabilir. Kullanılmayan boyut tanımlarını kapatmak, sonraki yüklemelerde birikmeyi önler.
Format dönüşümü. Mevcut görselleri modern formata toplu dönüştürmek, hem disk hem hız kazancı sağlar.
Adım 7: Zamanlanmış Görevler
WordPress’in zamanlanmış görev sistemi (cron), sayfa ziyaretlerine bağlı çalışır. Kaldırılmış eklentilerden kalan görevler veya çok sık çalışacak biçimde tanımlanmış işler, her ziyarette gereksiz yük oluşturur.
Zamanlanmış görev listesini inceleyin, kaynağı belirsiz olanları temizleyin. Yüksek trafikli sitelerde WordPress cron’u kapatıp sunucu düzeyinde gerçek bir zamanlanmış görev tanımlamak daha sağlıklıdır.
Adım 8: Tablo Optimizasyonu
Silme işlemlerinden sonra veritabanı tablolarında boş alanlar kalır. Tablo optimizasyonu bu alanları geri kazanır ve indeks yapısını yeniler. Bu adımı temizliklerin sonunda yapın; başında yapmak anlamsızdır.
Bakımı Rutine Bağlamak
Tek seferlik temizlik, iki yıl sonra aynı noktaya döner. Kalıcı çözüm bir rutin kurmaktır:
- Haftalık: Güncellemeler, spam yorum temizliği, yedek doğrulama
- Aylık: Kırık bağlantı taraması, form testleri, performans ölçümü, 404 raporu incelemesi
- Üç aylık: Eklenti denetimi, revizyon ve transient temizliği, medya kütüphanesi gözden geçirme, yedekten geri yükleme testi
- Yıllık: Tema ve altyapı gözden geçirmesi, güvenlik denetimi, içerik envanteri
Bu rutini bir kontrol listesine dökün ve sorumlusunu belirleyin. Sorumlusu olmayan bakım planı, yazılmış olsa bile uygulanmaz.
Ölçmeden Önce ve Sonra
Temizliğin işe yaradığını görmek için baştan ve sondan ölçüm alın: veritabanı toplam boyutu, en büyük beş tablonun boyutu, autoload verisinin boyutu, ana sayfa sunucu yanıt süresi, ana sayfa toplam sorgu sayısı ve mobil Core Web Vitals değerleri.
Bu altı sayıyı bir tabloya yazın. İyileştirmenin gerçek etkisini yalnızca böyle görebilirsiniz — ve müşterinize de böyle anlatabilirsiniz.
Şişkinliğin Görünmeyen Maliyetleri
Bir sitenin ağırlaşmasının etkisi sadece sayfa açılış hızıyla sınırlı değildir. Zamanla biriken yükün, işletmeye doğrudan yansıyan başka sonuçları da vardır.
Yedekleme süreleri uzar. On gigabaytlık bir medya kütüphanesinin yedeklenmesi hem daha uzun sürer hem daha fazla depolama maliyeti üretir. Acil bir durumda geri yükleme süresi de aynı oranda uzar; sitenin kapalı kaldığı her dakikanın bir bedeli vardır.
Yönetim paneli yavaşlar. Şişmiş bir veritabanında yazı listesinin açılması, medya kütüphanesinin yüklenmesi ve arama yapılması belirgin biçimde gecikir. Bu, içerik üreten ekibin her gün ödediği görünmez bir vergidir.
Güncelleme riski artar. Çok sayıda eklenti, güncelleme sırasında çakışma olasılığını yükseltir. Yirmi eklentili bir sitede bir güncellemenin sorun çıkarma ihtimali, altı eklentili bir siteye göre çok daha yüksektir.
Sorun teşhisi zorlaşır. Bir hata oluştuğunda kaynağı bulmak için eklentileri tek tek devre dışı bırakmak gerekir. Eklenti sayısı arttıkça bu süreç saatlere yayılır.
Hangi Eklentiler Genellikle Gereksizdir?
Denetimlerde tekrar tekrar karşılaştığım, çoğu sitede kaldırılabilecek eklenti kategorileri şunlar:
Sosyal medya paylaşım butonu eklentileri genellikle ağır JavaScript yükler ve tıklanma oranları düşüktür. Basit bağlantılarla aynı işlev, neredeyse sıfır maliyetle sağlanabilir.
Ziyaretçi sayacı ve istatistik eklentileri, her sayfa görüntülemesinde veritabanına yazar. Aynı veriyi Analytics zaten topluyorsa, bu yükü taşımanın anlamı yoktur.
İlgili yazılar eklentileri, her sayfa yüklemesinde ağır sorgular çalıştırır. Manuel seçilmiş veya kategori bazlı basit bir liste, hem daha hızlı hem daha isabetli olur.
Görsel galeri ve slider eklentileri, çoğu zaman tek bir sayfa için kurulur ama tüm sitede yüklenir. Kullanım yeri tekse, koşullu yükleme kurun veya blok editörün yerleşik galerisiyle yetinin.
Tek bir küçük işlev için kurulan eklentiler — özel bir kod parçası eklemek, bir alanı gizlemek, bir yönlendirme yapmak — genellikle birkaç satır kodla çözülebilir.
Temizlik Sonrası Test
Silme işlemlerinden sonra sitenin bozulmadığını doğrulamak, temizliğin kendisi kadar önemlidir. Şu akışları mutlaka test edin: ana sayfa ve tüm şablon türlerinden birer örnek sayfa, iletişim formu gönderimi, arama işlevi, e-ticaret varsa sepete ekleme ve ödeme adımı, kullanıcı girişi ve yönetim panelinin ana ekranları.
Testi hem masaüstünde hem gerçek bir mobil cihazda yapın. Tarayıcı önbelleğini temizleyerek tekrarlayın; kendi tarayıcınızda çalışan bir sayfa, yeni bir ziyaretçide çalışmayabilir.
Son olarak, temizlikten sonraki bir hafta boyunca Search Console’daki hata raporunu ve sunucu hata günlüklerini izleyin. Silinen bir dosyaya yapılan istekler burada görünür ve gözden kaçan bir bağımlılığı erken yakalamanızı sağlar.
Sonuç
WordPress siteleri kendiliğinden yavaşlamaz; birikim yüzünden yavaşlar. Düzenli bir bakım rutini, sitenin ömrünü uzatır, hosting maliyetini düşürür ve yeniden yapma kararını yıllarca erteler.
Sitenizin veritabanı ve eklenti denetimini yapıp somut bir temizlik planı çıkarmamı isterseniz iletişime geçebilirsiniz.