به طور کلی هنگامی که درباره سرعت سایت وردپرسی صحبت می کنیم، اکثر مواقع بر عملکرد front-end و بهینه سازی سرعت بارگذاری صفحه متمرکز می شویم. با این حال، گاهی بهتر است از سمت سرور که وبسایت شما در اصل از آنجا بارگذاری می شود، به این موضوع نگاه کنیم. امروز به تاثیر TTFB بر وطراحی سایت (طراحی سایت فروشگاهی، طراحی سایت شرکتی) شما و بحث درباره راه های راحتی به منظور کاهش آن می پردازیم. TTFB معمولا به عنوان یک از عوامل بهینه سازی نادیده گرفته می شود، اما در هنگام آزمایش سرعت سایت باید در نظر گرفته شود.
سرفصلهای پست
TTFB مخفف time to first byte است. به بیان ساده، اندازه گیری مدت زمانی است که مرورگر باید قبل از دریافت اولین بایت داده از سرور منتظر بماند. هرچه این مدت زمان دریافت داده بیشتر باشد، مدت زمان بیشتری طول میکشد تا صفحه برای بازدیدکننده نمایش داده شود. یکی از تصورات رایج غلط این است که TTFB پس از جستجوی DNS محاسبه میشود، با این حال، محاسبه TTFB در شبکه همیشه شامل network latency میباشد. 3 مرحله Process و Delay و Latency ممکن است در هرجایی در این بین رخ دهند و به مجموع کلی TTFB شما اضافه کنند.
هنگامی که کسی از وبسایت شما بازدید میکند، اولین چیزی که اتفاق میافتد، ارسال درخواست HTTP از کاربر به سرور است. در این مرحله، عوامل گوناگونی وجود دارند که در delay تاثیر دارند. زمان کند DNS lookup میتواند باعث افزایش زمان درخواست شود. اگر سرور از نظر جغرافیایی دور باشد، فاصله ای که داده باید بپیماید در latency موثر است. همچنین، اگر قوانین firewall پیچیده ای دارید، ممکن است زمان routing را افزایش دهد. و علاوه بر این موارد، سرعت اینترنت کاربر را فراموش نکنید.
پس از اینکه درخواست ارسال شد، سرور باید آن را پردازش کند و پاسخی تولید کند. این امر میتواند تعداد گوناگونی delay مانند فراخوانی آهسته پایگاه داده، اسکریپت های واسطه بیش از حد، ذخیره(cache) نشدن اولین پاسخ، کد یا قالبی که به طور مناسبی بهینه سازی نشده و منابع ناکافی سرور مانند disk I/O یا حافظه ایجاد کند.
بعد از اینکه درخواست توسط سرور پردازش شد، باید آن را به کاربر ارسال کند. این مرحله هم از سرعت شبکه سرور و هم از سرعت اینترنت کاربر تاثیر میگیرد. اگر سرعت اینترنت کاربر پایین باشد، بر TTFB تاثیر میگذارد.
بسیار مهم است که بدانید TTFB و سرعت وبسایت یکسان نیستند. بحثهای زیادی در حوزه وب وجود دارند که آیا TTFB مهم است یا نه. بعضی میگویند TTFB بی معنی است و بعضی دیگر میگویند اهمیت دارد. هر دو گروه دلایلی برای گفته خود میآورند و سوالاتی درباره نحوه محاسبه آن میپرسند.
حتی وبسایت Moz مطالعه گسترده ای درباره ارتباط بین رتبه بندی جستجو و TTFB انجام داد. با این حال، دانستن علت این موضوع یا اینکه ساخت سایت های با TTFB پایین تر سریعتر هستند، می تواند به نوبه خود توسط عوامل رتبه بندی صفحات گوگل تحت تاثیر قرار گیرد.
اما به جای صرف زمان روی اهمیت داشتن یا نداشتن آن در سئو، میتوانید برای بهبود این معیار مهم تمرکز کنید. هرکاری که انجام میدهید میتواند بر سرعت کلی سایت شما از هر نوع CMS که باشید (وردپرس، جوملا و …) شما تاثیر داشته باشد و این موضوع بر TTFB شما هم شاید تاثیر بگذارد. در آزمایش های انجام شده با TTFB زیاد، سرعت بارگذاری بسیار آهسته بود.
در کل، اگر سرعت بارگذاری زیر 100 میلی ثانیه باشد TTFB مناسب است. Google PageSpeed Insights برای هر پاسخی زمان کمتر از 200 میلی ثانیه را توصیه میکند. اگر در بازه 300 تا 500 میلی ثانیه هستید، تقریبا استاندارد است. و اگر بیش از 600 میلی ثانیه باشید، ممکن است در پیکر بندی سرور مشکلی وجود داشته باشد یا زمان آن فرا رسیده که به نرم افزار وب بهتری ارتقا پیدا کنید. یا اینکه میتوانید دستور العمل های گفته شده در ادامه را دنبال کنید تا TTFB را کاهش دهید و به یاد داشته باشید که SSL/TLS نیز میتواند یکی از عوامل کندی هم باشد.
روشهای گوناگون زیادی وجود دارند که میتوانید از طریق آنها TTFB را امتحان کنید. در ادامه با تعدادی از آن ها آشنا خواهیم شد. اما به یاد داشته باشید، هر ابزاری نتایجی کمی متفاوت از دیگری میدهد، پس بسیار مهم است که تنها از یکی از آنها استفاده کنید و از آن به عنوان اساس سایر فعالیتها بهره ببرید.
می توان TTFB را در گوگل کروم با استفاده از DevTools اندازه گیری کرد. به یاد داشته باشید، اگر در اندازه گیری TTFB از کامپیوتر خود استفاده میکنید، TTFB تحت تاثیر latency شبکه و ارتباط اینترنت قرار میگیرد. پس بهتر است از ابزارهای واسطه استفاده کنید تا آزمایش را از data center انجام دهد.
می توانید پنجره network را انتخاب کنید و عملکرد سئو سایت خود را ببینید.
همچنین می توانید TTFB را با WebPageTest بسنجید. Great time زمان مورد نیاز برای DNS، socket و SSLnegotiations + 100 میلی ثانیه می باشد. به ازای هر 100 میلی ثانیه یک حرف A کسر می شود. همانطور که در آزمایش زیر می توانید ببینید، TTFB این سایت در 0.256 ثانیه یا 256 میلی ثانیه محاسبه شده است.
کروم و WebPageTest به عنوان TTFB به Pingdom رجوع می کنند. با این حال، اگر شما از Pingdom استفاده می کنید، در واقع به عنوان زمان Wait به TTFB مراجعه می کند. می توانید از راهنما استفاده از Pingdom برای آشنایی بیشتر استفاده کنید.
یکی از ابزارهای معروف برای مدیران ایرانی که بیشترین استفاده را از آن میکنند، سایت Gtmetrix هم میتواند ابزاری بسیار مناسب جهت محاسبه TTFB سایت شما باشد، شما میتوانید با استفاده از لوکیشن های مختلف سایت خود را بررسی نمایید.
تفاوت اصلی ابزار performance.sucuri با سایر ابزارها این است به یک تست میتواند از ۱۰ ها مکان مختلف در سراسر دنیا سایت شما را تست نمایید و زمان TTFB هر مکان با میانگین کلی را ارائه دهد، یکی از ضعفهای این ابزار کش کردن و یا بهتر است بگیم توان مدیریت برای تست دوباره وجود نداره و اگر همان سایت رو تست دوباره بگیریم نتایج قبلی رو نشون میده.
همچنین ابزار های مختلف دیگری نیز برای اندازه گیری TTFB وجود دارند، مانند tools.keycdn.com و ByteCheck. حتی Google Analytics نیز بخشی برای مشاهده میانگین response time دارد.
حال به ارائه راهکارهایی برای کاهش TTFB در وبسایت میپردازیم.
اولین راه برای بهبود زمان TTFB استفاده از یک هاست مناسب با تنظیمات بهینه است، چرا که جدا تاثیر آن بر روی افزایش سرعت سایت روی تجربه کاربری نیز بسیار تاثیری مستقیم و حیاطی دارد. اصولا کمتر هاست اشتراکی دارای TTFB مناسب است و اکثرا به شکل بهینه کانفیگ نشدهاند، البته مخاطب حرفهای بنده هاستینگهای ایرانی است چرا که ما از اکثر هاستینگها سرور تهیه کردهایم و اکثرا در هاست های اشتراکی TTFB بالایی را داشتند، مگر سرور مجازی یا اختصاصی تهیه کرده باشید.
راه دیگری برای کاهش TTFB استفاده از Content Delivery Network یا همان CDN است. CDN را میتوان به شبکه توزیع محتوا ترجمه کرد و ما بارها درباره اهمیت و تاثیرات مثبت و منفی CDN ها صحبت کردهایم. اگر وبسایتی دارید که میزبان کاربرانی از نقاط مختلف کشور یا جهان است، استفاده از CDN می تواند به شدت TTFB شما را کاهش دهد، البته در برخی مکانها این موضوع صدق نمیکند مثلا ایران
راه سوم و شاید راحت ترین راه کاهش TTFB استفاده از caching در وبسایت وردپرسی است. افراد زیادی فکر می کنند که تنها استفاده از caching می تواند باعث کاهش زمان بارگذاری صفحه شود، اما در حقیقت در کاهش TTFB نیز موثر است و همچنین زمان پردازش سرور را نیز کاهش می دهد. برای اطلاعات بیشتر به مقاله نحوه کش کردن سایتمراجعه نمایید.
DNS نیز در TTFB موثر است. محاسبه دقیق مقدار این تاثیر بسیار سخت است، اما همچنان میتوانید زمان کلی DNSlookup را مشاهده کنید. Provider های سریع و آهسته ای وجود دارند. با استفاده از ابزار SolveDNS speed testمیتوانید از مکانهای مختلف آزمایش لازم را انجام دهید. برای کاهش زمان لود DNS میتوانید پست ۸ راه کاهش DNS Lookups و رفع خطای Reduce DNS lookups در GTmetrix مطالعه نمایید.
در پایان
موارد متعددی وجود دارند که می توانید بهینه سازی یا تعمیر کنید تا TTFB را کاهش دهید، مانند database caching، Disk IO، Swap usage، RAM، تنظیمات PHP، تنظیمات MySQL، تنظیمات شبکه، TLS overhead و غیره. اما پیاده سازی و اجرای موارد گفته شده در بالا آسانتر هستند و عملکردتان را سرعت می بخشند. پس دفعه بعدی که شخصی از شما پرسید که چطور TTFB را کاهش دهیم، به یاد داشته باشید که هاست سریع وردپرس، CDN، Caching و DNS مواردی هستند که در این زمینه از اهمیت زیادی برخوردارند. رفع و بهبود این موارد راه حل مشکل TTFB است.