WooCommerce Performans Optimizasyonu: Mağazaya Özgü Darboğazlar
Ana sayfa hızlı açılıyor ama sepet ve ödeme sayfası ağır mı? WooCommerce'e özgü darboğazları; sepet parçaları, oturumlar, sipariş tabloları ve arka plan görevleri üzerinden anlatıyoruz.
İçindekiler
Ölçüm araçlarında ana sayfanız iyi puan alıyor, ama müşteriler sepete ürün eklerken bekliyor, ödeme sayfası birkaç saniye takılıyor, yönetim panelinde sipariş listesi geç açılıyor. Bu tablo genellikle genel bir hız sorunu değil, WooCommerce performans sorunudur. WooCommerce, sıradan bir WordPress sitesinden farklı olarak her ziyaretçi için sepet ve oturum tutar, sipariş kaydeder ve arka planda düzenli görevler çalıştırır. Bu yazıda yalnızca mağazalara özgü bu darboğazlara odaklanıyorum.
Görsel sıkıştırma, CDN ve sunucu seçimi gibi genel konuları e-ticaret site hızı yazısında ele almıştım; burada daha derindeki, WooCommerce’in kendi yapısından kaynaklanan noktalara bakacağız.
WooCommerce performans sorunları neden farklıdır?
Bir kurumsal sitede her ziyaretçi aynı sayfayı görür; bu yüzden sayfa bir kez hazırlanıp önbellekten sunulabilir. Mağazada ise sepet, giriş durumu, ödeme ve hesap sayfaları kişiye özeldir ve önbellekten sunulamaz. Bu sayfalar her istekte PHP ve veritabanı tarafından yeniden hazırlanır.
Dolayısıyla WooCommerce performans çalışmasında iki ayrı hedef vardır: önbelleğe alınabilen sayfaları (ürün, kategori, ana sayfa) olabildiğince önbellekten sunmak ve önbelleğe alınamayan sayfaları (sepet, ödeme, hesap) sunucu tarafında hızlandırmak.
Önbellek ayarları ve doğru istisnalar
Sayfa önbelleği WooCommerce’te iki yönlü bir risk taşır. Yetersiz kullanılırsa site yavaş kalır; yanlış kullanılırsa bir müşterinin sepeti başka bir müşteriye görünebilir. Doğru kurulumda şu kurallar uygulanır:
- Sepet, ödeme ve hesabım sayfaları sayfa önbelleğinin dışında tutulur.
- Sepette ürünü olan veya giriş yapmış ziyaretçiler WooCommerce çerezleri üzerinden tanınır ve onlara önbelleksiz sayfa sunulur.
- Ürün ve kategori sayfaları önbelleğe alınır; stok veya fiyat değiştiğinde ilgili sayfanın önbelleği temizlenir.
LiteSpeed sunucularda bu ayarların çoğu eklentide hazır gelir, ancak tema ve eklentilere göre ince ayar gerekir. Ayrıntılar için LiteSpeed Cache ayarları yazısına bakabilirsiniz.
Sepet parçaları (cart fragments) isteği
Birçok temada menüdeki sepet simgesi, sayfa önbellekten gelse bile sepetin güncel halini göstermek için her sayfada arka planda bir istek gönderir. Bu istek önbelleğe alınamaz ve trafiği yüksek sitelerde sunucuyu gereksiz yere meşgul eder. Sepeti boş olan ziyaretçiler için bu isteği devre dışı bırakmak ya da yalnızca sepet sayfasında çalıştırmak belirgin bir rahatlama sağlar.
Veritabanı: oturumlar, siparişler ve şişen tablolar
Zamanla en çok yavaşlayan kısım veritabanıdır. WooCommerce’in veritabanında büyüyen ve düzenli bakım isteyen bölgeler şunlardır:
| Bölge | Sorun | Çözüm yaklaşımı |
|---|---|---|
| Müşteri oturumları | Süresi dolmuş sepet oturumları birikir | Süresi dolanların düzenli temizlenmesi |
| Sipariş verisi | Eski yapıda siparişler yazılarla aynı tabloda tutulur, sorgular ağırlaşır | Yüksek performanslı sipariş depolamaya (HPOS) geçiş |
| Arka plan görevleri | Tamamlanmış görev kayıtları on binlerce satıra ulaşabilir | Eski kayıtların periyodik temizliği, takılan görevlerin incelenmesi |
| Otomatik yüklenen ayarlar | Silinen eklentilerin artıkları her sayfa açılışında yüklenir | Gereksiz kayıtların temizlenmesi, otomatik yüklemenin kapatılması |
| Geçici veriler | Süresi dolmuş önbellek kayıtları birikir | Temizlik ve kalıcı nesne önbelleğine geçiş |
HPOS, WooCommerce’in siparişleri kendi özel tablolarında tuttuğu yapıdır ve yeni kurulumlarda varsayılan hale gelmiştir. Eski mağazalarda geçiş öncesinde kullanılan eklentilerin bu yapıyla uyumlu olup olmadığı kontrol edilmeli ve geçiş bir test ortamında denenmelidir.
Nesne önbelleği
Redis gibi bir kalıcı nesne önbelleği, sık tekrarlanan veritabanı sorgularının sonuçlarını bellekte tutar. Önbelleğe alınamayan sepet ve ödeme sayfalarında bile sorgu sayısını azalttığı için WooCommerce performans iyileştirmesinde en etkili adımlardan biridir. Sunucunuzun bunu destekleyip desteklemediğini barındırma firmanıza sormanız gerekir.
Eklenti, tema ve ürün yapısı
Her eklenti her sayfada kod çalıştırabilir. Uzun bir eklenti listesi, özellikle ödeme sayfasında gecikmenin yaygın sebebidir. Bir eklentinin gerçekten gerekli olup olmadığını ve yalnızca ihtiyaç duyulan sayfalarda yüklenip yüklenmediğini incelemek gerekir.
- Ölçün: Hangi eklentinin ne kadar sorgu ve süre harcadığını bir profil aracıyla görün.
- Ayıklayın: Aynı işi yapan eklentileri tekilleştirin, kullanılmayanları kaldırın.
- Sınırlayın: Yalnızca ürün sayfasında gereken bir betiğin tüm sitede yüklenmesini engelleyin.
- Ürün yapısını gözden geçirin: Yüzlerce varyasyonlu ürünler ve karmaşık filtreler ağır sorgular üretir; filtre için uygun indeksleme ve gerekirse ayrı bir arama çözümü düşünülmelidir.
Ağır sayfa oluşturucu temaları da mağaza sayfalarında fazla HTML ve CSS üretir. Bu yüzden WooCommerce için hafif, gereksiz bileşen yüklemeyen bir tema tercih etmek uzun vadede fark yaratır.
Ölçüm ve hedefler
Optimizasyon, ölçümle başlar ve ölçümle doğrulanır. Ana sayfanın yanı sıra bir kategori sayfası, bir ürün sayfası, sepet ve ödeme sayfası ayrı ayrı ölçülmelidir. Google’ın Core Web Vitals eşikleri iyi bir hedef çerçevesidir: LCP için 2,5 saniye, INP için 200 milisaniye, CLS için 0,1. Bu metriklerin ne anlama geldiğini Core Web Vitals yazısında açıkladım.
Sunucu yanıt süresi de ayrıca izlenmelidir; önbelleğe alınamayan sayfalarda asıl darboğaz genellikle buradadır. Yönetim panelinde sipariş listesi, ürün araması ve rapor ekranlarının açılış süreleri de personelin günlük verimini etkilediği için ölçüme dahil edilmelidir.
Bu işi nasıl birlikte yaparız?
Performans çalışmasında tahminle değil, mağazanızın gerçek verisiyle ilerlerim. Süreç şu şekilde işler:
- Ölçüm ve teşhis: Mağazanızın kritik sayfaları ve yönetim paneli ölçülür; veritabanı boyutu, eklenti yükü ve sunucu yapılandırması incelenir.
- Rapor ve teklif: Bulgular, etkisine göre sıralanmış bir yapılacaklar listesiyle size sunulur; hangi adımın ne getireceğini sade bir dille açıklarım.
- Test ortamında uygulama: Önbellek, veritabanı ve eklenti değişiklikleri önce kopya sitede yapılır; sepet ve ödeme akışı denenir.
- Yayın ve takip: Değişiklikler canlıya alınır, önce ve sonra ölçümleri karşılaştırılır; düzenli bakım için öneriler bırakılır.
Mağazanız yavaşlıyorsa ve sebebini bulamadıysanız iletişim sayfasından bana ulaşabilirsiniz.
Sık sorulan sorular
Önbellek eklentisi kurmak WooCommerce’i hızlandırmaya yeter mi?
Ürün ve kategori sayfaları için büyük fark yaratır, ancak sepet, ödeme ve hesap sayfaları önbelleğe alınamaz. Bu sayfalar için veritabanı bakımı, nesne önbelleği ve eklenti ayıklaması gerekir.
HPOS’a geçmek güvenli mi?
Yeni kurulumlarda varsayılan yapıdır. Eski mağazalarda kullanılan eklentilerin uyumluluğu kontrol edilmeli ve geçiş önce bir test ortamında denenmelidir.
Yönetim panelim neden yavaş açılıyor?
Sipariş sayısının artması, şişen arka plan görev kayıtları, gereksiz otomatik yüklenen ayarlar ve panelde çalışan ağır eklentiler en yaygın sebeplerdir. Veritabanı incelemesiyle kaynağı belirlenebilir.
Paylaşımlı hosting WooCommerce için yeterli mi?
Küçük kataloglu ve düşük trafikli mağazalar için başlangıçta yeterli olabilir. Sipariş ve trafik arttıkça nesne önbelleği desteği olan, kaynakları ayrılmış bir sunucuya geçmek gerekir.
Sonuç
WooCommerce performans sorunlarının çoğu, mağazaya özgü katmanlardan, yani önbellek istisnalarından, sepet isteklerinden ve büyüyen tablolardan kaynaklanır; bunları ölçerek ele almak hem müşteri deneyimini hem de panel verimini iyileştirir. Mağazanızın durumunu birlikte incelemek isterseniz benimle iletişime geçebilirsiniz.
