۱در این آموزش می خواهیم به بررسی روش های کاهش زمان TTFB برای افزایش سرعت سایت به صورت کامل بپردازیم.وقتی صحبت از سرعت سایت وردپرسی می شود، اغلب بر روی عملکرد بخش front-end و بهینه سازی های مربوطه به آن برای بهبود سرعت بارگذاری صفحه تمرکز می کنیم. با این حال ، گاهی اوقات بهتر است که آن را از سمت سرور (server-side)، جایی که وب سایت شما در ابتدا شروع به بارگیری می کند، بررسی کنید.
امروز ما می خواهیم به این موضوع بپردازیم که چگونه TTFB (زمان دریافت اولین بایت) بر سرعت بارگزاری وب سایت شما تأثیر می گذارد و چند راه ساده برای بهبود آن را معرفی خواهیم کرد. در عمل معمولا فاکتور TTFB نادیده گرفته می شود ، اما شما می بایست آن را هنگام تست سرعت سایت خود مورد توجه قرار دهید.
آنچه در این مقاله خواهید خواند:
- TTFB چیست؟
- آیا TTFB مهم است؟
- چگونه TTFB خود را اندازه گیری کنیم
- ۴ راه برای کاهش TTFB در سایت وردپرس خود
TTFB چیست؟
TTFB مخفف زمان اولین بایت است. به بیان ساده تر ، این یک اندازه گیری از مدت زمان انتظار مرورگر است تا اولین بایت داده خود را از سرور دریافت کند.
هرقدر زمان دستیابی به این داده ها طولانی تر باشد، نمایش سایت بر روی صفحه نمایش شما طولانی تر خواهد بود. یک اشتباه رایج این است که TTFB پس از زمان مورد نیاز برای جستحوی DNS محاسبه می شود،درحالیکه، تمامی تاخیرهای شبکه ای در محاسبه TTFB نقش دارند. این محاسبه شامل یک فرآیند ۳ مرحله ای است و تأخیرها و کندی ها می توانند در هر نقطه ای اتفاق بیفتند که به کل TTFB شما اضافه می شود. کاهش TTFB به افزایش سرعت سایت کمک خواهد کرد.
TTFB چه چیزی را نمایش میدهد؟
- زمان پاسخگویی سرور
- زمان انتقال بایت ها (زمان تأخیر در طول مسیر)
زمان پاسخگویی سرور: این مدت زمانی طول می کشد که سرور شما پاسخی را تولید کند و آن را دوباره ارسال کند. این پارامترها براحتی قابل کنترل و مدیریت هستند.
زمان پاسخگویی سرور شما باید زیر ۲۰۰ms باشد.
دلایل افزایش زمان پاسخگویی سرور می تواند موارد زیر باشد:
- کوئری های کند دیتابیس سایت ( Slow queries)
- کمبود منابع سرور
- المان های بسیار کند frameworks/libraries/dependencies
- سخت افزار ضعیف
زمان انتقال بایت ها: بسته به مکانی که سرور در آنجا قرار دارد و به چه نوع و سرعت ارتباطی، TTFB متفاوت خواهد بود ، بسته به سرعت زیرساخت های شما و سرعت ارتباطی بین سرورها و شبکه سرعت انتقال اطلاعات می تواند کاهش پیدا کند، پس اگر سرور شما در ایران قرار دارد انتظار TTFB مناسب در تمام زمان ها را نداشته باشید. راه سرعت بخشیدن به مشکل، کوتاه کردن فاصله فیزکی سرور است. اینجاست که CDN وارد می شود و به این ترتیب می توانید این بخش را بهبود بخشید.
۱) درخواست به سرور
هنگامی که شخصی به وب سایت شما مراجعه می کند ، اولین چیزی که اتفاق می افتد این است که یک درخواست HTTP از مشتری (مرورگر) به سرور ارسال می شود. در این مرحله عوامل مختلفی وجود دارد که می توانند تأخیر را ایجاد کنند. زمان جستجوی کند DNS می تواند به افزایش زمان درخواست کمک کند. اگر سرور از نظر جغرافیایی بسیار دور قرار داشته باشد ، می تواند تاخیری را در مسافتی که داده ها باید طی کنند ایجاد کند. همچنین، قوانین پیچیده در فایروال نیز، می تواند زمان مسیریابی را افزایش دهد و البته سرعت اینترنت مشتری را نیز فراموش نکنید.
۲) پردازش سرور
پس از ارسال درخواست، سرور مجبور است آن را پردازش کرده و پاسخی را ایجاد کند. این موضوع می تواند چندین تاخیر مختلف از قبیل فراخوانی های پایگاه داده کند، اجرای بیش از حد
اسکریپت های واسط (۳ rd party) ، عدم کش نمودن اولین پاسخ به درخواست، کدها و قالبهای بهینه نشده وردپرس و منابع ناکارآمد سرور مانند خواندن-نوشتن بر روی هارد (I/O) یا حافظه را ایجاد کند.
۳) پاسخ به مشتری
پس از پردازش درخواست توسط سرور، میبایست آن را به مشتری ارسال کند ( و یا اولین بایت را ارسال کند). این امر به شدت وابسته به سرعت شبکه سرور و مشتری می باشد. اگر مشتری از یک ایترنت بیسیم با سرعت پایین اسنفاده کند، در TTFB بازتاب خواهد یافت.
آیا TTFB مهم است؟
درک این نکته مهم است که TTFB معدل سرعت وب سایت نیست. در عمل یک سنجش برای پاسخگویی است. در مورد اهمیت TTFB در سراسر اینترنت بحث های زیادی وجود دارد. برخی می گویند TTFB بی معنی است Cloudflare) ، LittleBizz ( و برخی دیگر می گویند که بسیار مهم است (ایلیا گریوریک ، مهندس عملکرد وب در گوگل). هر دو گروه نکات معتبری را در مورد مهم بودن و یا نبون TTFB و نیز سؤالاتی را درباره چگونگی محاسبه آن ارائه می دهند.
موز(MOZ) حتی یک مطالعه عمیق درباره همبستگی بین رتبه بندی موتورهای جستجو و TTFB انجام داد. با این حال، به سختی می توان نتیجه گرفت که آیا TTFB باعث بهتر دیده شدن در موتورهای جستحو شده و یا اینکه سایتهایی که دارای TTFB پایین تر هستند سریعتر بودند، که در نتیجه می تواند تحت تأثیر عامل رتبه بندی صفحه Google باشد.
با این حال، به جای صرف وقت بیشتر بر روی مهم بودن یا نبودن این مسئله، ما ترجیح می دهیم به بیان بهینه سازی هایی برای بهبود این متریک بپردازیم. به طور کلی هر عملی که انجام می دهید می تواند به سرعت سایت وردپرس شما کمک کند و این به نوبه خود بر TTFB نیز تأثیر گذار خواهد بود. در تستهای ما سایت های با TTFB بالاتر کندتر بارگزاری شدند پس میتوان نتیجه گرفت کاهش زمان TTFB به افزایش سرعت سایت کمک خواهد کرد!
هر زمانی زیر ۱۰۰ میلی ثانیه برای TTFB عالی و خوب محسوب می شود. Google PageSpeed Insights برای زمان پاسخگویی سرورها زیر ۲۰۰ میلی ثانیه را توصیه می کند. اگر در محدوده ۳۰۰-۵۰۰ میلی ثانیه هستید ، این بسیار استاندارد است. و اگر TTFB بیش از ۶۰۰ میلی ثانیه است، ممکن است اشکالاتی در پیکربندی سرور داشته و یا ممکن است زمان ارتقا به زیرساخت وب بهتر می باشد. یا توصیه هایی که در ادامه بیان میشود را به منظور کاهش TTFB دنبال کنید. همچنین توجه داشته باشید که SSL / TLS نیز می تواند در کندی TTFB موثر باشد.
چگونه TTFB خود را بسنجیم؟
روش های مختلفی وجود دارد که می توانید TTFB را آزمایش کنید. در این مقاله دو مورد را بررسی خواهیم کرد. اما به یاد داشته باشید ، نتایج هر ابزار ممکن است کمی متفاوت باشد، بنابراین مهم است که از ابتدا تا انتهای بررسی ها از یک ابزار برای بررسی سایت خود استفاده کنید.
بررسی TTFB با Google Chrome DevTools
می توانید TTFB را با فعالسازی DevTools در Google Chrome اندازه گیری کنید. در نظر داشته باشید اگر بخواهید تست ها را از رایانه شخصی خود انجام دهید ، TTFB تحت تأثیر تأخیر شبکه و اتصال اینترنت شما قرار خواهد گرفت. بنابراین استفاده از ابزار های واسط (برخی در ادامه ادامه مشاهده می شود) موثرتر میباشد زیرا تست ها را از مراکز داده (data centers) انجام می دهند.
راههای کاهش TTFB در سایت های وردپرسی
از هاست سریع وردپرس استفاده کنید
سرورستاپ ارائه دهنده سرویس ابری وردپرس با نام نیترو، سرویس پیشرفته برپایه تکنولوژی کلود به همراه سیستم cache هوشمند را پیاده سازی کرده است سرورستاپ همچنین از شبکه خصوصی پلتفرم Cloud در کلیه هاست های خود استفاده می کند که منجر به افزایش سرعت می شود. برای کسب اطلاعات بیشتر پیرامون هاست ابری وردپرس سرورستاپ مقاله “هاست پرسرعت نیترو چیست؟” را مطالعه کنید.
بنابراین به سادگی با استفاده از میزبان سریعتر ، ما شاهد کاهش ۲۰٪ TTFB در سطح جهان هستیم. داشتن یک هاست خوب وردپرس با معماری به دقت مهندسی شده برای پایین آوردن TTFB شما بسیار مهم است. همچنین انتخاب دقیق مکان فیزیکی سرور بصورتیکه حتی الامکان نزدیک به بازدیدکنندگان شما باشد بسیار حائز اهمیت است. اگر بیشتر مشتریان شما در ایران هستند ، سرور خود را در اروپا میزبان نکنید (اگرچه CDN می تواند به نفی برخی از این موارد کمک کند.)
استفاده از CDN
راه آسان دیگر برای کاهش TTFB استفاده از شبکه تحویل محتوا (CDN) است. اگر وب سایتی دارید که در مناطق مختلف کشور یا در سراسر جهان به بازدید کنندگان سرویس می دهد ، CDN می تواند TTFB شما را به شدت کاهش دهد. همانطور که در بالا دیدیم ، موقعیت مکانی بسیار مهم است.
TTFB بدون CDN
ما ابتدا یک تست با غیرفعال کردن CDN انجام دادیم و همانطور که می بینید زمان کل بارگزاری ۱٫۴۵ ثانیه و میانگین TTFB برای یک url حدود ۱۳۶ ms بود.
TTFB با CDN
CDN خود را فعال کردیم و دوباره تست را اجرا کردیم. همانطور که می بینید زمان بارگزاری کلی به ۷۸۸ ms کاهش یافته است و میانگین TTFB ما اکنون ۳۷ ms است! چه تفاوتی CDN می تواند ایجاد کند.
توجه: اگر از Cloudflare استفاده می کنید ، ممکن است TTFB کمی بالاتر داشته باشید. این به احتمال زیاد به دلیل سربار اضافی و پیچیدگی در اجرای سرویس پروکسی است. به یاد داشته باشید که Cloudflare دارای دیواره های آتش اضافی و سایر ویژگی هایی است که برخی از ارائه دهندگان CDN ندارند. اگر سایت شما به درستی بهینه نشده است، میبایست برای هرچه کمتر شدن TTFB کمی هزینه کنید.
استفاده از کش در وردپرس
راه سوم و احتمالاً یکی از ساده ترین راه های کاهش TTFB استفاده از کش (cache) در سایت وردپرسی است. بسیاری فقط فکر می کنند کشینگ می تواند به کاهش سرعت بارگذاری سایت کمک کند ، اما در حقیقت به کاهش TTFB نیز کمک می کند زیرا کش به کاهش زمان پردازش سرور منجر می شود. ما دوباره چندین تست با و بدون کش انجام دادیم. هر آزمون ۵ بار اجرا شد و میانگین آن گرفته شد.
سرورستاپ اولین ارائه دهنده سیستم cache هوشمند وردپرس (بدون نیاز به استفاده از پلاگین خاص) می باشد که با استفاده از کش کردن اطلاعات بروی Ram سرعت بسیار بالایی را برای صفحات پربازدید رقم می زند.
بدون کشینگ:
در این آزمایش سایت را از طریق Pingdom اجرا کردیم و بدون اجرای کش ، سایت ما زمان بارگذاری ۱٫۱۷ ثانیه و TTFB برابر ۵۶۰ میلی ثانیه را ثبت نمود.
با کشینگ:
در این تست مکانیزم کشینگ را فعال کردیم و مجدداً سایت را از طریق Pingdom بررسی کردیم. این بار سایت ما زمان بارگذاری ۶۴۳ میلی ثانیه و TTFB معادل ۵۷ میلی ثانیه را به ثبت رساند.
بنابراین با فعال کردن کش ، توانستیم TTFB خود را تقریبا ۹۰٪ کاهش دهیم! ما این کار را در سطح سرور انجام می دهیم به این معنی که هیچ افزونه برای کشینگ لازم نیست. سرورستاپ دارای سیستم cache هوشمند در سرویس هاست وردپرس خود می باشد.
استفاده از سرویس Premuim DNS
و نکته آخر اینکه ، DNS نیز در محاسبه TTFB مؤثر می باشد. محاسبه دقیق میزان تأثیر آن DNS بر روی TTFB دشوار است ، اما می توانید زمان جستجوی DNS (DNS Lookup) را مشاهده کنید. ما با ابزار تست سرعت SolveDNS چند آزمایش انجام دادیم. ابتدا یک تست بر روی یک دامنه که از سرویس DNS رایگان Namecheap استفاده می کند انجام دادیم.
در شکل زیر نیز وضعیت یک سایت که از Amazon Route 53’s premium DNS استفاده میکند نشان داده شده است. همانطور که می بینید ، زمان جستجوی DNS با آمازون بسیار سریعتر است. معمولاً ارائه دهندگانPremuim DNS سرعت بهتری دارند. Cloudflare نیز یک سرویس ارائه دهنده DNS رایگان میباشد که عملکرد بسیار خوبی نیز دارد.
جمع بندی
بسیاری موارد دیگر نیز وجود دارند که می تواند در محاسبه TTFB نقش داشته باشند مانند کشینگ پایگاه داده ، سرعت خواندن و نوشتن دیسک (Disk I/O) ، مصرف حافظه RAM ، تنظیمات مربوط به PHP ، تنظیمات MySQL ، تنظیمات شبکه ، سربارهای ناشی از TLS و غیره. پیادهسازی و استفاده از موارد ذکر شده در این مقاله نسبت به سایر موارد آسانتر بوده و در عین حال بهترین عملکرد را به شما می دهد. در نهایت به یاد داشته باشید که یک میزبان سریع وردپرس ، CDN ،کشینگ و سرویس DNS همه نقش مهمی را در کاهش زمان دریافت اولین بایت ( TTFB ) ایفا می کنند. رفع و یا بهبود این موارد باعث بهبود TTFB و افزایش سرعت وب سایت شما می شود.