زمنُ أوّل بايت هو المدّة من السؤال حتى وصول أوّل بايتٍ من الجواب. وفيه الـ DNS والاتّصالُ والمصافحةُ وتفكيرُ الخادم — وcurl يطبع كلّ جزءٍ على حدة، فترى أيَّها هو.

curl -o /dev/null -s -w 'dns  %{time_namelookup}\nconnect %{time_connect}\ntls  %{time_appconnect}\nttfb %{time_starttransfer}\ntotal %{time_total}\n' https://yourdomain.com/

قراءته

  • dns كبير — محلّلٌ بطيء، أو مدّةُ تخزينٍ منخفضةٌ جدًّا تفرض بحثًا في كلّ مرّة.
  • connect كبير — المسافة. وخادمٌ في قارّةٍ أخرى لا تُصلحه شفرة.
  • tls ناقصَ connect كبير — المصافحة. فسلسلةُ شهاداتٍ ناقصة تجعل المتصفّح يجلب الجزءَ الغائب.
  • ttfb ناقصَ tls كبير — الخادمُ يبني الصفحة. وهذا هو ما تستطيع إصلاحه.

ما هو جيّد

  • دون 200 جزءٍ من الألف — الخادمُ ليس مشكلتك. انظر إلى المتصفّح.
  • من 200 إلى 500 — معتادٌ لصفحةٍ ديناميّةٍ غير مخزَّنة.
  • فوق 800 — شيءٌ بعينه بطيء، والعثورُ عليه أجدى من التخزين فوقه.
وقِس العنوان نفسه عدّة مرّات. فالطلبُ الأوّل بعد نشرةٍ بطيءٌ لأسبابٍ لن تمسّ زائرًا أبدًا — مخازنُ باردة وopcache فارغ — وقياسٌ واحد لذلك لا يخبرك بشيء.

قِس من حيث يكون زوّارك

فزمنُ أوّل بايتٍ من الخادم نفسه يستثني الشبكة كلَّها وهو ممتازٌ دائمًا. وهو أيضًا ليس ما يعيشه أحد.

وإن كان زمنُ أوّل بايتٍ جيّدًا والصفحةُ ما زالت تُحسّ بطيئة فكُفَّ عن تحسين الخادم. فالوقتُ في المتصفّح ولا قدرَ من التخزين يغيّره.