Медленный ответ сервера

пошаговая инструкция · Нужен специалист

← Все инструкции

1. Что произошло

Время, за которое сервер начинает отдавать страницу после запроса.

2. Почему это важно

Каждая секунда ожидания теряет посетителей, поисковики замечают медленные сайты. После исправления: Страницы откроются заметно быстрее.

3. На каких страницах обнаружено

Время, за которое сервер начинает отдавать главную страницу. Медленные страницы по всему сайту — в аудите страниц и глубоком обходе.

Чтобы увидеть адреса на вашем сайте, откройте инструкцию из отчёта или добавьте домен в адрес: /fix/ttfb/ваш-сайт.ru.

4. Как исправить

Для 1С-Битрикс

  1. Включите «Композитный сайт» и управляемое кэширование компонентов; «Настройки → Производительность → Панель производительности» покажет узкие места. На BitrixVM включите memcached.

Общее для любого сайта

  1. Включите страничный кэш: готовые страницы отдаются без обращения к PHP и базе. Это самое сильное ускорение.
  2. Обновите PHP до актуальной версии (8.2–8.4) и включите OPcache.
  3. Проверьте тариф хостинга: на перегруженном общем сервере ответ медленный независимо от настроек сайта. Помогает переезд на VPS или тариф с выделенными ресурсами.
  4. Уберите тяжёлые запросы к базе (индексы, очистка устаревших данных) и ненужные плагины.
  5. Для сайта с аудиторией в нескольких регионах подключите CDN (Cloudflare, Selectel CDN, Яндекс Cloud CDN).

5. Готовый код

Замените example.com на свой домен. Перед правкой конфигурации сделайте резервную копию файла.

Любой сайт

php.ini: OPcache
opcache.enable=1
opcache.memory_consumption=192
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=60

phpBB

phpBB: config.php, кэш Redis
$acm_type = 'phpbb\\cache\\driver\\redis';
define('PHPBB_ACM_REDIS_HOST', 'localhost');
define('PHPBB_ACM_REDIS_PORT', 6379);

nginx

nginx: кэш страниц PHP-FPM (фрагмент)
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=PAGES:50m inactive=60m;

location ~ \.php$ {
    fastcgi_cache PAGES;
    fastcgi_cache_key "$scheme$request_method$host$request_uri";
    fastcgi_cache_valid 200 301 10m;
    fastcgi_cache_bypass $cookie_wordpress_logged_in;
    fastcgi_no_cache $cookie_wordpress_logged_in;
    # остальные fastcgi_* как обычно
}

6. Как проверить результат

  1. Повторите команду 3–5 раз: время до первого байта — желательно меньше 0,6 с (хорошо — меньше 0,2 с).
  2. Нажмите «Перепроверить сайт».
Время до первого байта
curl -s -o /dev/null -w 'ttfb=%{time_starttransfer}s total=%{time_total}s\n' https://example.com/

Чтобы перепроверить сайт, откройте отчёт и нажмите «Проверить заново».