Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

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.

Sorunumu anlatayım Mesaj gönderin

Müdahale etmeden önce nasıl ölçüm yapıyorum

  1. 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.

  2. Ö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.

  3. 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.

  4. Eklenti denetimi

    Her sayfada çalışan hook'lara (displayHeader, actionFrontControllerSetMedia) bağlanan ve gereksiz dış çağrılar veya sorgular yapan eklentileri tespit ediyorum.

  5. 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_guest ya da ps_pagenotfound gibi 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.php içinde true olarak 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

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

pages
cache
catalogue
hebergement (facultatif)
mesure (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

Yavaşlığı çözmek için barındırma sağlayıcısını değiştirmek gerekir mi?
Her zaman değil. Önce zamanın gerçekte nerede kaybedildiğini ölçüyorum: genellikle sorun sunucu gücünde değil, kodda veya veritabanındadır.
Performans denetimi mağazayı yavaşlatır veya risk oluşturur mu?
Hayır, profilleme işlemi site kesintiye uğramadan yapılır. Düzeltme değişiklikleri, canlı ortama uygulanmadan önce test edilir ve gerekirse yoğun saatler dışında müdahale edebilirim.
Bana hangi erişimleri sağlamam gerekir?
FTP veya SSH erişimi, veritabanı erişimi ve mümkünse PHP yapılandırmasını ve kullanılabilir önbelleği kontrol edebilmem için barındırma yönetim paneline erişim.
Bir performans denetimi ne kadar sürer?
Teşhis genellikle yarım günden bir güne kadar sürer. Düzeltmelerin süresi ise türüne göre değişir: bir indeks eklemek birkaç dakika sürerken, kötü optimize edilmiş bir eklentinin yeniden yapılandırılması daha uzun zaman alabilir.
Bu, arama motoru sıralamamı iyileştirir mi?
Yükleme hızı, Google'ın dikkate aldığı kriterlerden biridir (Core Web Vitals), bu yüzden dolaylı olarak evet; ancak tek başına daha iyi bir sıralama garantisi vermez.
PrestaShop sitem neden bir günden ötekine yavaşladı?
Ani bir yavaşlamanın neredeyse her zaman tarihli bir nedeni vardır: bir müdahaleden sonra açık kalan hata ayıklama modu, kurulan ya da güncellenen bir modül, barındırma firmasının değiştirdiği PHP sürümü, bir eşiği aşan istatistik tablosu ya da bot akını. Sunucuya dokunmadan önce yavaşlamanın tarihini son müdahalelerle ve erişim günlükleriyle karşılaştırın.