"Hızlandıralım" girişimlerinin neredeyse hepsi bir tahminle ve bir eklentiyle başlar. Onun yerine tek bir sayıyla başlayın; çünkü o, sorunu ikiye böler.

İlk bayta kadar geçen süre

curl -o /dev/null -s -w 'dns %{time_namelookup}s  connect %{time_connect}s  ttfb %{time_starttransfer}s  total %{time_total}s\n' https://yourdomain.com/
  • 200 ms'nin altında - sunucu iyidir. Hissettiğiniz her şey tarayıcıdadır: görseller, yazı tipleri, betikler.
  • 800 ms'nin üstünde - sayfa yavaş kuruluyordur. Tarayıcıdaki hiçbir şey bunu düzeltmez.
  • connect, dns'ten çok büyükse - uygulama değil, mesafe ya da yavaş bir TLS el sıkışması.

Sunucu yavaşsa

Sayfa istek başına fazla iş yapıyordur. Yanıt olma sıklığına göre:

  1. İndeksi olmayan bir sorgu — Yavaş sorgu kaydı onun adını verir. Tek bir indeks genelde saniyeler kazandırır.
  2. Bir döngü içindeki aynı sorgu — Yirmi ürün, kategorileri için yirmi sorgu. Tek bir birleştirme hepsinin yerini alır.
  3. Zaman aşımı olmayan bir dış çağrı — Ölü bir arayüz, yuvası açık kaldığı sürece sayfanızı tutar.
  4. İşlem kodu önbelleğinin olmaması — opcache olmadan PHP, her istekte her dosyayı yeniden derler.

Tarayıcı yavaşsa

  • Görseller. Baytların çoğu genelde onlardır. Fotoğraf makinesinin ürettiği boyutu değil, sayfanın kullandığı boyutu sunun.
  • Yazı tipleri. Her aile ve her kalınlık bir dosyadır; boyamayı engelleyen bir yazı tipi de bütün sayfayı tutar.
  • Üçüncü taraf betikleri. Çoğu sayfanın en yavaş bölümü, bir başkasının sunucusundan gelen koddur.
Yavaş bir sayfadaki önbellek eklentisi sorunu sizden gizler, her önbellek döneminin ilk ziyaretçisinden değil. Önce sayfayı düzeltin, sonra önbelleğe alın.
Aynı sayfayı, günün aynı saatinde, her değişiklikten önce ve sonra üç kez ölçün. Bir değişiklik, bir ölçüm - yoksa hangisinin işe yaradığını bilemezsiniz.