آشنایی با TTFB و تاثیر آن در سرعت لود سایت

زمانی که با کندی سرعت در وبسایت وردپرس مواجه میشوید تمرکز خود را بر روی کارایی و بهبود آن برای بارگذاری بهتر می گذارید. اما خوب است به خدمات سرور نیز دقت کنید. در این مقاله ی امروز میخواهیم با کاهش TTFB در سرعت بار گذاری صفحات را افزایش دهیم.

TTFB چیست

TTFB مخفف time to first byte است. به بیان ساده، اندازه گیری مدت زمانی است که مرورگر باید قبل از دریافت اولین بایت داده از سرور منتظر بماند. هرچه این مدت زمان دریافت داده بیشتر باشد، مدت زمان بیشتری طول می‌کشد تا صفحه برای بازدیدکننده نمایش داده شود. یکی از تصورات رایج غلط این است که TTFB پس از جستجوی DNS محاسبه می‌شود، با این حال، محاسبه TTFB در شبکه همیشه شامل network latency می‌باشد. 3 مرحله  Process و Delay و Latency ممکن است در هرجایی در این بین رخ دهند و به مجموع کلی TTFB شما اضافه کنند.


 

  1. درخواست به سرور

    هنگامی که کسی از وبسایت شما بازدید می‌کند، اولین چیزی که اتفاق می‌افتد، ارسال درخواست HTTP از کاربر به سرور است. در این مرحله، عوامل گوناگونی وجود دارند که در delay تاثیر دارند. زمان کند DNS lookup می‌تواند باعث افزایش زمان درخواست شود. اگر سرور از نظر جغرافیایی دور باشد، فاصله ای که داده باید بپیماید در latency موثر است. همچنین، اگر قوانین firewall پیچیده ای دارید، ممکن است زمان routing را افزایش دهد. و علاوه بر این موارد، سرعت اینترنت کاربر را فراموش نکنید.

  1. پردازش سرور

    پس از اینکه درخواست ارسال شد، سرور باید آن را پردازش کند و پاسخی تولید کند. این امر می‌تواند تعداد گوناگونی delay مانند فراخوانی آهسته پایگاه داده، اسکریپت های واسطه بیش از حد، ذخیره(cache) نشدن اولین پاسخ، کد یا قالبی که به طور مناسبی بهینه سازی نشده و منابع ناکافی سرور مانند disk I/O یا حافظه ایجاد کند.

  1. پاسخ به کاربر

    بعد از اینکه درخواست توسط سرور پردازش شد، باید آن را به کاربر ارسال کند. این مرحله هم از سرعت شبکه سرور و هم از سرعت اینترنت کاربر تاثیر می‌گیرد. اگر سرعت اینترنت کاربر پایین باشد، بر TTFB تاثیر می‌گذارد.

 آیا TTFB مهم است؟

بسیار مهم است که بدانید TTFB و سرعت وبسایت یکسان نیستند. بحث‌های زیادی در حوزه وب وجود دارند که آیا TTFB مهم است یا نه. بعضی می‌گویند TTFB بی معنی است و بعضی دیگر می‌گویند اهمیت دارد. هر دو گروه دلایلی برای گفته خود می‌آورند و سوالاتی درباره نحوه محاسبه آن می‌پرسند.

حتی وبسایت Moz  مطالعه گسترده ای درباره ارتباط بین رتبه بندی جستجو و TTFB انجام داد. با این حال، دانستن علت این موضوع یا اینکه سایت های با TTFB پایین تر سریعتر هستند، می تواند به نوبه خود توسط عوامل رتبه بندی صفحات گوگل تحت تاثیر قرار گیرد.

اما به جای صرف زمان روی اهمیت داشتن یا نداشتن آن در سئو، می‌توانید برای بهبود این معیار مهم تمرکز کنید. هرکاری که انجام می‌دهید می‌تواند بر سرعت کلی سایت شما از هر نوع CMS که باشید (وردپرس، جوملا و …) شما تاثیر داشته باشد و این موضوع بر TTFB شما هم شاید تاثیر بگذارد. در آزمایش های انجام شده با TTFB زیاد، سرعت  بارگذاری بسیار آهسته بود.

در کل، اگر سرعت بارگذاری زیر 100 میلی ثانیه باشد TTFB مناسب است. Google PageSpeed Insights برای هر پاسخی زمان کمتر از 200 میلی ثانیه را توصیه می‌کند. اگر در بازه 300 تا 500 میلی ثانیه هستید، تقریبا استاندارد است. و اگر بیش از 600 میلی ثانیه باشید، ممکن است در پیکر بندی سرور مشکلی وجود داشته باشد یا زمان آن فرا رسیده که به نرم افزار وب بهتری ارتقا پیدا کنید. یا اینکه می‌توانید دستور العمل های گفته شده در ادامه را دنبال کنید تا TTFB را کاهش دهید و به یاد داشته باشید که SSL/TLS نیز می‌تواند یکی از عوامل کندی هم باشد.

چگونه TTFB را بسنجیم

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

اندازه گیری TTFB با DevTools گوگل کروم

می توان TTFB را در گوگل کروم با استفاده از DevTools اندازه گیری کرد. به یاد داشته باشید، اگر در اندازه گیری TTFB از کامپیوتر خود استفاده می‌کنید، TTFB تحت تاثیر latency شبکه و ارتباط اینترنت قرار می‌گیرد. پس بهتر است از ابزارهای واسطه استفاده کنید تا آزمایش را از data center انجام دهد.

  • در قسمت منوی کروم More Tools را انتخاب کنید و پس از آن Developer Tools را از فهرست کروم انتخاب کنید.
  • روی عنصری از صفحه کلیک راست کنید و inspect را انتخاب کنید.
  • از کلید های میانبر Ctrl+Shift+l(ویندوز) یا Cmd+Opt+l(مک) استفاده کنید

می توانید پنجره network را انتخاب کنید و عملکرد سایت خود را ببینید.

 

اندازه گیری TTFB با WebPageTest

همچنین می توانید TTFB را با WebPageTest بسنجید. Great time زمان مورد نیاز برای DNS، socket و SSL negotiations + 100 میلی ثانیه می باشد. به ازای هر 100 میلی ثانیه یک حرف A کسر می شود. همانطور که در آزمایش زیر می توانید ببینید، TTFB این سایت در 0.256 ثانیه یا 256 میلی ثانیه محاسبه شده است.

 

اندازه گیری TTFB با Pingdom

کروم و WebPageTest به عنوان TTFB به Pingdom رجوع می کنند. با این حال، اگر شما از Pingdom استفاده می کنید، در واقع به عنوان زمان Wait به TTFB مراجعه می کند. می توانید از راهنما استفاده از Pingdom برای آشنایی بیشتر استفاده کنید.

 

اندازه گیری TTFB با GTmetrix

یکی از ابزارهای معروف برای مدیران ایرانی که بیشترین استفاده را از آن می‌کنند، سایت Gtmetrix هم می‌تواند ابزاری بسیار مناسب جهت محاسبه TTFB سایت شما باشد، شما می‌توانید با استفاده از لوکیشن های مختلف سایت خود را بررسی نمایید.

 

اندازه گیری TTFB با performance.sucuri

تفاوت اصلی ابزار performance.sucuri با سایر ابزارها این است به یک تست می‌تواند از ۱۰ ها مکان مختلف در سراسر دنیا سایت شما را تست نمایید و زمان TTFB هر مکان با میانگین کلی را ارائه دهد، یکی از ضعف‌های این ابزار کش کردن و یا بهتر است بگیم توان مدیریت برای تست دوباره وجود نداره و اگر همان سایت رو تست دوباره بگیریم نتایج قبلی رو نشون میده.

همچنین ابزار های مختلف دیگری نیز برای اندازه گیری TTFB وجود دارند، مانند tools.keycdn.com و ByteCheck. حتی Google Analytics نیز بخشی برای مشاهده میانگین response time دارد.

4 روش برای کاهش TTFB در سایت

حال به ارائه راهکارهایی برای کاهش TTFB در وبسایت می‌پردازیم.

  1. استفاده از یک هاست پرسرعت با کانفیگ بهینه

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

  2. استفاده از CDN مناسب

    راه دیگری برای کاهش TTFB استفاده از Content Delivery Network یا همان CDN است. CDN را می‌توان به شبکه توزیع محتوا ترجمه کرد و ما بارها درباره اهمیت و تاثیرات مثبت و منفی CDN ها صحبت کرده‌ایم. اگر وبسایتی دارید که میزبان کاربرانی از نقاط مختلف کشور یا جهان است، استفاده ازCDN می تواند به شدت TTFB شما را کاهش دهد، البته در برخی مکان‌ها این موضوع صدق نمی‌کند مثلا ایران، توصیه میکنیم مقالات دلایل استفاده از CDN و همچنین رفع خطای CDN در GTmetrix را بخوانید.

  3. استفاده از کش مناسب در سایت

    راه سوم و شاید راحت ترین راه کاهش TTFB استفاده از caching در وبسایت وردپرسی است. افراد زیادی فکر می کنند که تنها استفاده از caching می تواند باعث کاهش زمان بارگذاری صفحه شود، اما در حقیقت در کاهش TTFB نیز موثر است و همچنین زمان پردازش سرور را نیز کاهش می دهد. برای اطلاعات بیشتر به مقاله نحوه کش کردن سایت مراجعه نمایید.

  4. استفاده از یک DNS Provider معتبر (رایگان نباشد)

    DNS نیز در TTFB موثر است. محاسبه دقیق مقدار این تاثیر بسیار سخت است، اما همچنان می‌توانید زمان کلی DNS lookup را مشاهده کنید. Provider های سریع و آهسته ای وجود دارند. با استفاده از ابزار SolveDNS speed test می‌توانید از مکان‌های مختلف آزمایش لازم را انجام دهید. برای کاهش زمان لود DNS می‌توانید پست ۸ راه کاهش DNS Lookups و رفع خطای Reduce DNS lookups در GTmetrix مطالعه نمایید.