1С-Битрикс: ускоряем сайт на «Управлении сайтом»

Опубликовано: 01.09.2026

Разговор об ускорении сайта на БУС стоит начать с неприятного факта: чаще всего дело не в платформе, а в том, как с ней обошлись. Битрикс содержит развитый набор инструментов кэширования, и большинство из них по умолчанию либо выключены, либо настроены не под ваш проект.

Композитный сайт

Самый заметный по эффекту механизм. Идея в разделении страницы на две части: статическую, одинаковую для всех, и динамическую, персональную.

Работает это так: первый посетитель получает страницу обычным образом, и её статическая версия сохраняется. Следующие посетители получают эту готовую копию практически мгновенно — до обращения к PHP и базе. Уже после отрисовки страницы браузер отдельным запросом подгружает динамику: корзину, имя пользователя, персональные блоки.

Выигрыш на время до первого байта может быть кратным. Но композит требует аккуратности: любой персонализированный блок, не вынесенный в динамическую область, будет показан всем посетителям одинаковым. Классическая ошибка — увидеть в чужой корзине свои товары.

Инфоблоки версии 2.0

Если проект существует давно, стоит проверить версию инфоблоков. Различие принципиальное:

  • Версия 1.0 хранит все значения свойств в одной общей таблице. Выборка с фильтром по нескольким свойствам превращается в набор соединений этой таблицы с самой собой.
  • Версия 2.0 создаёт для каждого инфоблока отдельную таблицу, где свойства — обычные колонки. Фильтрация становится нормальным запросом с возможностью проиндексировать нужные поля.

На каталоге с десятком свойств и фасетным фильтром разница в скорости выборки может быть в разы. Переключение выполняется в настройках инфоблока, но требует проверки: свой код, обращающийся к таблицам напрямую, придётся поправить.

Отложенные функции

Механизм, о котором часто забывают, хотя он напрямую связан с кэшированием. Отложенные функции позволяют вывести в <head> данные, которые становятся известны только при отрисовке тела страницы — заголовок, метатеги, хлебные крошки.

Без них возникает соблазн отключить буферизацию или кэш на странице ради правильного заголовка. Это ровно тот случай, когда попытка решить мелкую задачу обнуляет всю оптимизацию.

Настройка кэша компонентов

Кэширование в Битрикс многоуровневое, и понимать разницу полезно:

  • Кэш компонента — результат работы отдельного компонента. Настраивается временем жизни и типом кэширования.
  • Кэш комплексного компонента — кэш целого раздела вроде каталога.
  • Управляемый кэш — сбрасывается автоматически при изменении данных, а не по таймеру. Для каталога подходит лучше, чем фиксированное время жизни.
  • HTML-кэш — тот самый композит.

Практический совет: включайте управляемый кэш там, где данные меняются редко и непредсказуемо. Время жизни в час на разделе меню означает, что после правки пункта меню изменения появятся не сразу — и кто-то потратит день на поиск «бага».

Что ещё проверить

Помимо кэша, на скорость влияют вещи попроще:

  • Версия PHP. Переход на актуальную ветку 8.x даёт заметный прирост сам по себе, без единой правки кода. Ветки 7.x сняты с поддержки — на них не должно остаться ни одного боевого проекта.
  • OPcache. Должен быть включён и иметь достаточный объём памяти — иначе PHP компилирует одни и те же файлы на каждом запросе.
  • Изображения. Каталог, отдающий исходные фотографии по 4 МБ вместо превью, не спасёт никакой кэш.
  • Монитор производительности. Встроенный инструмент Битрикса показывает медленные запросы и компоненты — начинать диагностику стоит с него.

Типичные ошибки

Чаще всего оптимизацию обнуляют не сложные причины, а простые:

  • Кэш отключён «временно на время разработки» — и так и остался выключенным на бою.
  • В шаблоне вызывается прямой запрос к базе внутри цикла по элементам каталога.
  • Композит включён, но персональные блоки не вынесены в динамику — и его пришлось отключить обратно.
  • Свойства, по которым идёт фильтрация, не проиндексированы в инфоблоке.

Что в итоге

Разумный порядок работ: посмотреть монитор производительности, включить композит и разобраться с динамическими областями, перевести инфоблоки на 2.0, настроить управляемый кэш, проверить версию PHP и OPcache. Этот набор закрывает большинство случаев «Битрикс тормозит» без единой строки нового кода.

← Вернуться к статьям