← Вернуться к списку статей

Кэширование в Bitrix: как ускорить сайт в 10 раз

★ ★ ★ ★ ★
Кэширование в Bitrix: как ускорить сайт в 10 раз

Сайт на платформе Bitrix — это мощный инструмент, который по умолчанию не требует глубоких знаний программирования для создания интернет-магазина или корпоративного портала. Однако за этой простотой скрывается серьезная проблема: без правильной настройки кэширования даже самый простой сайт может тормозить под нагрузкой, а при наличии большого количества товаров — работать с лагами на 2–5 секунд.

Почему Bitrix тормозит и что такое кэширование

Bitrix работает по принципу «все запросы выполняются каждый раз». Когда пользователь открывает страницу, сервер выполняет PHP-код, строит SQL-запросы к базе данных, собирает контент компонентов, формирует шаблон страницы и отдает его клиенту. При повторном обращении тот же процесс повторяется заново.

Кэширование — это стратегия хранения результата выполнения запроса в промежуточном хранилище (файле, памяти или базе), чтобы при следующем обращении не выполнять всю цепочку вычислений заново. Это дает прирост скорости от 5 до 10 раз и более.

Уровень 1: Физическое кэширование запросов

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

  • Bitrix генерирует уникальный ключ кэша на основе параметров компонента (фильтры, сортировка, страница).
  • При первом запросе выполняется SQL-запрос и результат сохраняется в файл.
  • При повторном запросе с теми же параметрами возвращается результат из файла без выполнения PHP-кода компонента.

Настройка включается через меню «Администрирование — Настройки продукта — Кэширование».

Уровень 2: Файловое кэширование шаблонов

Большая часть тормозов возникает не в базе данных, а при сборке страницы. Bitrix каждый раз подтягивает файлы шаблонов из папок «templates» и выполняет их.

Файловое кэширование сохраняет скомпилированные шаблоны на диск. Теперь сервер не читает исходный код шаблона и не обрабатывает его при каждом запросе, а сразу отдает уже готовую HTML-страницу из кэша.

Включается аналогично: «Администрирование — Настройки продукта — Кэширование — Файловое кэширование».

Уровень 3: Динамическое кэширование компонентов

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

В настройках компонента (например, «Новости» или «Товары») есть параметр «Длительность кэширования». Если задать значение 0 — кэш отключен. Если задать 60 — результат компонента будет храниться в файле 60 секунд.

Это особенно важно для тяжелых компонентов, таких как:

  • Каталог товаров с фильтрами и сортировкой
  • Получение характеристик товаров
  • Страницы с большим количеством новостей
  • Сложные фильтры (по цене, бренду, категории)

Уровень 4: Кэширование на уровне сервера

Bitrix — это не только движок. Это веб-приложение, которое работает под управлением Apache или Nginx.

Apache использует модуль mod_cache и mod_expires для кеширования статических файлов (картинки, CSS, JS). Nginx имеет встроенный механизм кэширования на уровне прокси — он может отдавать статику из своего диска без обращения к PHP-серверу.

Для Bitrix это критически важно. При правильной настройке Nginx отдает картинки и стили напрямую, а только при необходимости обращается к серверу для генерации HTML-страницы.

Уровень 5: Внутреннее кэширование Bitrix (Bitrix::setCache)

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

Пример использования:

if (!Bitrix\Main\Application::getInstance()->getCache()->isSet('calc_price')) { $price = calculatePrice($product); Bitrix\Main\Application::getInstance()->getCache()->set('calc_price', $price, 3600); } $price = Bitrix\Main\Application::getInstance()->getCache()->get('calc_price');

Здесь результат сложного расчета цены сохраняется в памяти на 1 час. При следующем запросе — возвращается мгновенно.

Уровень 6: CDN и внешнее кэширование

CDN (Content Delivery Network) — это географически распределенная сеть серверов, которые хранят копии вашего контента. Когда пользователь открывает сайт, CDN отдает ему данные из ближайшего узла.

Bitrix поддерживает интеграцию с CDN через настройки в админке: «Администрирование — Настройки продукта — Медиафайлы» и настройку внешнего хостинга статических файлов.

Уровень 7: Очистка кэша и стратегии инвалидации

Кэш — это палка о двух концах. Если вы изменили цену товара, но не очистили кэш, пользователь увидит старую цену. Если вы убрали товар из ассортимента, но не очистили кэш — он продолжит отображаться.

Bitrix предоставляет три способа очистки:

  1. Ручная очистка через меню «Администрирование — Очистка кэша» — подходит для редких случаев.
  2. Автоматическая очистка при изменении данных — включается в настройках компонента. При обновлении товара или новости соответствующий файл кэша удаляется автоматически.
  3. Динамическое обновление — Bitrix сам определяет, что данные устарели (например, по дате обновления товара) и очищает кэш без участия администратора.

Практическая рекомендация: как настроить оптимально

Начните с базовых настроек:

  1. Включите физическое кэширование запросов.
  2. Включите файловое кэширование шаблонов.
  3. Для компонентов «Каталог», «Новости», «Секция» установите длительность кэширования от 300 до 1800 секунд.
  4. Настройте сервер Apache или Nginx для кеширования статики.
  5. Для тяжелых операций используйте внутреннее кэширование через Bitrix::setCache().
  6. Подключите CDN для картинок и стилей.

После настройки обязательно протестируйте сайт в реальном режиме, а не в тестовом — поведение кэша может отличаться при наличии модулей интеграции (CRM, маркетинговые инструменты).

Итог

Кэширование в Bitrix — это многослойная система. Правильно настроенный кэш превращает даже простой сайт на движке в высокопроизводительную систему. Ключ к успеху — понимание, что кэшируется: база данных, шаблоны или результаты компонентов. Начните с включения физического и файлового кэширования — это даст 5–7 раз прирост скорости бесплатно. Остальные уровни требуют времени на настройку, но дают еще больший эффект.