Налаштування стиснення CSS та JS на 1С-Бітрікс
Без стиснення вихідні CSS та JS файли Бітрікс-проєкту передаються клієнту в оригінальному розмірі. Для середнього проєкту це 500 KB–2 MB сумарно. Gzip або Brotli стиснення зменшує обсяг переданих даних у 3–7 разів для текстових ресурсів — це один із найпростіших у реалізації способів прискорення сайту.
Вбудовані інструменти стиснення Бітрікс
Бітрікс включає власний механізм мінімізації та об'єднання CSS/JS, доступний у Налаштування → Продуктивність → Стиснення. Він працює на рівні PHP: збирає файли, підключені через CMain::AddCSSLink() і CMain::AddHeadScript(), мінімізує їх і зберігає в /bitrix/cache/css/ та /bitrix/cache/js/. Результуючі файли отримують хеш у назві — браузер кешує їх агресивно.
Важливо: мінімізація Бітрікс працює лише з файлами, підключеними через API Бітрікс. CSS та JS, підключені безпосередньо в шаблоні через <link> і <script>, не обробляються. На legacy-проєктах нерідко половина файлів підключена «повз» API.
Стиснення на рівні nginx
Мінімізація зменшує розмір файлів, але стиснення при передачі (gzip/Brotli) — окреме завдання. Конфігурація nginx:
gzip on;
gzip_types text/css application/javascript application/json text/javascript;
gzip_min_length 1024;
gzip_comp_level 5;
gzip_vary on;
gzip_comp_level 5 — баланс між ступенем стиснення та навантаженням на CPU. Рівні 6–9 дають мінімальний приріст стиснення при значно більшому навантаженні. gzip_vary on додає заголовок Vary: Accept-Encoding, необхідний для коректної роботи кешуючих проксі та CDN.
Що перевірити при налаштуванні
Поширена помилка: gzip увімкнено в nginx, але PHP-FPM або сам Бітрікс також стискають відповідь — виникає подвійне стиснення. Симптом: браузер видає помилку декодування або файл завантажується замість виконання. Перевіряється через curl -I -H "Accept-Encoding: gzip" https://mysite.ua/bitrix/cache/css/file.css — у заголовках має бути Content-Encoding: gzip.
Для мінімізованих файлів з хешем у назві рекомендується налаштувати статичне (pre-compressed) стиснення через gzip_static on — nginx віддає заздалегідь стиснений .gz-файл без навантаження на CPU в реальному часі.
Кейс і типовий результат
Корпоративний сайт на Бітрікс «Стандарт», 12 CSS та 23 JS файли підключені через API. Після увімкнення мінімізації Бітрікс та gzip на nginx: сумарний розмір CSS+JS знизився з 1,4 MB до 180 KB (мінімізація) → 48 KB (gzip). Кількість HTTP-запитів до CSS скоротилася з 12 до 2, до JS — з 23 до 3. Час до DOMContentLoaded знизився на 0,8 с на мобільних з'єднаннях 3G.
Налаштування займає 4–8 годин: аудит способів підключення CSS/JS, перенесення прямих підключень на API Бітрікс, увімкнення мінімізації, налаштування gzip у nginx, перевірка відсутності подвійного стиснення.







