Медленный TTFB WordPress: от замера до причины
Высокий TTFB WordPress возникает до загрузки изображений и JavaScript: сервер долго формирует HTML. Диагностику нужно вести по слоям — повторяемость, кеш, плагины и тема, запросы базы, PHP-FPM, внешние API и ресурсы сервера.
Шкала риска
Демо-ориентир для быстрой интерпретации результата.
Показатель выглядит штатно.
Пора проверить динамику и причины.
Нужна диагностика до инцидента.
Сервис может быть недоступен пользователям.
Диагностика высокого TTFB WordPress: замеры, плагины, тема, база данных, object cache, PHP-FPM, cron, внешние API и серверные ресурсы.
Измерьте TTFB правильно
Сделайте серию проверок одной страницы с одинаковыми условиями. Первый запрос после очистки кеша и прогретый ответ — разные сценарии. Отдельно измерьте главную, запись, каталог, поиск и авторизованную область.
Фиксируйте медиану и высокий перцентиль, а не один удачный замер. Если задержка появляется периодически, сопоставьте её со временем cron, резервного копирования, импорта или всплеска трафика.
Проверьте кеширование и дорогие плагины
Полностраничный кеш часто даёт самый заметный эффект для публичных страниц, но он не должен скрывать медленную генерацию динамических страниц. Убедитесь, что ответ действительно приходит из кеша и правила исключений не отключили его для всего сайта.
Для поиска виновника используйте профилировщик или staging-копию: сравнивайте время с контролируемым отключением групп плагинов. Не экспериментируйте на production без плана отката.
Мониторинг покажет, когда состояние изменится
Добавьте сайт или сервер один раз — perfMon будет проверять его автоматически, сохранит историю и сообщит о сбое и восстановлении.
Найдите медленные запросы и autoload
Медленные SQL-запросы, разросшиеся таблицы и чрезмерный объём autoloaded options увеличивают время каждого PHP-запроса. Используйте slow query log, Query Monitor на тестовой среде и EXPLAIN для подтверждённых тяжёлых запросов.
Object cache на Redis или Memcached уменьшает повторные обращения к базе, но не исправляет запрос без индекса и бесконтрольный рост данных. Перед удалением записей сделайте резервную копию и определите владельца данных.
Проверьте PHP-FPM, cron и внешние зависимости
Очередь PHP-FPM растёт, если worker-процессов мало для нагрузки или каждый запрос слишком долгий. Смотрите active/idle processes, max children reached, память процесса и slowlog.
WP-Cron может запускать тяжёлые задачи внутри пользовательского запроса. Для предсказуемости его переносят в системный cron. Внешние API, SMTP и лицензирующие сервисы должны иметь ограниченные таймауты и кеширование результата.
Закрепите улучшение мониторингом
После каждого изменения повторите тот же набор измерений и сравните медиану, p75/p95 и частоту медленных ответов. Иначе улучшение легко принять за случайный прогретый запрос.
Регулярный мониторинг TTFB критичных страниц покажет регрессию после релиза, установки плагина или роста базы. Добавьте рядом CPU, RAM, диск и инциденты, чтобы видеть контекст, но подтверждайте причину профилировщиком и логами.
Автоматизируйте проверку, описанную в статье
Разовая диагностика помогает сейчас. Регулярный мониторинг нужен, чтобы не пропустить повторение проблемы.
Настроить бесплатноПрименить на практике
Частые вопросы
Короткие ответы на вопросы, которые обычно возникают при диагностике.
Какой TTFB считать хорошим для WordPress?
Универсального числа нет, но для публичной кешируемой страницы разумно стремиться к стабильному ответу до 200–300 мс с близкими высокими перцентилями.
CDN исправит высокий TTFB?
CDN помогает, если кеширует HTML на edge. Для динамических и некешируемых запросов причину всё равно нужно искать в WordPress, PHP, базе и зависимостях.
Опасно ли отключать плагины для проверки?
На production — да. Используйте staging, резервную копию и контролируемый план, особенно для платежей, форм и безопасности.
Почему TTFB иногда высокий, а иногда нормальный?
Частые причины — MISS кеша, cron, очередь PHP-FPM, медленный внешний API, блокировки базы или конкуренция за CPU и диск.
Не ждите следующего сообщения «сайт не работает»
Добавьте первый сайт или сервер: perfMon будет проверять состояние автоматически, сохранит историю и уведомит ответственных.