E-ticaret
E-ticaret siteniz neden yavaş açılıyor? Ölçülebilir 9 neden
Yavaş açılan bir e-ticaret sitesinin arkasında neredeyse her zaman aynı dokuz sebepten biri var. Her birini nasıl ölçeceğinizi ve hangisinin gerçekten satışa mal olduğunu anlatıyoruz.
Site hızı tartışmalarının çoğu ölçüm yapılmadan yürüyor. "Bende hızlı açılıyor" ile "müşteri şikayet ediyor" arasındaki fark genelde cihaz, bağlantı ve önbellek durumundan kaynaklanıyor. Bu yazıda hızın nerede kaybedildiğini sırayla ölçmenin yolunu ve her maddenin satışa etkisini anlatıyoruz.
Önce doğru metriği seçin
Tek bir "hız skoru" yanıltıcıdır. Satın alma davranışıyla ilişkisi kurulmuş üç ölçüm var:
- LCP (Largest Contentful Paint) — sayfanın ana görselinin veya başlığının ekrana geldiği an. Ziyaretçinin "açıldı" dediği nokta budur. Hedef: 2,5 saniyenin altı.
- INP (Interaction to Next Paint) — bir butona bastıktan sonra arayüzün tepki verme süresi. Sepete ekleme ve filtreleme burada ölçülür. Hedef: 200 ms altı.
- CLS (Cumulative Layout Shift) — sayfa yüklenirken içeriğin zıplaması. Yanlış butona basılmasının başlıca sebebi. Hedef: 0,1 altı.
1. Optimize edilmemiş ürün görselleri
En yaygın ve en kolay çözülen sebep. 2000 piksel genişliğinde bir JPEG, telefonda 400 piksellik alana sığdırılıyor. Aradaki fark boşa inen veridir.
Yapılacak: görselleri WebP veya AVIF formatına çevirin, kullanılacak boyutlarda birden fazla sürüm üretip srcset ile sunun, ekranın altında kalan görsellere loading="lazy" ekleyin. Ama ilk ekrandaki ana görsele lazy yüklemeyi eklemeyin — LCP'yi doğrudan geciktirir.
2. Eklenti yığını
WooCommerce mağazalarında sık gördüğümüz tablo: 30-40 aktif eklenti, her biri kendi CSS ve JavaScript dosyasını her sayfaya yüklüyor. Sepet sayfasında kullanılan bir eklenti ana sayfada da yükleniyor.
Ölçmek için tarayıcının Network sekmesinde istekleri kaynağa göre gruplayın. 100'ün üzerinde istek varsa büyük olasılıkla eklenti kaynaklıdır. Query Monitor gibi araçlar hangi eklentinin ne kadar sorgu ve süre harcadığını gösterir.
3. Önbellek olmaması veya yanlış kurulması
Dinamik sayfa her istekte veritabanına gidiyorsa aynı işi tekrar tekrar yapıyorsunuz demektir. Sayfa önbelleği, nesne önbelleği (Redis) ve tarayıcı önbelleği farklı katmanlardır; üçü ayrı ayrı kurulur.
Sık yapılan hata: sepet ve hesabım sayfalarının da önbelleğe alınması. Bir müşteri diğerinin sepetini görür. Önbellek kurulumunda bu sayfaların dışlandığından emin olun.
4. Aşırı büyümüş veritabanı
Yıllar içinde biriken sürüm geçmişi, geçici kayıtlar (transient), silinmiş eklenti artıkları ve sipariş meta verileri tabloları şişirir. Özellikle wp_options tablosundaki otomatik yüklenen (autoload) kayıtlar her sayfa isteğinde okunur.
-- Otomatik yüklenen veri boyutunu görün (1 MB üstü sorun işaretidir)
SELECT ROUND(SUM(LENGTH(option_value))/1024/1024, 2) AS autoload_mb
FROM wp_options WHERE autoload = 'yes';
-- En büyük 20 kaydı listeleyin
SELECT option_name, ROUND(LENGTH(option_value)/1024, 1) AS kb
FROM wp_options WHERE autoload = 'yes'
ORDER BY LENGTH(option_value) DESC LIMIT 20;5. Eksik veritabanı indeksleri
Ürün sayısı arttıkça filtreleme ve arama yavaşlar. Sebebi genelde tam tablo taramasıdır. Yavaş sorgu kaydını açın, en uzun süren sorguları çıkarın ve EXPLAIN ile indeks kullanıp kullanmadığına bakın. Doğru bir indeks, dakikalarca süren raporu saniyeye indirebilir.
6. Üçüncü taraf betikleri
Analitik, canlı destek, pop-up, yeniden pazarlama pikselleri, yorum widget'ları. Her biri ayrı bir sunucuya bağlantı açar ve o sunucu yavaşsa sizin sayfanız bekler.
Yapılacak: gerçekten gerekli olanları belirleyin, kalanları kaldırın. Kalanları async veya defer ile yükleyin, mümkünse sayfa yüklendikten sonra tetikleyin. Canlı destek widget'ını ilk etkileşime kadar geciktirmek tek başına ciddi kazanç sağlar.
7. Yanlış boyutlandırılmış veya paylaşımlı sunucu
Paylaşımlı hosting'de aynı fiziksel makineyi yüzlerce site paylaşır. Kampanya günü trafiğinizi karşılayamaz. Sunucu yanıt süresini (TTFB) ölçün: 600 ms üzerindeyse sorun büyük olasılıkla uygulamada değil altyapıdadır.
8. Yazı tipi yükleme stratejisi
Harici bir servisten yüklenen üç farklı yazı tipi ailesi ve sekiz ağırlık, metnin görünmesini geciktirir. Kullandığınız ağırlıkları sayın — çoğu sitede üçten fazlası gereksizdir. Yazı tiplerini kendi sunucunuzdan servis edin ve font-display: swap kullanın.
9. Yönlendirme zincirleri
http → https → www → son adres. Her adım ayrı bir gidiş-dönüş demektir. Sunucu yapılandırmasında tek adımda son adrese yönlendirin. Aynı şey eski ürün URL'leri için kurulan zincirlerde de geçerlidir.
Hangisinden başlamalı?
Sıra önemlidir. Ölçmeden değiştirmeye başlarsanız neyin işe yaradığını bilemezsiniz. Önerdiğimiz sıra:
- Gerçek kullanıcı verisiyle mevcut durumu kaydedin (Search Console, Core Web Vitals).
- TTFB ölçün — 600 ms üstüyse önce sunucu ve önbellek katmanına bakın.
- İlk ekrandaki görselleri optimize edin. Genelde en büyük tek kazanç buradadır.
- Üçüncü taraf betiklerini sayın ve gereksizleri kaldırın.
- Eklenti denetimi yapın, sayfa bazlı yükleme uygulayın.
- Veritabanı temizliği ve indeks çalışması.
- Ölçümü tekrarlayın ve öncesi/sonrası farkını yazılı kaydedin.
Ne kadar kazanç beklemeli?
Hiç optimizasyon yapılmamış bir WooCommerce mağazasında ilk üç maddeyi düzeltmek LCP'yi genelde yarıya indirir. Bunun ötesindeki kazanç için mimari değişiklik gerekir ve maliyet/fayda dengesi değişir. Ölçmeden söz veren bir teklife temkinli yaklaşın.
- e-ticaret
- performans
- core web vitals
- woocommerce