زمان اولین بایت چیست و چگونه آن را بهبود بخشیم

زمان اولین بایت چیست و چگونه آن را بهبود بخشیم

شاید عبارت زمان تا اولین بایت را شنیده باشید، اما به نظر می رسد این مفهوم از برخی افراد فراری است. چه به این دلیل که به‌طور باورنکردنی فناوری محور به نظر می‌رسد یا به این دلیل که مفهومی انتزاعی به نظر می‌رسد، نه برای استفاده روزمره. هیچ چیز نمی تواند دور از حقیقت باشد.

Time to First byte در واقع یک مفهوم یا ایده ای نیست که فقط افراد متخصص باید آن را درک کنند. همه باید بتوانند معنای آن را درک کنند و آن را در عمل به کار ببرند.

در این مقاله قصد دارم در چند کلمه برای شما توضیح دهم: زمان برای اولین بایت چیست، چگونه بر سایت شما تأثیر می گذارد و چرا باید به این موضوع توجه زیادی داشته باشید اگر شما می خواهید بهترین تجربه ممکن را در هنگام مرور سایت خود به خوانندگان خود بدهید.

زمان برای اولین بایت چیست؟

زمان تا اولین بایت (TTFB) اندازه گیری است که به عنوان نشانه ای از پاسخگویی یک وب سرور یا سایر منابع شبکه استفاده می شود.

TTFB مدت زمان درخواست HTTP توسط کاربر یا مشتری را تا اولین بایت صفحه دریافت شده توسط مرورگر مشتری اندازه گیری می کند. این زمان از زمان اتصال سوکت، زمان ارسال درخواست HTTP و زمان صرف شده برای دریافت اولین بایت صفحه تشکیل شده است. اگرچه گاهی اوقات به عنوان یک محاسبه پس از DNS اشتباه گرفته می شود، اما محاسبه اصلی TTFB در شبکه همیشه شامل تأخیر شبکه در اندازه گیری زمان لازم برای شروع بارگیری یک منبع می شود.

این توضیح «تکنیکی» است که مستقیماً از ویکی‌پدیا گرفته شده است. حالا بیایید آن را به یک ساده تر ترجمه کنیم که به همه خدمات می دهد.

زمان تا اولین بایت، زمانی است که فشار دادن آن دکمه برای بارگیری وب‌سایت تا زمانی که شروع به رندر کردن می‌کند، طول می‌کشد. اگر بخواهید در مورد این موضوع به صورت بازی صحبت کنید، Time to first byte مشابه «تأخیر» یا «تأخیر» شما در حین بازی خواهد بود. تأخیر یک نمایش مستقیم از میزان پاسخگویی درک شده سایت شما است.

چه عواملی بر زمان اولین بایت تأثیر می گذارد؟

زمان تا اولین بایت را می‌توان با عوامل متعددی نشان داد، اما از آنجایی که این یک مقاله وردپرس است، می‌خواهیم همه چیز را به مواردی کاهش دهیم که در هنگام نصب وردپرس تحت تأثیر قرار می‌گیرد.

  • زمان پاسخ DNS
  • پیکربندی و عملکرد سرور (PHP و وب سرور)
  • افزونه ها/موضوعات وردپرس
  • ذخیره سازی HTML فعال/غیرفعال شد

هر یک از این عوامل یک تأخیر اضافی به مدت زمانی که طول می کشد تا سایت شما شروع به رندر کند اضافه می کند. این بدان معنی است که همه چیز جمع می شود. اینطور نیست که برخی آن عوامل بر تأخیر تأثیر بگذارند، همه آن عوامل به تأخیر بیشتر کمک می‌کنند! بنابراین می‌توانید حدس بزنید که برای یک سناریوی ایده‌آل، همه چیز باید سریع باشد تا زمان بسیار خوبی برای اولین بایت به دست آورید و اگر چیزی در آن زنجیره زمان بیشتری برای پردازش نیاز داشته باشد، زمان نهایی شما تا اولین بایت آسیب خواهد دید.

این مهم است زیرا زمان تا اولین بایت بر هر کاری که شما یا خوانندگانتان در سایت خود انجام می دهید تأثیر می گذارد. هر بار که خواننده روی پیوند، تصویر، پست وبلاگ یا صفحه کلیک می کند، زمان تا اولین بایت مورد توجه قرار خواهد گرفت. می بینید که یک Time to First Byte بد به این معنی است که خواننده وضعیتی شبیه به یک گیمر متصل به یک سرور ضعیف خواهد داشت. هر کلیک تاخیر قابل توجهی دارد و این تجربه را تحت تاثیر قرار می دهد.

توجه: از این نقطه به بعد، من از مخفف TTFB برای نشان دادن Time to First Byte استفاده می‌کنم تا کمی سرعت کار را افزایش دهم.

1. زمان پاسخگویی DNS

وضوح DNS اولین عامل در معادله است. همیشه مطمئن شوید که از سرورهای DNS خوب استفاده می کنید و آنها دارای گره هایی هستند که در سراسر کلمه پخش شده اند تا بهترین وضوح ممکن را به دست آورند. یک راه خوب برای کاهش TTFB در این مرحله استفاده از یک سرویس جهانی خوب مانند CloudFlare است. این نوع سرویس کش کردن DNS جهانی را اجرا می‌کند. این روش برای کاهش TTFB با ذخیره کردن وضوح‌های بیشتر در حافظه پنهان بسیار خوب است.

2. پیکربندی سرور

مرحله دوم در تأخیر TTFB سرور واقعی است. اینجا جایی است که هاست شما به وجود می آید. نوع پیکربندی وب سروری که از آن استفاده می‌کند و تکنیک‌های کش، تا حد زیادی TTFB را کاهش می‌دهد. به عنوان مثال، اگر سرور شما مفسر قدیمی PHP 5.4 را پیاده سازی کند، TTFB بسیار بالایی دریافت خواهید کرد، در حالی که استفاده از پیکربندی مدرن PHP 7.1 این زمان را به میزان 2 یا بیشتر کاهش می دهد.

این به این دلیل است که مفسر PHP نقش مهمی در فرآیند بازی می‌کند. هر بار که یک صفحه وب سایت یا پست وبلاگ را درخواست می کنید که غیر کش است، سرور باید فایل های PHP مورد نظر را پردازش کند تا آنها را در قالب HTML به مرورگر شما تبدیل کند. . هرچه فایل‌های PHP پیچیده‌تر باشند، زمان بیشتری طول می‌کشد تا آنها را از قبل پردازش کرده و به مرورگر خود بازگردانید.

می‌توانید ببینید که عملکرد سرور نیز نقش مهمی در کل فرآیند خواهد داشت. هرچه CPU سریعتر باشد و هاست شما منابع بیشتری را به شما اختصاص دهد، سریعتر آن فایل ها را پردازش می کند و بنابراین TTFB شما کوچکتر می شود.

همچنین، اگر میزبانی شما یک کش PHP را پیاده سازی کند، در درخواست دوم بیشتر کاهش می یابد زیرا به جای پردازش مجدد فایل PHP، نسخه کش آن فایل را ارائه می دهد.

اکنون می توانید ببینید که 2 نوع کسب و کار میزبانی وجود دارد، خدمات عمومی (غیر کش) و خدمات میزبانی انحصاری وردپرس که معمولاً یک مکانیسم کش برای PHP را پیاده سازی می کنند و TTFB شما را در این فرآیند کاهش می دهند.

3. پلاگین ها و تم وردپرس

مرحله سوم در معادله TTFB سایت واقعی شماست. این مهمترین عامل است و من به شما نشان خواهم داد که چرا.

معمولاً وردپرس به هاست شما چندین فایل PHP را برای پردازش می دهد و هرچه پیچیده تر باشند، پردازش آنها زمان بیشتری می برد. وردپرس توسط افزونه ها ارائه می شود و آن افزونه ها کد اضافی را به پردازش نهایی PHP اضافه می کنند، بنابراین با در نظر گرفتن این موضوع می توانید به وضوح ببینید که هر چه تعداد افزونه های بیشتری نصب کرده باشید، زمان بیشتری برای پردازش میزبانی شما طول می کشد و بنابراین، TTFB شما افزایش می یابد.

هرچه کمتر بهتر

به عنوان یک قاعده کلی، کمتر پلاگین معمولا بهتر است. البته، یک افزونه با کدگذاری ضعیف می تواند بسیار بدتر از 10 افزونه کدگذاری شده ماهرانه باشد یا امکان نصب دو افزونه ای وجود دارد که در تضاد با هم هستند. اما به طور کلی کاهش تعداد افزونه ها مدیریت به روز رسانی ها را برای شما آسان تر می کند و سرعت سایت شما را افزایش می دهد. در اینجا نمونه‌ای از تعداد معقول افزونه‌ها برای نصب آمده است.

این مثال بعدی ممکن است مشکل ساز باشد (باز هم – تا حدی به آنچه نصب کرده اید بستگی دارد).

و البته، هر چیزی که از سد 30 افزونه گذشته باشد، احتمالاً برای تأخیر شما خوب نیست. می‌توانید مطمئن باشید که یک وب‌سایت با بیش از ۴۰ افزونه، TTFB بسیار بالایی خواهد داشت، حتی اگر در یک سرویس میزبانی تماشایی میزبانی شود، و من به شما نشان می‌دهم که چرا.

4. ذخیره سازی HTML

آخرین عامل مهم ترین است و مربوط به مکانیزم ذخیرهی است که شما تصمیم می گیرید در نصب وردپرس خود پیاده سازی کنید. اگرچه انواع مختلفی از مکانیسم های کش در وردپرس وجود دارد، موثرترین آنها ذخیره سازی HTML

است.

داشتن یک افزونه خوب مانند KeyCDN Cache Enabler فوق العاده خواهد بود تأثیر بر TTFB شما، حتی بیشتر از خود میزبانی. همه آن فایل‌ها را به HTML تبدیل می‌کند، بنابراین پس از فعال شدن حافظه پنهان، خوانندگان شما نیازی به عبور از پیش‌پردازنده PHP در میزبانی شما نخواهند داشت و فقط خود وب سرور مسئول ارائه محتوای شما خواهد بود. . حتی اگر تصمیم به استفاده از میزبانی شامل nginx به جای آپاچی به عنوان وب سرور اصلی به عنوان در این مقاله توضیح داده ام.

زمان برای اولین بایت مطالعات موردی: چرا مهم است

اکنون اجازه دهید به شما نشان دهم در مورد چه چیزی صحبت می کنیم. مطالعات موردی زیر نمونه‌هایی واقعی از پیکربندی‌های وب‌سایت در سرورهای مختلف با یک خلاصه معیار مفید در پایان است.

یک وب سایت آهسته در یک سرور آهسته

داشتن سایت کند می‌تواند برای TTFB دردسرساز باشد و اگر به یک سرویس میزبانی خوب اهمیت نمی‌دهید، باید آماده باشید تا با بدترین نتیجه ممکن روبرو شوید.

بیایید این سایت را با جزئیات تجزیه و تحلیل کنیم. برای این منظور از Pingdom Tools استفاده می کنم زیرا ابزاری عالی برای دیدن TTFB است. ترفند این است که جزئیات را در اولین درخواست انجام شده به سایت باز کنید.

همانطور که می بینید، سایت دارای TTFB کمتر از 4.2 ثانیه است! این به این معنی است که 4 ثانیه کامل می گذرد تا زمانی که نشانه ای مبنی بر اینکه وب سایت واقعاً در دسترس است را دریافت کنید.

اکنون آن زمان را در تمام کلیک‌هایی که می‌خواهید روی سایت انجام دهید ضرب کنید و می‌توانید ببینید که چقدر می‌تواند برای خواننده دردناک باشد. البته TTFB باید به کل زمان رندر سایت اضافه شود. نتیجه برای عملکرد فاجعه‌بار خواهد بود، زیرا گاهی اوقات 7 ثانیه برای ارائه صحیح سایت

طول می‌کشد.

ترکیب چندین عامل منجر به این می شود. یک وب سایت ضعیف بهینه شده بدون مکانیزم کش، یک سرویس میزبانی بسیار کند و یک مفسر PHP کاملاً منسوخ، که هنوز PHP 5.4 را اجرا می کند. حتی زمانی که سایت از cloudflare به عنوان مکانیزم حافظه پنهان خارجی استفاده می کند، اگر سایت شما و میزبانی شما با یکدیگر همکاری نکنند، کاری برای بهبود وضعیت نمی توان انجام داد.

یک وب سایت سریع روی یک سرور متوسط

بیایید ببینیم چه اتفاقی می‌افتد وقتی یک سایت بسیار سریع را روی یک سرور متوسط ​​قرار می‌دهیم که از Apache و PHP 7.1 استفاده می‌کند

با سایتی که کمتر از 10 افزونه بدون حافظه پنهان در آن وجود دارد، نتیجه حداقل 5 برابر بهتر از سایت قبلی است. می بینید که TTFB اکنون روی 521 میلی ثانیه تنظیم شده است. این بدان معناست که سایت از لحظه ای که از سرور می رود تا زمانی که به رایانه شما می رسد، 0.5 ثانیه طول می کشد تا شروع به رندر در مرورگر شما کند.

وقتی حافظه پنهان را در آن وب سایت فعال می کنیم چه اتفاقی می افتد؟ جادو اتفاق می افتد. یک سرور معمولی که روی آپاچی اجرا می‌شود، تنها با ۱۵۲ میلی‌ثانیه TTFB می‌تواند نتایج عالی به دست آورد. می توانید ببینید که مکانیسم کش کردن خوب وردپرس چقدر بر نتایج تأثیر می گذارد.

یک وب سایت بسیار کند روی سرور سریع

حالا برعکس آن را ببینیم. چه اتفاقی می افتد اگر یک سایت بسیار کند را روی یک سرور بسیار سریع قرار دهیم.

یک سرور بهینه‌سازی‌شده که Plesk را با nginx و PHP 7.1.11 اجرا می‌کند، 1.29 ثانیه طول می‌کشد تا یک سایت پر از افزونه (بیش از 27) ارائه شود.

اما هنگامی که ما ذخیره سازی را در وردپرس از طریق فعال کننده زیبای Cache KeyCDN فعال می کنیم، نتیجه شگفت انگیز است. سایت بسیار کند، TTFB آن را فقط به 400 میلی‌ثانیه کاهش داده است.

یک وب سایت سریع در یک سرور سریع

حالا بیایید وضعیت بهینه را ببینیم. یک وب سایت سریع که روی یک سرور سریع اجرا می شود.

همان سروری که TTFB 1.29 ثانیه‌ای را در یک سایت کند ارائه می‌کرد، در یک سایت سریع و بدون حافظه پنهان در کمتر از 500 میلی‌ثانیه پاسخ می‌دهد.

اگر حافظه پنهان را فعال کنیم، نتایج به سادگی شگفت انگیز هستند. یک سرور سریع، همراه با یک وب سایت سریع با فعال کردن حافظه پنهان، کمتر از 150 میلی‌ثانیه TTFB ارائه می‌کند!

نتایج معیار

بیایید همه نتایج را در یک نمودار بزرگ برای دوستداران معیار مشاهده کنیم.

می‌بینید که میزبانی نقش مهمی در کاهش TTFB شما و بهبود تأخیر و عملکرد درک شده از سایت شما دارد، اما کاری که با سایت انجام می‌دهید بیشترین تأثیر را بر عملکرد دارد.

در حال تکمیل

داشتن یک متریک TTFB خوب به شما تضمین می‌کند که سایتی سریع و واکنش‌گرا خواهید داشت، زمان رندر کلی شما را کاهش می‌دهد و به عنوان یک معیار عالی برای تعیین عملکرد عمل می‌کند. معمولا هر چه TTFB بالاتر باشد سرعت سایت شما کندتر خواهد بود. در نظر گرفتن TTFB زمانی که سایت خود را معیار قرار می دهید بسیار مهم است زیرا این زمان بندی می تواند برای تعیین تنگناها در نصب وردپرس شما نیز استفاده شود. می‌توانید با غیرفعال کردن همه افزونه‌ها و جابجایی به یک موضوع اصلی و سپس اندازه‌گیری مجدد TTFB، یک تمرین ساده را انجام دهید. از نتایج شگفت زده خواهید شد.

می‌خواهم این مقاله را با بیان اینکه این به هیچ وجه «یک معیار برای کنترل همه آنها» نیست، به پایان برسانم، زیرا عوامل دیگری از جمله عملکرد پایگاه داده، پهنای باند در دسترس و سرعت شبکه وجود دارد. اما از آنجایی که TTFB معمولاً تحت تأثیر همه آن عوامل نیز قرار می گیرد، نشانه خوبی از تنگناها در جاهای دیگر است.

امیدواریم که فرصتی برای آزمایش TTFB خود داشته باشید. نظرات خود را در زیر بنویسید ما دوست داریم در مورد آزمایش خود بشنویم یا در مورد هر سؤالی که ممکن است داشته باشید کمک کنیم.

خروج از نسخه موبایل