چند وقت پیش، مشتری‌ای که سایتش را تازه بهینه کرده بودیم، با لحن متعجب پرسید: چرا سایت من در PageSpeed نمره ۹۵ می‌گیرد ولی کاربران می‌گویند هنوز کند است؟ وقتی عمیق‌تر بررسی کردیم، عدد TTFB (Time To First Byte) را دیدیم که روی ۸۰۰ میلی‌ثانیه بود. سایت در مرورگر سریع باز می‌شد چون کش و بهینه‌سازی تصویر خوب بود، اما اولین بایت از سرور با تأخیر می‌رسید. این تأخیر، هرچند در نگاه اول کوچک به نظر می‌رسد، به‌طور زنجیره‌ای همه معیارهای سرعت را عقب می‌اندازد.

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

TTFB چیست و چه چیزی را می‌سنجد؟

TTFB یا Time To First Byte، فاصله زمانی بین ارسال درخواست HTTP توسط مرورگر و دریافت اولین بایت پاسخ از سرور است. این معیار، مجموع چند مؤلفه را نشان می‌دهد: زمان جستجوی DNS، زمان برقراری اتصال TCP، زمان انجام TLS Handshake (در HTTPS)، زمان پردازش درخواست در سرور، و زمان تولید اولین بایت پاسخ.

نکته مهم این است که TTFB فقط سرعت سرور را نمی‌سنجد؛ کیفیت شبکه، فاصله جغرافیایی و پیکربندی سرور هم در آن نقش دارند. به همین دلیل، TTFB یک معیار ترکیبی است و بهبود آن نیازمند نگاه چندلایه است. اگر با مفهوم Core Web Vitals (شاخص‌های اصلی وب) آشنا نیستید، Core Web Vitals چیست و چرا گوگل بر آن تأکید دارد؟ پیش‌نیاز خوبی است. TTFB خودش یکی از سه معیار اصلی نیست، اما مستقیماً بر LCP (Largest Contentful Paint) اثر می‌گذارد.

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

چرا TTFB مهم‌ترین معیار پنهان سرعت است؟

TTFB به سه دلیل اهمیت دارد که اغلب نادیده گرفته می‌شود:

دلیل اول: رابطه مستقیم با LCP

LCP یا Largest Contentful Paint، معیار اصلی سرعت در Core Web Vitals است و زمان ظاهر شدن بزرگ‌ترین عنصر دیدی صفحه را می‌سنجد. اگر TTFB شما ۸۰۰ میلی‌ثانیه باشد، LCP نمی‌تواند زیر ۸۰۰ میلی‌ثانیه باشد. یعنی سقف LCP شما از همان اول تعیین شده است. توضیح کامل LCP در LCP چیست و چگونه آن را بهینه کنیم؟ آمده است.

دلیل دوم: تجربه کاربری و نرخ پرش

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

دلیل سوم: تأثیر بر رتبه گوگل

گوگل TTFB را به‌عنوان یکی از سیگنال‌های تجربه صفحه در رتبه‌بندی لحاظ می‌کند، هرچند وزن آن از LCP و INP کمتر است. اما در رقابت نزدیک بین دو سایت هم‌سطح، همان تفاوت ۲۰۰ میلی‌ثانیه‌ای می‌تواند تعیین‌کننده باشد. رابطه کامل سرعت و سئو در چگونه سرعت سایت بر سئو تأثیر می‌گذارد؟ باز شده است.

آستانه‌های TTFB: عدد خوب، متوسط و بد

گوگل آستانه‌های مشخصی برای TTFB تعیین کرده که در ابزارهای سنجش استفاده می‌شود:

وضعیتمقدار TTFBتجربه کاربر
خوبزیر ۲۰۰ میلی‌ثانیهکاربر تأخیر را حس نمی‌کند
نیازمند بهبودبین ۲۰۰ تا ۵۰۰ میلی‌ثانیهتأخیر محسوس در موبایل
ضعیفبالای ۵۰۰ میلی‌ثانیهکندی واضح، افت نرخ تبدیل
بحرانیبالای ۱۰۰۰ میلی‌ثانیهسایت برای کاربران غیرقابل‌استفاده در اوج ترافیک

در تجربه خودم، در سایت‌های وردپرسی روی هاست‌های اشتراکی ایرانی، TTFB معمولاً بین ۳۰۰ تا ۸۰۰ میلی‌ثانیه نوسان دارد. روی هاست‌های LiteSpeed یا VPS بهینه، این عدد به ۱۰۰ تا ۲۰۰ میلی‌ثانیه می‌رسد. تفاوت بین این دو، همان تفاوت بین سایت آماتور و سایت حرفه‌ای است.

چگونه TTFB را اندازه بگیریم؟

سه روش اصلی برای اندازه‌گیری TTFB وجود دارد که هر کدام در جای خود کاربرد دارند:

روش اول: Chrome DevTools

در مرورگر Chrome، تب Network را باز کنید و صفحه را ریلود کنید. روی اولین درخواست (معمولاً سند HTML) کلیک کنید و در تب Timing، بخش Waiting (TTFB) را ببینید. این سریع‌ترین راه اندازه‌گیری محلی است.

روش دوم: ابزارهای آنلاین

ابزارهایی مثل PageSpeed Insights، WebPageTest و GTmetrix هم TTFB را گزارش می‌دهند. مزیت این ابزارها، تست از موقعیت‌های جغرافیایی مختلف است. فهرست کامل در بهترین ابزارهای تست سرعت سایت آمده است.

روش سوم: خط فرمان با curl

برای اندازه‌گیری دقیق و قابل تکرار، از curl استفاده می‌کنم:

curl -o /dev/null -s -w "%{time_starttransfer}
" https://example.com

این دستور، زمان TTFB را به ثانیه برمی‌گرداند. تکرار آن در ساعات مختلف روز، تصویر دقیقی از نوسان سرور می‌دهد. اگر عدد در صبح ۲۰۰ میلی‌ثانیه و در ساعت ۹ شب ۸۰۰ میلی‌ثانیه باشد، مشکل از صف CPU در هاست اشتراکی است — همان الگویی که در تأثیر هاست بر سرعت سایت چقدر است؟ مفصل باز کرده‌ام.

پنج عامل اصلی افزایش TTFB

در بازبینی صدها سایت، پنج عامل را به‌عنوان ریشه‌های اصلی TTFB بالا شناسایی کرده‌ام:

عامل اول: هاست ضعیف یا اشتراکی شلوغ

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

عامل دوم: نبود کش سرور

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

عامل سوم: کوئری‌های سنگین دیتابیس

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

عامل چهارم: نسخه PHP قدیمی یا پیکربندی ضعیف

PHP 7.4 در مقابل PHP 8.2، تفاوت محسوسی در زمان اجرای کد دارد. همچنین نبود OPcache یا تنظیم نادرست memory_limit، TTFB را بالا می‌برد. ارتقای PHP در اکثر هاست‌ها ساده‌ترین بهبود TTFB است.

عامل پنجم: فاصله جغرافیایی سرور تا کاربر

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

هفت تکنیک کاهش TTFB

برای کاهش TTFB، هفت تکنیک را به ترتیب اثربخشی اجرا می‌کنم:

تکنیک یکم: فعال‌سازی کش صفحه

قوی‌ترین و ارزان‌ترین تکنیک. با کش صفحه، خروجی HTML آماده ذخیره می‌شود و درخواست‌های بعدی بدون درگیر کردن PHP و MySQL پاسخ می‌گیرند. روی هاست‌های LiteSpeed، افزونه LiteSpeed Cache رایگان است و TTFB را به زیر ۱۰۰ میلی‌ثانیه می‌رساند.

تکنیک دوم: افزودن CDN

CDN فایل‌های استاتیک و در برخی تنظیمات، خودِ صفحه HTML را از نزدیک‌ترین لبه به کاربر تحویل می‌دهد. این تکنیک به‌ویژه برای سایت‌هایی که مخاطبشان پراکنده جغرافیایی است، TTFB را تا ۵۰ درصد کاهش می‌دهد. راهنمای راه‌اندازی در راه‌اندازی CDN برای سایت وردپرسی آمده است.

تکنیک سوم: ارتقای هاست

اگر TTFB شما روی همه صفحات بالای ۵۰۰ میلی‌ثانیه است و کش هم اثر نمی‌کند، وقت ارتقای هاست است. مهاجرت از اشتراکی به VPS یا حداقل به یک هاست LiteSpeed با منابع اختصاصی‌تر، تفاوت چشمگیری ایجاد می‌کند. معیارهای انتخاب در هاست چیست و چگونه انتخاب درستی داشته باشیم؟ و بهترین هاست برای وردپرس آمده است.

تکنیک چهارم: بهینه‌سازی دیتابیس

پاک‌سازی جدول‌های اضافی، حذف Revisionهای بی‌استفاده و ایندکس‌گذاری درست، کوئری‌ها را سریع می‌کند. راهنمای عملی در چگونه دیتابیس وردپرس را پاک‌سازی کنیم؟ و بهینه‌سازی کوئری‌های MySQL.

تکنیک پنجم: ارتقای نسخه PHP

ارتقا از PHP 7.4 به 8.2 می‌تواند تا ۳۰ درصد زمان اجرای کد را کاهش دهد. قبل از ارتقا، سازگاری افزونه‌ها و قالب را در محیط تست بسنجید.

تکنیک ششم: کاهش تعداد افزونه‌ها

هر افزونه، در هر درخواست یک لایه PHP اضافه می‌کند. حذف افزونه‌های غیرضروری، مستقیم روی TTFB اثر می‌گذارد. راهنمای شناسایی افزونه‌های اضافی در چگونه افزونه‌های اضافی وردپرس را شناسایی کنیم؟

تکنیک هفتم: بهینه‌سازی سرور

اگر VPS دارید، تنظیمات OPcache، MySQL و وب‌سرور می‌تواند TTFB را به‌شدت بهبود دهد. راهنمای عملی در بهینه‌سازی سرور برای وردپرس و چگونه عملکرد سرور را بهبود دهیم؟

TTFB در وردپرس: نکات اختصاصی

وردپرس به‌خاطر ساختار پویا و وابستگی به PHP و MySQL، در خطر بالای TTFB است. چهار نکته اختصاصی که در پروژه‌ها رعایت می‌کنم:

  1. استفاده از کش آبجکت (Object Cache): اگر سایت شما روی Redis یا Memcached اجرا می‌شود، فعال‌سازی کش آبجکت، کوئری‌های دیتابیس را کش می‌کند و TTFB را به‌شدت کاهش می‌دهد.
  2. محدود کردن Heartbeat API: وردپرس به‌طور پیش‌فرض هر ۱۵ ثانیه یک درخواست AJAX به سرور می‌فرستد. محدود کردن یا غیرفعال کردن آن در صفحات غیرضروری، بار سرور را کم می‌کند.
  3. بهینه‌سازی Cron: اگر WP-Cron روی هر بازدید اجرا شود، TTFB را تحت تأثیر قرار می‌دهد. انتقال به Cron واقعی سرور، راه‌حل استاندارد است.
  4. کاهش بار پیشخوان: اگر در ساعات پربازدید، مدیران سایت در پیشخوان کار می‌کنند، بار دیتابیس بالا می‌رود. جدا کردن محیط مدیریت از سایت در ساعات بحرانی، توصیه می‌شود.

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

پنج اشتباه که در پروژه‌ها زیاد دیده‌ام:

  • قناعت به یک اندازه‌گیری: TTFB در ساعات مختلف روز نوسان دارد. یک تست در ظهر جمعه، تصویر کاملی نمی‌دهد. باید در سه زمان مختلف و از دو موقعیت جغرافیایی سنجیده شود.
  • فرض این‌که کش همه‌چیز را حل می‌کند: کش TTFB را برای بازدیدکنندگان بعدی کاهش می‌دهد، اما اولین بازدیدکننده هنوز TTFB خام را تجربه می‌کند. اگر ترافیک سایت کم و مخاطب متنوع است، ارتقای هاست و CDN مؤثرتر از کش است.
  • نادیده گرفتن TTFB در موبایل: TTFB در موبایل معمولاً دو برابر دسکتاپ است. همیشه از منظر موبایل بسنجید.
  • کاهش TTFB به قیمت افزایش LCP: مثلاً با حذف lazy-load از همه تصاویر. هدف نهایی، تجربه کلی کاربر است نه یک عدد خاص.
  • عدم پایش مداوم: TTFB با هر تغییر هاست، افزونه یا آپدیت تغییر می‌کند. پایش ماهانه، افت تدریجی را زودتر کشف می‌کند.

پرسش‌های پرتکرار درباره TTFB

TTFB چیست به زبان ساده؟

TTFB یا Time To First Byte، فاصله زمانی بین ارسال درخواست توسط مرورگر و دریافت اولین بایت پاسخ از سرور است. این معیار، سرعت واکنش سرور را می‌سنجد و اولین گلوگاه در مسیر بارگذاری صفحه محسوب می‌شود. مقدار خوب TTFB زیر ۲۰۰ میلی‌ثانیه است.

چرا TTFB در وردپرس مهم است؟

وردپرس برای هر بازدید، PHP و MySQL را درگیر می‌کند. اگر TTFB بالا باشد، همه معیارهای سرعت دیگر (LCP، INP) نیز تحت تأثیر قرار می‌گیرند. بهبود TTFB در وردپرس معمولاً از طریق کش، ارتقای هاست و بهینه‌سازی دیتابیس انجام می‌شود.

چگونه TTFB را اندازه بگیریم؟

سه روش: Chrome DevTools (تب Network، بخش Waiting)، ابزارهای آنلاین مثل PageSpeed Insights و WebPageTest، و خط فرمان با curl. روش curl دقیق‌ترین و قابل تکرارترین است: curl -o /dev/null -s -w "%{time_starttransfer} " https://example.com.

آیا TTFB روی رتبه گوگل تأثیر دارد؟

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

چرا TTFB سایت من در ساعات مختلف نوسان دارد؟

نوسان TTFB معمولاً نشانه هاست اشتراکی شلوغ است. در ساعات اوج، منابع CPU و RAM بین سایت‌های همسایه تقسیم می‌شود و درخواست شما در صف می‌ماند. راه‌حل، ارتقا به VPS یا هاست اختصاصی است. راهنمای انتخاب در VPS چیست و چه تفاوتی با هاست اشتراکی دارد؟

بهترین راه کاهش TTFB در وردپرس چیست؟

ترکیب سه کار: اول فعال‌سازی کش صفحه (مثلاً LiteSpeed Cache یا WP Rocket)، دوم افزودن CDN برای مخاطب پراکنده، سوم ارتقای هاست به LiteSpeed با منابع اختصاصی‌تر. این سه، در تجربه من بیش از ۷۰ درصد بهبود TTFB را ایجاد می‌کنند.

خط پایان: TTFB را جدی بگیرید

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

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

اگر تجربه‌ای از کاهش TTFB در پروژه‌های خودتان دارید — به‌خصوص اگر تکنیکی کشف کرده‌اید که در این مقاله نبوده — برایم بنویسید. همین تجربه‌های میدانی، به خواننده بعدی کمک می‌کند سایت سریع‌تری بسازد. ⚡