به طور کلی هنگامی که درباره سرعت سایت وردپرسی صحبت می کنیم، اکثر مواقع بر عملکرد front-end و بهینه سازی سرعت بارگذاری صفحه متمرکز می شویم. با این حال، گاهی بهتر است از سمت سرور که وبسایت شما در اصل از آنجا بارگذاری می شود، به این موضوع نگاه کنیم. امروز به تاثیر TTFB بر وبسایت شما و بحث درباره راه های راحتی به منظور کاهش آن می پردازیم. 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 مهم است یا نه. بعضی میگویند 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 در وبسایت میپردازیم.
-
استفاده از یک هاست پرسرعت با کانفیگ بهینه
اولین راه برای بهبود زمان TTFB استفاده از یک هاست مناسب با تنظیمات بهینه است، چرا که جدا تاثیر آن بر روی افزایش سرعت سایت روی تجربه کاربری نیز بسیار تاثیری مستقیم و حیاطی دارد. اصولا کمتر هاست اشتراکی دارای TTFB مناسب است و اکثرا به شکل بهینه کانفیگ نشدهاند، البته مخاطب حرفهای بنده هاستینگهای ایرانی است چرا که ما از اکثر هاستینگها سرور تهیه کردهایم و اکثرا در هاست های اشتراکی TTFB بالایی را داشتند، مگر سرور مجازی یا اختصاصی تهیه کرده باشید.
-
استفاده از CDN مناسب
راه دیگری برای کاهش TTFB استفاده از Content Delivery Network یا همان CDN است. CDN را میتوان به شبکه توزیع محتوا ترجمه کرد و ما بارها درباره اهمیت و تاثیرات مثبت و منفی CDN ها صحبت کردهایم. اگر وبسایتی دارید که میزبان کاربرانی از نقاط مختلف کشور یا جهان است، استفاده از CDN می تواند به شدت TTFB شما را کاهش دهد، البته در برخی مکانها این موضوع صدق نمیکند مثلا ایران، توصیه میکنیم مقالات دلایل استفاده از CDN و همچنین رفع خطای CDN در GTmetrix را بخوانید.
-
استفاده از کش مناسب در سایت
راه سوم و شاید راحت ترین راه کاهش TTFB استفاده از caching در وبسایت وردپرسی است. افراد زیادی فکر می کنند که تنها استفاده از caching می تواند باعث کاهش زمان بارگذاری صفحه شود، اما در حقیقت در کاهش TTFB نیز موثر است و همچنین زمان پردازش سرور را نیز کاهش می دهد. برای اطلاعات بیشتر به مقاله نحوه کش کردن سایت مراجعه نمایید.
-
استفاده از یک DNS Provider معتبر (رایگان نباشد)
DNS نیز در TTFB موثر است. محاسبه دقیق مقدار این تاثیر بسیار سخت است، اما همچنان میتوانید زمان کلی DNS lookup را مشاهده کنید. 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 است.
تهیه شده در سایت میزفا
24 پاسخ
مقاله شما خیلی حرفه ای و مفید بود – متشکرم
آیا سرور های ایرانی در برنامه های تست سرعت، کمی کندتر از واقع نمایش داده می شوند . سیستم ابری می تواند سرعت سایت را به حداکثر برساند.
درود
سیستم ابری بیشتر به درد آپ تایم بودن بالای سایت میخوره تا سرعت.
سلام و عرض ادب
من روی هاست وردپرس میزبان فا هستم
قبلا زیر ۲ ثانیه سایتم باز میشد ولی الان تست میگیریم و ۸ ثانیه طول میکشه که ۶ ثانیش برای ttfb هست و شرکت هم زیر بار نمیره که هاست یا dns اش ایراد داره
جه کار باید کرد
با تشکر
سلام
تقریبا هیچ شرکت هاستی مشکل رو از سمت خودش نمیدونه.
پیشنهاد میشه وردپرس جدید و با یک صفحه ساده طراحی کنید و بعد اونو تست کنید اگر وردپرسی که خام هست TTFB خوبی داشت و زیر ۱ ثانیه بود یعنی مشکل از سمت شما و سایتت هست.
سلام این الان عملکرد وب سایت هست تاجایی که تونستم افزونه ها و تصاویر رو بهینه سازی کردیم این زمان مناسبه یا خیر ؟
سلام.
ریدایرکتت خیلی طول میکشه. سایتت اگر با https باز میشه با همین https تست کن و نه با http تست نکن.
شما که لالایی بلدین چرا خوابتون نمی بره ؟
ما بدبختی که اشتباه کردیم و از شما سرویس گرفتیم بفنا رفتیم ….
سرعت لود سایت وردپرسیا به حدی مضحک که من که مدیر سایتم نمیرم تو سایتم چرا؟ چون اولین المان تا لود بشه بیش از 7 ثانیه طول میکشه از خدمات بی ارزش شماس ….
سلام مجید عزیز.
ما اصلا سرویس نمیفروشیم که حالا شما بخواید از ما ناراضی بشید. شما متاسفانه شرکت دیگه ای که شاید شبیه به اسم ما باشه رو اشتباه گرفتید. البته وقتی شما نمیتونید به درست شرکت رو تشخیص بدید و اینطوری نظر ارسال میکنید ب نظر من طبیعی هست که انقدر ناراحت باشید چون ظاهرا تشخیص در انتخاب هاست خوب رو هم ندارید همانند تشخیص اسم شرکت.
درضمن جهت اطلاع شما وقتی اولین المان انقدر طول میکشه میتونه از قالب و افزونه ها هم باشه. فقط هاست ممکنه مشکل نداشته باشه. با این حال قالب، افزونه و هاست روی این ۷ ثانیه اثر داره و به تنهایی هاست فقط اثر نداره.
امیدوارم بتونی سرور خوب پیدا کنی. موفق باشی.
سلام خسته نباشید.
بعد از استفاده از Autoptimize سرعت لود Wating سایتم خیلی رفته بالا مشکل از کجاس
سلام محمد.
تداخل هست.
چه جوری میشه درستش کرد؟
افزونه های مختلف غیرفعال کن دونه دونه و تست کن.
میتونه مشکل از هاست هم باشه پس باید تست کرد و تغییر داد.
میتونه مشکل از قالب هم باشه. پس باید تست کرد و تغییر داد.
ولی راه ساده استفاده از سایر افزونه های سرعت سایت هست.
با سلام
آیا علت اینکه در سایت آنالیز gtmetrix سرعت برقراری ارتباط یا همان (TTFB) 4 ثانیه است و تمام پارامتر ها 100 درصد و یا رتبه A را دارد مشکل از سرور است؟
سرور سایت من در ایران و از سایت میهن وب هاست تهیه کردم
ممنون میشم راهنماییم کنید
تشکر از میزفا
سلام مهران عزیز.
همون طور که در مقاله گفتیم میتونه از سرور باشه و یا حتی از قالب و کدنویسی ها باشه.
باید تست کرد تا فهمید از چی میتونه باشه.
عالی بود ممنونم از توضیحات خوب و کامل شما ، تونستم با کک شما جی تی متریکس رو به 100 – 90 برسونم که 90 هم بخاطر CDN بود و کلودفلر با هاستم مشکل داشت وگرنه 100-100 میشد ، بازم مرسی ازتون
سلام بسیار هم عالی. خوشحالم از اینکه به نتیجه رسیدید.
سلام .وقت بخیر
ممنون. مقاله بسیار خوبی بود
ی سوال از خدممتون داشتم، ممنون میشم راهنمائیم کنید
صفحه اصلی و صفحات داخلی سایتم رو که در اسپید تست گوگل بررسی می کنم، امیتاز دسکتاپ و موبایل رو در فاصله زمانی کوتاه متفاوت میده ، مثلا صفحه اصلی رو در ساعت 12:48 تست کردم؛ امتیاز دسکتاپ رو 76 و موبایل رو 64 داد و دو دقیقه بعد (12:50) که مجددا تست کردم امتیاز دسکتاپ رو 90 و موبایل رو 48 داد، و صفحات دیگه هم همنطور . وقتی آمار قسمت های مختلف رو در اسپید تست مقایسه کردم زمان Speed Index و TTFB در این دو تست متفاوت بود و سایر قسمت ها یکسان بود
بار اول
TTFB:5.84 s
Speed Index:4.6 s
بار دوم
TTFB: 130 ms
Speed Index: 1.0 s
مشکل از کش سایت نیست چون کش صفحه اصلی سایتم روی 20 دقیقه هست، به نظر شما چه چیزی میتونه تاثیر بذاره و چرا اینقدر این دو عدد متفاوت هست و چطوری میتونم مشکل رو حل کنم
سلام حمید جان. این موارد طبیعی هست چرا که در اکثر هاست های اشتراکی چنین موردهایی برخورد میشه. از طرفی تعداد درخواست هم مهمه و جد از این مسئله بستگی به ترافیک شبکه ها بین سرور تست کننده با سرور تست شونده وجود داره. اصولا باید ۱۰ ها بار تست کرد تا به یک میانگین رسید و هر چه تعداد تست ها بیشتر باشه میانگین درصد خطای کمتری داره.
پیشاپیش سال خوبی رو براتون آرزو دارم. موفق باشید.
بسیار عالی وکاربردی بود.
خوشحالیم براتون مفید بوده 🙂
عالی بود مقاله
خواهش میکنم
مطلب خوبی بود. خیلی روان و راحت توضیح داده بودید. ممنون.
خواهش میکنم