Yavaş bir WordPress sitesi yalnızca sizi değil, ziyaretçilerinizi de sabırsızlandırır. Google araştırmaları, mobilde sayfa yüklenme süresi 1 saniyeden 3 saniyeye çıktığında hemen çıkma oranının %32 arttığını gösteriyor. 5 saniyeye ulaştığında ise bu oran %90’a fırlıyor. Kısacası, hız yalnızca bir teknik detay değil; doğrudan kullanıcı deneyimini, dönüşümleri ve arama sıralamalarını etkileyen bir iş meselesi.
WordPress sitenizi hızlandırmak için yapabileceğiniz onlarca şey var. Ancak çoğu rehber ya yüzeysel kalıyor, ya da uygulanamayacak kadar teknik detaya boğuyor. Bu yazıda, ölçülebilir fark yaratan 10 pratik optimizasyonu, hangi sırayla uygulayacağınızı ve hangi ayarların sitenizi bozabileceğini de anlatarak ele alacağım.
1. Kaliteli Bir Hostingle Başlayın
WordPress hız optimizasyonu çoğu zaman “eklenti yükleyeyim, cache açayım” diye başlar. Oysa işin temeli barındırma hizmetidir. Paylaşımlı hosting, ayda birkaç dolar ödeyip yüzlerce siteyle aynı sunucu kaynaklarını paylaştığınız bir ortamdır. Kaynakları paylaştığınız sitelerden biri yoğun trafik aldığında sizin siteniz de yavaşlar. Üstelik disk G/Ç sınırları, CPU kotaları derken birçok optimizasyon boşa gider.
Ne yapmalı? Yeni başlayanlar için yönetilen WordPress hosting (managed WordPress hosting) iyi bir geçiş noktasıdır. Bu tür hizmetler sunucu tarafında özel önbellekleme, PHP sürüm yönetimi ve güvenlik katmanlarıyla gelir. Orta-üst düzey trafik alan sitelerde ise cloud hosting veya VPS daha tutarlı performans sunar. Sunucu konumunun hedef kitlenize yakın olmasına dikkat edin. Türkiye hedefli bir sitenizi Almanya, Hollanda ya da İstanbul lokasyonlarından birinde barındırmak ping süresini yarı yarıya düşürebilir.
Sık yapılan hata: Sırf ucuz diye limitsiz disk/trafik vaat eden plansız paylaşımlı hostinglere yönelmek. Bu paketlerde genellikle G/Ç kısıtlaması adı altında ciddi darboğazlar bulunur.
2. PHP Sürümünü Güncel Tutun
PHP, WordPress’in çalıştığı programlama dilidir. PHP 7.4’ten 8.2’ye geçtiğinizde, aynı kodun çalışma hızı sadece sürüm farkıyla iki katına kadar çıkabilir. Üstelik eski sürümler güvenlik güncellemesi almaz; yani sitenizi hem yavaş hem de riskli bırakırsınız.
PHP sürümünüzü hosting yönetim panelinden (cPanel’de “PHP Sürüm Seçici”, Plesk’te “PHP Ayarları”) kontrol edebilirsiniz. Yükseltme yapmadan önce temanın ve eklentilerin güncel olduğundan emin olun. Uyumluluk testi için bir staging (test) ortamı yoksa, en azından sitenin yedeğini alıp PHP’yi bir üst sürüme taşıyın, ardından birkaç sayfada gezinerek hataları kontrol edin. Çoğu durumda sorunsuz çalışacaktır.
“PHP 8.1’e geçince sitem bozulur mu?” endişesi sık yaşanır. 2020 öncesi yazılmış, yıllardır güncellenmeyen bir eklenti ya da tema kullanmıyorsanız risk düşüktür. Yine de her ihtimale karşı geçişi ziyaretçi yoğunluğunun düşük olduğu saatte yapmak akıllıcadır.
3. Hafif ve Derli Toplu Bir Tema Seçin
Çok amaçlı temalar sürükle-bırak sayfa kurucuları, slider’lar, animasyonlar, onlarca hazır demo ile gelir. Gösterişlidir; ama sayfaya gereksiz yüzlerce kilobaytlık CSS ve JavaScript eklerler. Bir temanın demo sitesinin Google PageSpeed Insights puanı ile o temayı sıfır kurup tek bir yazı eklediğinizdeki puan arasında dağlar kadar fark olabilir.
Başlangıç için blok tabanlı temalar (Twenty Twenty-Four gibi) veya GeneratePress, Kadence, Astra’nın minimalist başlangıç yapılandırmaları idealdir. Bu temalar temelde yalnızca ihtiyacınız olan CSS ve JS dosyalarını yükler. Kullanmadığınız bir modülü tema ayarlarından kapatabilirsiniz. Örneğin Kadence’te “Elements” modülünü kapatmak, sitenin alt bilgi çağrılarına eklenen fazladan kodu engeller.
Örnek karar süreci: Diyelim ki ana sayfanızda büyük bir slider yerine statik bir görsel ve başlık kullanacaksınız. Slider eklentisini ve slider scriptlerini tamamen devre dışı bırakmak, sayfa yükünü 200-300 KB hafifletebilir. Bu da mobil bağlantıda 1-2 saniyelik kazanç demektir.
4. Görselleri Teslim Etmeden Önce Sıkıştırın ve Yeni Formatları Kullanın
Ortalama bir web sayfasının ağırlığının yarıdan fazlasını görseller oluşturur. 4000 piksel genişliğinde, RAW halli bir fotoğrafı doğrudan medya kütüphanesine yüklemek en sık yapılan hızdır. Oysa ziyaretçinin ekranı genelde 1440 pikseli geçmez. Görseli kullanacağınız maksimum genişliğe (örneğin içerik alanı 800 px ise 1600 px retina yeterlidir) ölçeklendirip, sıkıştırmalı olarak yüklemelisiniz.
Sıkıştırma için TinyPNG, ShortPixel ya da Imagify gibi araçlarla görselleri yükleme anında optimize edin. Kayıplı sıkıştırma çoğu fotoğraf için idealdir; insan gözü farkı ayırt edemez. Grafik, logo ve simgelerde ise SVG formatına yönelin. SVG, vektörel olduğu için boyutu piksel tabanlı alternatiflere göre çok küçük kalır ve her çözünürlükte keskindir.
WebP ve AVIF gibi yeni nesil formatlar, JPEG’e kıyasla %25-35 arası daha küçük dosya boyutu sunar. Eğer hostinginiz WebP desteği veriyorsa, bir eklenti ile yüklenen görselleri otomatik WebP’ye çevirebilirsiniz. AVIF henüz her sunucuda desteklenmese de WebP artık standart haline geldi. Sitenizde WebP kullanıyorsanız, bir elementi veya CDN üzerinden eski tarayıcılar için JPEG alternatifi sunmayı unutmayın.
Mini kontrol listesi:
- Yüklemeden önce görseli kullanılacak boyuta getir.
- Dosya adını açıklayıcı ve Türkçe karakter içermeyen bir şekilde yeniden adlandır (ornek-urun-fotografi.jpg).
- Alt metin ekle – hem erişilebilirlik hem SEO için.
- Kayıplı sıkıştırma uygula ya da eklentiyle otomatik optimize et.
- Mümkünse WebP formatına dönüştür.
5. Sayfa Önbellekleme (Caching) Katmanlarını Doğru Kurun
WordPress her sayfa isteğinde PHP çalıştırır, veritabanını sorgular, sonucu HTML’e dönüştürür. Oysa bir yazıyı her ziyaretçiye sıfırdan oluşturmak yerine bir kere oluşturup statik HTML olarak sunmak, sunucu yükünü dramatik şekilde azaltır. İşte buna sayfa önbellekleme denir.
WP Rocket, Flying Press, LiteSpeed Cache (LiteSpeed sunucularda) gibi eklentiler işin büyük kısmını halleder. Ancak kurulum sonrası birkaç ince ayar fark yaratır.
Dikkat edilmesi gerekenler:
- Mobil önbellek: Eğer siteniz responsive ve her cihazda aynı HTML’i sunuyorsa, ayrı mobil önbellek oluşturmayı kapatabilirsiniz. Gereksiz yere iki kat disk alanı ve işlem harcar.
- Sorgu dizisi (query string) temizliği: UTM parametresi gibi izleme kodları yeni bir önbellek girişi oluşturarak israfa yol açabilir. Eklentinizin bu sorguları yok saydığından emin olun.
- Önbellek süresi: Sık güncellenmeyen sayfalar için süreyi uzun tutabilirsiniz (örneğin 10 saat). Blog ana sayfası gibi sık değişen sayfalarda 1-2 saat idealdir.
Nesne önbellekleme (object caching) de özellikle WooCommerce gibi ağır dinamik sitelerde harikalar yaratır. Redis tabanlı bir nesne önbelleği, veritabanı sorgularını RAM’de tutarak aynı sorguların tekrar tekrar yapılmasını engeller. Bu, hosting tarafından destekleniyorsa etkinleştirilmeli.
6. CSS ve JavaScript Kaynaklarını Azaltın, Birleştirin
Her eklenti kendi CSS ve JS dosyasını ayrı ayrı çağırır. Sonuç: 20-30 farklı dosya, onlarca HTTP isteği. Modern HTTP/2 protokolü çoklu istekleri paralel işleyebilse de, dosya sayısı arttıkça tarayıcının işlem süresi uzar. Hız optimizasyon eklentileri (WP Rocket, Autoptimize, LiteSpeed) bu dosyaları birleştirip (minify & combine) boyutlarını küçültebilir.
Ancak körü körüne tüm dosyaları birleştirmek bazen siteyi bozar. Özellikle JavaScript birleştirme, sıralamaya duyarlıdır. Bir dosya diğerinden önce yüklenmeli ise, birleştirme bu sırayı bozup hatalara yol açabilir. Şu yöntemi izleyin:
- Önce yalnızca CSS birleştirmeyi açın ve siteyi test edin.
- Çalışıyorsa, JS birleştirmeyi açın.
- Hata alırsanız, sorunlu JS dosyasını tespit edip birleştirme listesinden hariç tutun.
Kritik üst kısım CSS’i (critical CSS): Sayfanın ilk görünen bölümünün stillerini inline olarak HTML’e gömmek, ekran boyamasını hızlandırır. WP Rocket’in “Optimize CSS Delivery” seçeneği bunu otomatik yapar. Elle uğraşmak isterseniz, her şablon için ayrı critical CSS oluşturmak gerekir ki bu, sabit şablonlu siteler için fazla zahmetlidir. Çoğu site için otomatik çözüm yeterlidir.
Bir de “kullanılmayan CSS’i kaldırma” (remove unused CSS) konusu var. PageSpeed Insights raporunda sıkça çıkar. Eklentiler bazen temanın tüm stillerini yüklediği için gereksiz kodlar kalır. Flying Press veya Perfmatters gibi araçlar, sayfa bazında kullanılmayan stilleri temizleyebilir. Fakat dikkatli olun: Bir sayfada kullanılmayan bir stil, kullanıcı etkileşimiyle açılan bir modal pencerede gerekebilir. Bu yüzden test etmeden canlıya almayın.
7. Eklenti Sayısını Azaltın ve Mantıklı Alternatiflere Yönelin
WordPress’in cazibesi binlerce eklentidir. Ancak her eklenti veritabanına tablo ekler, arka planda işlem yapar, güncelleme bekler ve potansiyel bir güvenlik açığıdır. 50 eklentili bir sitenin yavaş olmasında şaşılacak bir şey yoktur. Gözden geçirme yaparken şu soruları sorun:
- Bu eklentinin yaptığı işi tema ya da hosting yerleşik bir özellikle yapabilir miyim?
- Gerçekten aktif olarak kullanıyor muyum, yoksa “bir gün lazım olur” diye mi duruyor?
- İki eklenti aynı işlevin yarısını mı yapıyor? Tek bir kapsamlı eklenti ile değiştirilebilir mi?
Pratik örnekler:
- Sosyal medya paylaşım butonları için ayrı bir eklenti yerine, hafif bir temanın kendi paylaşım modülü veya Grow by Mediavine gibi dışarıdan yüklenen bir script daha az sunucu yükü getirir.
- İletişim formu için ağır bir form oluşturucu yerine, hafif bir alternatif (örneğin Formidable’ın basit modu veya CF7) seçilebilir.
- SEO eklentisi hem meta etiketleri, hem XML site haritası, hem şema işaretlemesi yapıyorsa, ayrı ayrı eklentiler kullanmaya gerek kalmaz.
Veritabanı temizliği de unutulmamalı. Silinen eklentiler bazen tablolarını veritabanında bırakır. WP-Optimize gibi bir araçla yetim kalmış tabloları, revizyonları ve spam yorumları periyodik olarak temizlemek sorgu sürelerini iyileştirir. Revizyon sayısını wp-config.php dosyasına define('WP_POST_REVISIONS', 5); ekleyerek sınırlayabilirsiniz; 20 revizyon yerine 5 tutmak veritabanı şişmesini önler.
8. İçerik Dağıtım Ağı (CDN) ile Coğrafi Gecikmeyi Azaltın
Ziyaretçiniz İzmir’den, sunucunuz Amsterdam’daysa, her istek fiziksel mesafe kat eder. CDN, sitenizin statik dosyalarını (resimler, CSS, JS) dünyanın farklı noktalarındaki sunuculara kopyalar. Kullanıcı, kendine en yakın sunucudan bu dosyaları alır. Sonuç: özellikle görsel yoğun sayfalarda 200-400 ms kadar kazanç.
Cloudflare’in ücretsiz planı çoğu site için fazlasıyla yeterlidir. Kurulumu basittir: DNS’i Cloudflare’e yönlendirir, proxy’i (turuncu bulut) aktif edersiniz. İleri düzey kullanıcılar için Cloudflare APO (Automatic Platform Optimization) eklentisi, dinamik WordPress sayfalarını da edge sunucularda önbelleğe alarak ciddi hız artışı sağlar. Ücretlidir, ancak trafiği yüksek sitelerde yatırıma değer.
CDN kullanırken dikkat: Görsel optimize eklentiniz WebP dönüşümü yapıyorsa, CDN’nin de bu WebP dosyalarını sunabildiğinden ve varyant yönetimini doğru yaptığından emin olun. Aksi halde bazı tarayıcılara kırık görseller gönderebilirsiniz.
9. Veritabanı Sorgularını ve Harici İstekleri İnceleyin
Yavaş bir sitenin izini sürerken Query Monitor eklentisi altın değerindedir. Yönetici araç çubuğuna eklenen panelden hangi sayfada kaç veritabanı sorgusu yapıldığını, bunların sürelerini, hangi hook’ların çağrıldığını ve harici HTTP isteklerini görebilirsiniz.
En sık karşılaşılan sorunlar:
- Yavaş sorgular: Özellikle wp_postmeta tablosunda meta_key ile yapılan sorgular indekslenmemişse yavaşlar. Büyük bir WooCommerce mağazanız varsa, sipariş sorguları yavaşlayabilir. Bu noktada özel bir veritabanı indeksleme veya sorgu optimizasyonu gerekir; genellikle bir geliştirici desteği şart olur.
- Gereksiz harici istekler: Her sayfa yüklemesinde Google Fonts, Font Awesome CDN, sosyal medya sayıcıları, reklam scriptleri gibi dış kaynaklara istek atılır. Google Fonts’u yerel olarak barındırmak (self-host) DNS çözümlemesini ve ekstra bağlantıyı ortadan kaldırır. Birçok hız eklentisi yükleme sırasında fontları tespit edip otomatik yerelleştirebilir. Ayrıca Font Awesome gibi ikon kütüphanelerini komple yüklemek yerine yalnızca kullandığınız ikonları SVG olarak eklemek 100-150 KB tasarruf sağlar.
Gravatar: Eğer sitenizde yorum bölümü aktif değilse, wp-config.php’ye define('WP_DEFAULT_AVATAR', 'blank'); ekleyerek Gravatar isteklerini kapatabilirsiniz. Aktif yorum bölümü olan bir blogda bile, varsayılan avatarı boş bırakmak her sayfada onlarca harici Gravatar isteğini engeller.
10. Ölçün, İzleyin, Sürekli İyileştirin
Hız optimizasyonu tek seferlik bir iş değildir. Yeni bir eklenti eklediğinizde, temayı güncellediğinizde veya hosting sunucusunda bir değişiklik olduğunda performans dalgalanabilir. Bu yüzden bir ölçüm rutini oturtmak şarttır.
Kullanacağınız araçlar:
- Google PageSpeed Insights: Hem laboratuvar hem saha verisi sunar. “En Büyük İçerikli Boyama” (LCP), “İlk Giriş Gecikmesi” (FID), “Kümülatif Düzen Kayması” (CLS) metriklerine odaklanın. Total skor 90+ olabilir ama LCP 4 saniyenin altında değilse hâlâ iş var demektir.
- GTmetrix: Şelale diyagramı ile hangi kaynağın ne zaman yüklendiğini görürsünüz. Sıralı istekleri, büyük dosyaları tespit etmek için idealdir.
- WebPageTest: Farklı lokasyon, tarayıcı ve bağlantı hızlarında (örneğin 3G) test yapmanızı sağlar. Özellikle mobil ziyaretçilerin yoğun olduğu bir kitleniz varsa vazgeçilmezdir.
Testleri yorumlarken tek bir metrik takıntısına kapılmayın. 100 puan alıp kullanıcıya boş bir sayfa sunan siteler gördük. Önemli olan, gerçek kullanıcı deneyimidir. Bu yüzden Chrome User Experience Report (CrUX) verilerini PageSpeed Insights üzerinden kontrol edin. Saha verisi, laboratuvar simülasyonundan daha değerlidir.
Düzenli aralıklarla (ayda bir) ana sayfa, bir yazı sayfası ve bir kategori sayfasını test edin. Sonuçları bir Google Sheet’e not alın. Düşüş trendi gördüğünüzde hemen müdahale edebilirsiniz.
| Aşama | Ne Yapılır | Tahmini Etki |
|---|---|---|
| Hosting Seçimi | Paylaşımlıdan yönetilen veya cloud hostinge geçiş | Sunucu yanıt süresinde %50-70 iyileşme |
| PHP Güncelleme | 7.4’ten 8.1/8.2’ye yükseltme | %30-50 performans artışı |
| Tema ve Eklenti Optimizasyonu | Hafif tema, gereksiz eklentileri kaldırma | Sayfa ağırlığında %20-40 azalma |
| Görsel Optimizasyonu | Sıkıştırma, WebP, lazy load | Sayfa ağırlığında %30-50 azalma, LCP’de 1-2 sn iyileşme |
| Önbellekleme | Sayfa ve nesne önbelleği | Sunucu yanıt süresinde %50-90 iyileşme |
| CDN | Cloudflare veya benzeri CDN etkinleştirme | Gecikmede 100-400 ms azalma |
Hız optimizasyonu bir yolculuktur. Her katman bir öncekinin üzerine biner. Hosting’i düzeltmeden tema değiştirmek, sizi kısmen rahatlatır ama temel sorunu çözmez. Dolayısıyla yukarıdaki adımları sırasıyla uygulayın. Birini bitirip test edin, sonra diğerine geçin. Toplu halde yapılan değişiklikler, sorunun kaynağını bulmanızı imkânsızlaştırır.
Başlangıç İçin Tek Cümlelik Eylem Planı
Sitenizin şu anki hızını PageSpeed Insights ile test edin, LCP değerini not alın, ardından önce hosting ve PHP sürümünüzü gözden geçirip buradaki adımları teker teker uygulayarak farkı izleyin.
Hosting seçimi gerçekten her şeyi değiştiriyor.
Peki yönetilen WordPress hosting için hangi firmayı önerirsiniz?
Almanya lokasyonu benim sitemde pingi gerçekten yarıya düşürdü.
Paylaşımlı hostingle cache eklentisinin işe yaramadığını defalarca gördüm. Sunucu tarafı sınırlamaları her şeyi boşa çıkarıyor.
Türkiye’deki kitle için İstanbul sunucuları iyi bir seçenek. Ben önce Almanya denemiştim ama farkı testlerle gördüm. Yeni başlayanlar özellikle managed hosting ile başlamalı bence.
Her şey hosting değil bence, önbellek optimizasyonu da önemli.
VPS’e geçmeyi düşünüyorum ama kurulum ve yönetim kısmı gözümü korkutuyor. Yönetilen VPS hizmetleri hakkında da bilgi verecek misiniz?
Mobil hız konusunu atlamamak lazım, çok doğru söylüyorsunuz.
Cloud hosting kullanıyorum ama bazen ani trafik artışlarında yine yavaşlamalar oluyor. Bununla ilgili bir ayar var mı? Mesela otomatik ölçeklenebilir bir yapı kurmaktan bahsediyor musunuz yazıda?
Ucuz hosting alıp sonra eklentilerle hızlandırmaya çalışmak tam bir bataklık.