Час відповіді сервера (TTFB - Time To First Byte) - час до отримання першого байта (мережевого пакету) сторінки сайту після відправлення запиту з боку клієнта (наприклад, з браузера).
Це комплексний показник, в першу чергу залежить від того, які операції виконуються на сервері під час обробки запиту. Великий час відповіді може бути пов'язаний з десятками факторів: логіка програми, повільна робота з базою даних, маршрутизація, програмна платформа, бібліотеки, нестача процесорної потужності або пам'яті.
Перевірити, що причиною підвищеного часу відповіді сервера є внутрішні процеси сайту (скрипти, запити до бази даних), а не загальні проблеми з сервером, простіше і швидше за все можна за допомогою максимально примітивного PHP-скрипта, наприклад, що виводить результати phpinfo.
Якщо спочатку заміряти TTFB для запиту, який передбачає участь скриптів сайту (зазвичай головна сторінка сайту, якщо він динамічний), а потім TTFB для запиту до примітивного скрипту, то різниця між отриманими результатами приблизно покаже чистий час роботи скриптів.
Переконатися в тому, що сама по собі база даних також відпрацьовує швидко, можна, виконавши примітивні запити до неї, або хоча б просто перевіривши час відкриття будь-яких таблиць через phpMyAdmin.
Для зменшення часу відповіді сервера розробнику сайту (або залученому сторонньому профільному спеціалісту) варто самостійно провести аналіз операцій, що виконуються на сайті при обробці запитів, і вивчити можливість їх оптимізації.
Найбільш прямий підхід - логування роботи скриптів. Тобто в скриптах, які виконуються кожен раз в процесі завантаження сайту, проставити контрольні точки, в яких відзначати час, який знадобився для обробки тієї чи іншої ділянки коду. Приклади виведення часу обробки скрипта можна знайти у відкритих джерелах в мережі (наприклад, тут).
У разі наявності затримок, пов'язаних із запитами до бази даних, слід:
З боку хостингу допомогти в деякій мірі скоротити час відповіді сервера можуть такі засоби: