Ускоряем загрузку сайта на 1С-Битрикс: настройка сжатия CSS и JS

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

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • 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 Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Оптимизация загрузки: сжатие CSS и JS на 1С-Битрикс

Сайт грузится 5 секунд, а GTmetrix показывает, что CSS и JS занимают 80% объёма. Типичная картина для среднего Битрикс-проекта: исходные файлы весят 500 KB–2 MB, и без сжатия каждый мегабайт передаётся как есть. Настройка HTTP-сжатия (Gzip или Brotli) уменьшает объём передаваемых данных в 3–7 раз для текстовых ресурсов — это один из самых быстрых способов ускорить загрузку без изменения кода. Мы настраиваем такие решения на десятках проектов, от простых корпоративных до крупных каталогов.

Встроенные инструменты сжатия Битрикс

Битрикс включает собственный механизм минификации и объединения CSS/JS, доступный в Настройки → Производительность → Сжатие. Он работает на уровне PHP: собирает подключённые через CMain::AddCSSLink() и CMain::AddHeadScript() файлы, минифицирует их и сохраняет в /bitrix/cache/css/ и /bitrix/cache/js/. Результирующие файлы получают хеш в имени — браузер кеширует их агрессивно.

Важно: минификация Битрикс работает только с файлами, подключёнными через API Битрикс. CSS и JS, подключённые напрямую в шаблоне через <link> и <script>, не обрабатываются. На legacy-проектах нередко половина файлов подключена «мимо» API. Мы переводим такие подключения на штатные методы — это обязательный этап аудита.

Почему минификации недостаточно для реального ускорения?

Минификация уменьшает размер файлов на диске, но при передаче по сети данные всё равно идут «как есть». Без сжатия на уровне HTTP (gzip/Brotli) вы теряете 70–80% потенциального выигрыша. Например, минифицированный файл jQuery UI может весить 150 KB, а с gzip — всего 40 KB. Разница заметна на каждом запросе.

Как настроить gzip на nginx для Битрикса?

Конфигурация в 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. Brotli сжимает ещё лучше — выигрыш до 20% по сравнению с gzip. Настройка аналогична, но требует модуля ngx_brotli.

Что даёт Brotli по сравнению с gzip?

Brotli эффективнее gzip в 1.2–1.3 раза по степени сжатия. Для современных браузеров он предпочтительнее, но требует модуля nginx. Настройка:

brotli on;
brotli_types text/css application/javascript application/json text/javascript;
brotli_comp_level 6;

Лучше оставить gzip как fallback для старых клиентов. Оба метода можно комбинировать: gzip_static on для предварительно сжатых файлов.

Что проверить при настройке

Частая ошибка: двойное сжатие — gzip включён в nginx, но PHP-FPM или сам Битрикс тоже сжимают ответ. Симптом: браузер выдаёт ошибку декодирования или файл скачивается вместо выполнения. Проверяется через curl -I -H "Accept-Encoding: gzip" https://mysite.ru/bitrix/cache/css/file.css — в заголовках должно быть Content-Encoding: gzip.

Для минифицированных файлов с хешем в имени рекомендуется настроить статическое (pre-compressed) сжатие через gzip_static on — nginx отдаёт заранее сжатый .gz-файл без нагрузки на CPU в реальном времени.

Как проверить сжатие вручную?Используйте curl:

curl -I -H "Accept-Encoding: gzip, br" https://example.com/bitrix/cache/css/s1/main.css

В ответе ищите Content-Encoding: gzip или Content-Encoding: br. Если заголовка нет — сжатие не работает.

Кейс из нашей практики

Корпоративный сайт на Битрикс «Стандарт» — 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.

Метод Размер (исх.) Размер (сжат) Запросы
Без сжатия 1,4 MB 35
Минификация 180 KB 48 KB (gzip) 5
Brotli 180 KB 40 KB 5

Сравнение алгоритмов:

Алгоритм Степень сжатия Нагрузка CPU Поддержка браузерами
gzip (уровень 5) 7–10 раз Низкая 99.9%
Brotli (уровень 6) 8–12 раз Средняя 95% (современные)

Что входит в работу

  • Аудит подключения ресурсов: выявляем «прямые» вставки CSS/JS, которые не обрабатываются Битрикс.
  • Перевод всех файлов на API: AddCSSLink(), AddHeadScript().
  • Включение штатной минификации и объединения в административной панели.
  • Настройка gzip/Brotli на сервере (nginx/Apache).
  • Проверка от двойного сжатия и тестирование на всех страницах.
  • Подготовка отчёта с результатами до/после.

Процесс работы

  1. Аналитика — изучаем структуру шаблонов, способ подключения ресурсов, текущий стек сервера.
  2. Проектирование — выбираем оптимальную схему (минификация + gzip или Brotli, статическое сжатие).
  3. Реализация — вносим изменения в конфигурацию nginx, настраиваем Битрикс, правим шаблоны при необходимости.
  4. Тестирование — проверяем заголовки HTTP, скорость загрузки (Lighthouse, WebPageTest), отсутствие ошибок.
  5. Деплой — применяем на бой, мониторим в течение недели.

Настройка занимает от 4 до 8 часов в зависимости от объёма legacy-кода. Закажите аудит скорости — выявим узкие места и настроим сжатие под ключ. Гарантируем стабильную работу — все изменения обратимы. У нас более 5 лет опыта в оптимизации Битрикс-проектов.

Полезные ссылки: