WooCommerce Hız Optimizasyonu: Ölçülebilir 12 Müdahale
WooCommerce yavaş bir yazılım değildir; yavaşlayan şey, üzerine yıllar içinde biriken katmanlardır. Aşağıdaki on iki müdahale, gerçek mağazalarda ölçülebilir sonuç verdiği için listelenmiştir — sırayla uygulayın ve her adımdan sonra ölçün.
Önce ölçün: neyi düzelttiğinizi bilin
Optimizasyona başlamadan üç veri noktasını kaydedin: kategori sayfası TTFB, ürün sayfası LCP ve sepete ekleme işleminin tamamlanma süresi. Bunları not almadan yapılan iyileştirme, tahminden ibarettir.
Araçlar: Query Monitor (sorgu sayısı ve yavaş sorgular), New Relic veya sunucu slow-log'u, PageSpeed Insights alan verisi.
Sunucu katmanı
1. PHP sürümünü ve OPcache'i güncelleyin
PHP 8.3+ ile 7.4 arasında WooCommerce'te %25–40 bandında yanıt süresi farkı görülür. OPcache açık ve opcache.memory_consumption en az 256 MB olmalı.
2. Nesne önbelleği (Redis) kurun
WooCommerce, her istekte yüzlerce options ve meta sorgusu çalıştırır. Redis nesne önbelleği bu sorguların çoğunu bellekten karşılar. Tek başına en yüksek getirili müdahaledir; TTFB'de yarı yarıya düşüş sık görülür.
3. Sayfa önbelleğini doğru istisnalarla kurun
cart, checkout, my-account sayfalarını ve woocommerce_items_in_cart çerezini taşıyan istekleri önbellek dışında bırakın. Aksi hâlde kullanıcılar birbirinin sepetini görür.
Uygulama katmanı
4. Sepet fragmentlerini kontrol altına alın
wc-cart-fragments.js, her sayfa yüklemesinde önbelleklenemeyen bir AJAX isteği tetikler. Sepet sayacını canlı göstermiyorsanız bu betiği ürün dışı sayfalarda devre dışı bırakın; kategori sayfalarında belirgin hızlanma sağlar.
5. Gereksiz betikleri sayfa bazında kaldırın
WooCommerce stilleri blog yazılarında, iletişim formu betiği ürün sayfalarında çalışmak zorunda değil. Koşullu wp_dequeue_script ile her sayfaya sadece ihtiyacı olanı yükleyin.
6. Eklenti denetimi yapın
Query Monitor'ü açıp bir kategori sayfasını yükleyin. 300'ün üzerinde sorgu görüyorsanız sorumluyu bulun. En sık suçlular: çoklu para birimi, gelişmiş filtre, popup ve analitik eklentileri.
7. Otomatik yükleme (autoload) verisini temizleyin
Silinen eklentilerin wp_options tablosunda bıraktığı autoload kayıtları her istekte belleğe yüklenir. Toplam autoload boyutu 800 KB'ı aşıyorsa temizlik gerekir.
Veritabanı katmanı
8. HPOS (High-Performance Order Storage) kullanın
Siparişleri özel tablolarda tutan HPOS, wp_posts tablosunun şişmesini önler. Binlerce siparişi olan mağazalarda yönetim paneli hızı belirgin biçimde artar.
9. Geçici kayıtları (transient) ve revizyonları budayın
Süresi dolmuş transient'lar ve sınırsız yazı revizyonları tabloyu büyütür. Revizyon sayısını define('WP_POST_REVISIONS', 5); ile sınırlayın.
10. Eksik indeksleri kontrol edin
wp_postmeta üzerindeki meta_key aramaları indekssiz kaldığında tam tablo taraması yapılır. Yavaş sorgu günlüğü bunu hızla ortaya çıkarır.
Ön yüz katmanı
11. Görselleri modern formata çevirin
Ürün görsellerini WebP veya AVIF'e dönüştürün, doğru boyutlarda üretin ve ilk ekran dışındakileri loading="lazy" ile erteleyin. Kategori sayfasında 40 ürün görselinin toplam ağırlığı 500 KB'ı geçmemeli.
12. Kritik CSS ve font stratejisi
İlk ekranı çizen CSS'i satır içine alın, kalanını ertelenmiş yükleyin. Yazı tipi ailesini iki varyantla sınırlayın ve font-display: swap kullanın.
Sonuç beklentisi
Tipik bir orta ölçekli WooCommerce mağazasında bu on iki adım, kategori sayfası TTFB'sini 1,2 saniyeden 0,3 saniyeye, ürün sayfası LCP'sini 3,8 saniyeden 1,9 saniyeye indirir. Kritik nokta şudur: her adımdan sonra ölçün. Aynı anda beş değişiklik yapıp sonucu yorumlamak mümkün değildir.
Sıkça Sorulan Sorular
Önbellek eklentisi kurunca mağazam hızlanır mı?
Kısmen. Sayfa önbelleği ürün ve kategori sayfalarında büyük fark yaratır, ancak sepet, ödeme ve hesap sayfaları önbelleğe alınamaz. Bu sayfalarda hız, sunucu yapılandırması, veritabanı sağlığı ve eklenti yükü ile belirlenir.
Kaç eklenti çok fazla sayılır?
Sayı değil ağırlık önemlidir. Her istekte 400 sorgu çalıştıran tek bir eklenti, hafif on eklentiden daha zararlıdır. Query Monitor ile hangi eklentinin ne kadar sorgu ve süre tükettiğini ölçün, kararı veriye göre verin.