Scanverra

كيفية إصلاح بطء زمن الوصول إلى أول بايت (TTFB)

يقيس TTFB الزمن بين إرسال المتصفح للطلب واستلام أول بايت من الاستجابة - قبل أن يبدأ تحميل أي HTML أصلًا، ناهيك عن عرضه. إنه الأرضية التي تقوم عليها كل مقاييس الأداء الأخرى: فـ TTFB البطيء يؤخّر LCP بنفس المقدار تمامًا، بغض النظر عن مدى تحسين بقية الصفحة.

لماذا يكون خادمك بطيء الاستجابة

TTFB مشكلة خادم وشبكة بالكامل تقريبًا، لا مشكلة واجهة أمامية. الأسباب الشائعة:

  • البدء البارد (Cold starts). دوال بلا خادم (serverless) يجب أن تُشغِّل بيئة تنفيذ قبل معالجة أول طلب بعد فترة خمول.
  • عرض ديناميكي غير مخزَّن مؤقتًا. كل طلب يعيد تشغيل استعلامات قاعدة بيانات وعرضًا من جانب الخادم كان يمكن تخزينهما مؤقتًا أو حسابهما مرة واحدة.
  • استعلامات قاعدة بيانات بطيئة. استعلام واحد غير مفهرس أو نمط N+1 يمكن أن يضيف مئات المللي ثانية قبل أن يبدأ الخادم حتى في كتابة استجابة.
  • مسافة فيزيائية طويلة إلى الخادم الأصلي. زائر في سنغافورة يتصل بخادم في فيرجينيا يدفع ثمن تلك الرحلة ذهابًا وإيابًا في كل طلب، بغض النظر عن سرعة استجابة الخادم نفسه.
  • سلاسل إعادة توجيه. كل قفزة (http ← https ← www ← الرابط النهائي) رحلة كاملة ذهابًا وإيابًا قبل أن تبدأ الاستجابة الحقيقية أصلًا.

كيفية تحديد ما هو بطيء فعلًا

تلتقط فحوص الأداء في Scanverra قيمة TTFB كجزء من نفس عملية Lighthouse المستخدمة لقياس LCP وCLS، مقابل عنوان URL الحي الخاص بك - فتحصل على رقم زمن استجابة الخادم الفعلي، لا بديلًا تقريبيًا عنه. هذا مهم لأن LCP بطيء مع TTFB سريع يوجّهك نحو إصلاحات الصور/العرض، بينما LCP بطيء مع TTFB بطيء يعني أن إصلاح الخادم يجب أن يأتي أولًا.

لتحديد أين يذهب الوقت فعليًا، تحقق من تفصيل التوقيت من جانب الخادم لدى مزوّد الاستضافة أو مراقبة الأداء (APM) لديك (تُبلغ معظم المنصات عن الوقت المستغرق في تهيئة الدالة واستدعاءات قاعدة البيانات وتسلسل الاستجابة كل على حدة) بدلًا من التخمين من الخارج.

كيفية الإصلاح

1. خزّن مؤقتًا ما لا يحتاج إعادة توليد في كل طلب

أي شيء يبقى نفسه لكل زائر - أو لكل زائر في شريحة معينة - مرشح للتخزين المؤقت. اضبط عمر تخزين مؤقت صريحًا عند حافة CDN بدلًا من ترك كل طلب يصل إلى الخادم الأصلي:

خزّن مؤقتًا عند الحافة، لكن أعد التحقق في الخلفية حتى لا يصبح المحتوى قديمًاtypescript
1Cache-Control: public, max-age=60, stale-while-revalidate=300

2. ضع خادمك الأصلي (أو طبقة تخزين مؤقت على الأقل) قريبًا من مستخدميك

انشر في منطقة قريبة من حركة المرور الفعلية لديك، أو ضع تخزينًا مؤقتًا/CDN عند الحافة أمام خادم أصلي بعيد بحيث لا تقطع معظم الطلبات الرحلة الطويلة أصلًا.

3. أصلح الاستعلام البطيء، لا العرَض

إذا أظهرت أداة مراقبة الأداء لديك أن وقت قاعدة البيانات يهيمن على TTFB، فذلك عادة فهرس مفقود، أو نمط استعلام N+1، أو استعلام يقوم بعمل أكثر مما تحتاجه الصفحة فعلًا - قيّم الاستعلام المحدد قبل اللجوء إلى التخزين المؤقت كحل مؤقت.

4. قلّل تكرار البدء البارد في الدوال بلا خادم

أبقِ الدوال دافئة للمسارات الحساسة للزمن، وقلّل الكود والتبعيات التي يجب تهيئتها قبل تشغيل المعالج، وفكّر في خادم دائم لأنماط حركة المرور التي يحدث فيها البدء البارد باستمرار.

5. اطوِ سلاسل إعادة التوجيه

كل قفزة بين الرابط الذي يطلبه المستخدم والرابط الذي يقدّم المحتوى فعليًا هي رحلة كاملة ذهابًا وإيابًا تُضاف إلى TTFB قبل أن يبدأ العرض - وجّه الروابط والروابط الأساسية (canonical) مباشرة إلى الوجهة النهائية.

كيف تكتشف Scanverra مشاكل TTFB

يُلتقط TTFB مباشرة من نفس عملية Lighthouse الحقيقية التي تشغّلها Scanverra لكل فحص أداء - على كل من ملف سطح مكتب ونافذة عرض للجوال بعرض 375 بكسل - فيُقاس مقابل استجابة خادمك الحية الفعلية، لا محاكاة.

FAQ

Frequently asked questions

ما هو هدف TTFB الجيد؟

أقل من 200 مللي ثانية يُعتبر جيدًا لمعظم المواقع، و200-500 مللي ثانية يحتاج تحسينًا، وأي شيء فوق 500 مللي ثانية مشكلة حقيقية. على عكس LCP أو CLS، فهو ليس مقياس Core Web Vital رسميًا، لكنه أرضية صلبة تحت الثلاثة جميعًا - لا شيء بعده يمكن أن يبدأ حتى يصل أول بايت.

هل تصلح شبكة CDN مشكلة TTFB حتى للصفحات الديناميكية؟

جزئيًا فقط. تسرّع CDN الأصول الثابتة ويمكنها تخزين استجابات HTML كاملة مؤقتًا للصفحات التي لا تتغير لكل طلب، لكن الصفحة الديناميكية فعلًا (محتوى مخصص، بيانات حية) لا تزال تحتاج للوصول إلى الخادم الأصلي - وهنا يكون الإصلاح من جانب الخادم (سرعة الاستعلام، البدء البارد للدوال، موقع المنطقة)، لا التخزين المؤقت.

لماذا يكون TTFB بطيئًا في أول طلب لي بعد النشر لكن سريعًا بعد ذلك؟

هذا يكاد يكون دائمًا بدءًا باردًا على بنية تحتية بلا خادم - يجب أن تُهيَّأ الدالة قبل أن تتمكن من معالجة الطلب. الطلبات اللاحقة تصل إلى نسخة دافئة. إذا كان نمط حركة المرور لديك متقطعًا، فقد يكون للبدء البارد أهمية أكبر مما يوحي به متوسط TTFB لديك.

هل تقيس Scanverra TTFB بشكل منفصل عن LCP؟

نعم. إنه مقياس مستقل يُلتقط في نفس عملية Lighthouse المستخدمة لـ LCP وCLS، بحيث يمكنك معرفة ما إذا كان LCP البطيء في الواقع مشكلة خادم بطيء متخفية أو مشكلة عرض منفصلة فعلًا.

Free - no sign-up required

اكتشف مدى بطء خادمك فعليًا

شغّل تدقيق أداء مجاني واحصل على TTFB وLCP وCLS الحقيقية من فحص حي واحد.

Run free audit