Ускорение начинается с разделения времени сервера, базы данных, фронтенда и внешних сервисов. Иначе оптимизируется то, что легче заметить, а не то, что действительно тормозит.
Сначала зафиксируйте симптомы
Проверьте главную, категорию, карточку товара, поиск, корзину и оформление заказа отдельно. Сравните анонимного и авторизованного пользователя, первый и повторный запрос, обычное время и период обмена с 1С.
- TTFB и полное время ответа сервера;
- медленные страницы в панели производительности;
- длительные SQL‑запросы;
- ошибки PHP и фоновых заданий;
- CPU, память, диск и количество PHP‑процессов;
- внешние API, которые блокируют ответ.
Восемь частых источников проблемы
- Компонент без кеша. Тяжёлая выборка выполняется при каждом просмотре.
- Неверная инвалидация. Кеш очищается чаще, чем обновляются данные.
- N+1 запрос. Связанные данные запрашиваются отдельно для каждого товара.
- Большие свойства и инфоблоки. Страница получает больше полей, чем отображает.
- Синхронный обмен. Импорт каталога конкурирует с покупателями за базу и диск.
- Тяжёлые обработчики событий. Код выполняется на каждом хите или изменении элемента.
- Внешние сервисы. CRM, доставка или цены отвечают без тайм‑аута и очереди.
- Фронтенд. Избыточный JavaScript, изображения и сторонние виджеты замедляют уже полученную страницу.
Композитный режим может улучшить отдачу публичных страниц, но не исправляет тяжёлую бизнес‑логику, медленный поиск или неверную архитектуру обмена.
Порядок исправления
Сделайте контрольный замер, устраните один подтверждённый узкий участок и повторите тот же сценарий. Начинайте с операций, которые одновременно медленные и часто используются.
Если нужно отделить проблему кода от инфраструктуры, начните с технического аудита. Он дешевле миграции на новый сервер, которая переносит старое узкое место вместе с проектом.