PrestaShop mağazanız yüklenirken çok uzun sürüyor
Yavaş bir mağaza, rastgele barındırma değiştirilerek düzelmez. Yavaşlığın kaynağı hemen her zaman belirli bir noktadır: indekslenmemiş SQL sorguları, yanlış yapılandırılmış Smarty önbelleği veya her sayfada gereksiz kod çalıştıran bir eklenti.
Müdahale etmeden önce nasıl ölçüm yapıyorum
-
Sayfa profilleme
Belirli bir sayfada çalıştırılan SQL sorgularını, sayılarını ve çalışma sürelerini listelemek için performans hata ayıklayıcısını etkinleştiriyorum. 200'den fazla sorgu tetikleyen bir ürün sayfası normal değildir.
-
Önbellek kontrolü
Smarty önbelleğinin durumunu (derleme ve render önbelleği) kontrol ediyorum; PrestaShop 1.6'da ayrıca CSS/JS birleştirme ve sıkıştırma (CCC) özelliğinin etkin olup olmadığına bakıyorum.
-
MySQL indeks analizi
Veritabanı tarafındaki yavaş sorgulara bakıyor ve en çok kullanılan tablolarda (genellikle ps_product, ps_product_attribute ve ps_category_product) eksik indeksleri ekliyorum.
-
Eklenti denetimi
Her sayfada çalışan hook'lara (displayHeader, actionFrontControllerSetMedia) bağlanan ve gereksiz dış çağrılar veya sorgular yapan eklentileri tespit ediyorum.
-
Sunucu kontrolü
OPcache'in etkin olup olmadığını, kullanılan PHP sürümünü ve varsayılan dosya önbelleğinin yerine geçebilecek bir bellek içi önbellek sisteminin (Redis veya Memcached) mevcut olup olmadığını kontrol ediyorum.
Yavaş PrestaShop sitesi: sunucu mu, tarayıcı mı?
Herhangi bir şeyi düzeltmeden önce zamanın sunucuda mı yoksa tarayıcıda mı kaybolduğunu bilmek gerekir. Tarayıcının geliştirici araçlarını açın, Ağ sekmesinde ilk satıra bakın: sunucunun yanıt vermesi için geçen süre, yani TTFB.
- Yüksek TTFB, yaklaşık bir saniyenin üzerinde: sunucu sayfayı üretmekte gecikiyor. Neden PHP’de, veritabanında ya da bir modüldedir; bu sayfanın konusu da budur.
- TTFB iyi ama sayfa geç görünüyor: sunucu hızlı yanıt veriyor, ardından tarayıcı zorlanıyor. Fazla ağır görseller, üçüncü taraf betikler (canlı sohbet, yorumlar, reklam izleme), ertelenmemiş yazı tipleri ve JavaScript: bu sunucu değil, ön yüz işidir.
- Yalnızca yönetim paneli yavaş: büyük hacimli sipariş, ürün ya da müşteri listelerine, gösterge paneli modüllerine ve hiçbir şey temizlemediğinde sınırsızca büyüyen
ps_connections,ps_guestya daps_pagenotfoundgibi istatistik tablolarının boyutuna bakın.
Tüm mağazayı yavaşlatan unutulmuş ayarlar
Gördüğüm yavaş mağazaların şaşırtıcı bir kısmında kod sorunu yoktur: yalnızca bir arıza giderme ayarı açık kalmıştır.
- Bir müdahaleden sonra
config/defines.inc.phpiçindetrueolarak bırakılan_PS_MODE_DEV_. 1.7, 8 ve 9’da yönetim panelini Symfony’nin belirgin biçimde daha yavaş olan geliştirme ortamında da çalıştırır. - Etkin bırakılan
_PS_DEBUG_PROFILING_: her sayfa kendi profilini hesaplayıp gösterir, bu da her görüntülemede zaman kaybettirir. - Gelişmiş Parametreler > Performans altında şablon derlemesinin “Derlemeyi zorla” olarak ayarlanması: Smarty şablonları yeniden kullanmak yerine her görüntülemede yeniden derler.
- Aynı ekranda, bazen “bir değişikliği görmek” için kapatılıp bir daha açılmayan önbellek.
Bu dört nokta birkaç dakikada kontrol edilir ve hiçbir geliştirme gerektirmez. Barındırma hakkında herhangi bir sonuca varmadan önce bakılmalıdır.
Denetimi gerekli kılan belirtiler
- Ürün sayfası veya kategori sayfasının açılması 3 saniyeden uzun sürüyor
- Katalog birkaç bin ürünü aştığında yönetim paneli yavaşlıyor
- Belirgin bir değişiklik olmadan aylar içinde giderek artan yavaşlama
- Yalnızca yoğun trafik dönemlerinde ortaya çıkan yavaşlama zirveleri
- Barındırma hizmeti yeterli olmasına rağmen kötü PageSpeed veya Core Web Vitals skoru
En sık düzelttiğim sorunlar
PrestaShop'un varsayılan dosya önbelleği (var/cache), birkaç yüz ürünlük bir katalogda gayet iyi çalışır; ancak yoğun eşzamanlı trafiğe sahip büyük bir katalogda darboğaz haline gelir, çünkü her önbellek yazma işlemi diski kilitler. Bellek içi önbelleğe geçmek, koda dokunmadan çoğu zaman durumu tamamen değiştirir.
Veritabanı tarafında, join işlemlerinde kullanılan sütunlarda (id_product, id_shop, id_lang) indeks bulunmaması, katalog büyüdükçe yanıt süresini ciddi şekilde artırır; oysa aynı sayfa, az veri içeren test ortamında hızlı kalmaya devam eder.
Son olarak, bazı öneri, pazarlama izleme veya PDF oluşturma eklentileri, işlev o anda kullanılmıyor olsa bile her sayfa görüntülemesinde ağır kod çalıştırır. Bunları hook hata ayıklayıcısı üzerinden tespit ediyor ve koşullu devre dışı bırakma ya da asenkron göreve geçirme öneriyorum.
İlgili sayfalar
-
Yavaş bir mağazayı teşhis etmek
Hiçbir şeye dokunmadan önce adım adım ölçüm yöntemi.
-
Mağazayı yavaşlatan modüller
Her sayfada gereksiz yere çalışan modülleri bulmak.
-
Büyük bir PrestaShop kataloğunda performans
On binlerce ürünün ötesinde neyin değiştiği.
-
Bir günden ötekine yavaşlayan site
Yavaşlamanın belirli bir tarihi varsa, nedeninin de vardır.
-
Kaybolan kategori filtreleri
Kategori sayfalarında sık sorumlu olan fasetli arama ve dizini.
-
Yavaşlık yüzünden siteyi yeniden yapmak mı?
Nadiren doğru yanıt: yenilemenin neyi çözdüğü ve neyi aynen tekrarladığı.
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.