Где теряется время
У загрузки страницы два больших этапа. Сначала сервер готовит ответ: выполняет код, обращается к базе и внешним сервисам. Потом браузер получает файлы и рисует страницу. Причины и способы исправления у этих этапов разные.
Первый этап удобно оценивать по времени до первого байта (TTFB). В руководстве web.dev ориентиром для большинства сайтов названо значение не больше 0,8 секунды, а выше 1,8 секунды результат считается плохим: описание метрики TTFB. Если сервер отвечает долго, оптимизация картинок заметного эффекта не даст.
Сначала замеры
- Какие страницы. Медленно всё или только каталог, поиск, корзина, административная часть?
- Когда. Постоянно или в определённые часы: во время рекламы, обмена с 1С, рассылки?
- Для кого. Для всех посетителей или только после входа в личный кабинет?
- С чем сравнить. Откройте простую картинку или файл стилей с того же сайта. Если файл приходит быстро, а страница долго, сеть и канал сервера обычно ни при чём.
Запишите несколько адресов и время, когда страница открывалась медленно. С этими примерами проще найти нужные записи в журналах.
Сервер или приложение
Если в момент замедления заняты процессор, память или диск, смотрят, какой процесс их использует. Это может быть сам сайт, база, резервное копирование или посторонняя задача на том же сервере. На общем хостинге часть этих данных доступна только через поддержку.
Если ресурсы свободны, а страница всё равно собирается долго, причину ищут в коде и запросах к базе. В MySQL для этого есть журнал медленных запросов. По умолчанию он выключен, а порог времени задаётся параметром long_query_time: журнал медленных запросов MySQL. Один запрос без индекса на большой таблице способен замедлить весь каталог.
Кеш и фоновые задачи
Проверьте, что кеш включён и не сбрасывается слишком часто. После обновления или переноса сайта кеш нередко остаётся отключённым, и каждая страница собирается заново при каждом запросе.
Вторая частая причина связана с расписанием. Импорт товаров, обмен с учётной системой, генерация выгрузок и резервное копирование в рабочие часы забирают ресурсы у посетителей. Если задачи запускаются чаще, чем успевают завершиться, они накладываются друг на друга.
Что передать специалисту
Пример обращения
“Каталог на example.ru открывается 6–8 секунд, остальные страницы быстро. Началось после обновления две недели назад. Медленнее всего днём, с 11 до 15. Сайт на VPS, доступ к панели и журналам есть”.
С таким описанием можно сразу планировать замеры, а не гадать. Если нужна помощь, посмотрите ускорение сайта и контроль сбоев. Когда выяснится, что проекту действительно тесно на текущей площадке, пригодится настройка сервера и перенос.