Налаштування стиснення CSS та JS на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування стиснення CSS та JS на 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування стиснення 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, перевірка відсутності подвійного стиснення.