Bitrix — мощная, но капризная система. От правильной настройки зависит, будет ли сайт летать или тормозить на каждом клике. Ниже — чек-лист и практические советы для повышения производительности и стабильности проекта.
🧩 1. Проверка производительности ядра
Где: Настройки → Производительность → Панель производительности
Что делать:
-
Проведите тест производительности и запишите индекс.
-
Индекс ниже 50 — система требует оптимизации.
-
Используйте cron-тестирование в разные часы, чтобы увидеть колебания нагрузки.
⚠️ Ловушка: многие разработчики игнорируют эту панель. Без неё сложно объективно оценить эффективность изменений.
⚙️ 2. PHP и серверная конфигурация
Рекомендуемые версии: PHP 8.1+, MariaDB 10.6+, nginx 1.20+, PHP-FPM, OPcache включён.
Проверить:
php -i | grep opcache.enable
⚠️ Ловушка: PHP-модули, установленные по умолчанию, могут конфликтовать. Убедитесь, что отключены
xdebug,intl,imagick, если не используются на продакшене.
🧠 3. Включите композитный сайт
Где: Настройки → Производительность → Композитный сайт
Что даёт: моментальная загрузка для повторных посетителей.
Особенности:
-
Не кеширует динамические блоки (корзина, пользовательские данные).
-
Требует корректной вёрстки с
data-composite-атрибутами.
⚠️ Ловушка: если в шаблоне используются нестандартные AJAX-компоненты, композит может «сломать» отображение. Проверяйте поведение в инкогнито.
💾 4. Настройка кеширования компонентов
-
Используйте кеширование на уровне компонента и в шаблонах.
-
Разделяйте кеш по пользователям, если контент персонализирован.
-
Для фильтров каталога — включите фасетный индекс.
⚠️ Ловушка: «умный фильтр» без фасетного индекса может генерировать десятки SQL-запросов и резко увеличивать нагрузку на MySQL.
🗄️ 5. Оптимизация БД и индексов
Где: Настройки → Производительность → Индексы БД
-
Запустите анализ SQL-запросов.
-
Создайте индексы на часто фильтруемых полях (например,
PROPERTY_COLOR,ACTIVE,CATALOG_PRICE_1).
⚠️ Ловушка: после обновлений Битрикс иногда сбрасывает индексы при изменении структуры инфоблоков — перепроверьте их вручную.
📦 6. Используйте Managed Cache и Memcached/Redis
-
В
bitrix/.settings.phpможно указать внешний кеш-хранилище. -
Рекомендуется Redis (для кластеров) или Memcached (для одиночных серверов).
-
Пример:
'cache' => [ 'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, ],
⚠️ Ловушка: если кеш-сервис падает, Bitrix резко замедляется. Настройте мониторинг и авто-рестарт.
🔌 7. Удалите неиспользуемые модули
Где: Marketplace → Установленные решения
-
Проверьте, какие модули реально нужны.
-
Отключите лишние (особенно старые или кастомные).
-
Сделайте резервную копию перед удалением.
⚠️ Ловушка: некоторые решения подключают свои init-скрипты через
init.phpи продолжают грузиться даже после деактивации. Проверяйте вручную.
🧹 8. Чистка логов и временных файлов
-
Папки
/bitrix/cache/,/bitrix/managed_cache/,/upload/tmp/часто переполняются. -
Добавьте cron-задачу для автоочистки каждые 24–48 часов.
⚠️ Ловушка: полная очистка кеша через админку может вызвать пик нагрузки — делайте её в ночное время.
🌐 9. Nginx + Bitrix конфигурация
-
Используйте связку nginx + PHP-FPM.
-
Настройте gzip, HTTP/2, кеширование статики через nginx.
-
Пример:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|svg)$ { expires 30d; access_log off; add_header Cache-Control "public"; }
⚠️ Ловушка: не кэшируйте
/bitrix/целиком — можно сломать AJAX-компоненты.
🧱 10. Статика и CDN
-
Включите «Отдачу статики с другого домена».
-
Настройте CDN (Яндекс, Cloudflare, BunnyCDN).
-
Проверьте корректность абсолютных путей в шаблонах.
⚠️ Ловушка: если сайт работает по HTTPS, CDN без SSL-сертификата вызовет ошибки смешанного контента.
🪶 11. Оптимизация шаблонов
-
Минимизируйте количество подключаемых CSS/JS.
-
Используйте
CJSCore::Init()только по необходимости. -
Объединяйте JS-скрипты, используйте
deferиasync.
⚠️ Ловушка: часто JS-инициализация компонентов вынесена в шаблон, и при включении кеша ломается порядок загрузки — проверяйте в DevTools.
🧩 12. Автозагрузка компонентов и init.php
-
Проверьте
/bitrix/php_interface/init.phpна лишние include-файлы. -
Разделяйте код по событиям и классам, не подключайте напрямую десятки файлов.
⚠️ Ловушка: каждое
include= обращение к файловой системе → замедление.
Оптимально — объединить код в один autoload-файл или composer-загрузчик.
📊 13. Логирование медленных SQL
Включить:
define("DEBUG_SLOW_QUERIES", true); define("SLOW_QUERY_TIME", 1);
Результат: /bitrix/slow_queries.log — список «тяжёлых» запросов.
⚠️ Ловушка: не забывайте отключить логирование на продакшене, чтобы не переполнить диск.
🧭 14. Разделение нагрузки (кластеризация)
Bitrix поддерживает кластеризацию из коробки: база, кеш, сессии, балансировщик.
Подходит для высоконагруженных сайтов и Bitrix24-корпоративных порталов.
⚠️ Ловушка: кластер требует лицензии уровня «Бизнес» и выше — на «Малый бизнес» не работает.
🧰 15. Мониторинг и автоматизация
-
Подключите Zabbix / Netdata / Bitrix Cloud Monitor.
-
Настройте алерты по нагрузке на CPU, RAM, MySQL, Redis.
-
Используйте
bitrixenvдля стандартизированной настройки окружения.
⚠️ Ловушка: отсутствие мониторинга приводит к «внезапным» падениям — лучше предотвратить, чем чинить.
✅ Итог
Оптимизация Bitrix — это не один шаг, а комплекс мер: от серверной настройки до аудита шаблонов и кеша.
Если внедрить хотя бы 10 из 15 пунктов, производительность сайта вырастет на 30–70 % без замены железа.