Gzip — первое, что проверяет аудитор PageSpeed после установки Битрикс. Мы часто видим: он не настроен совсем или настроен неправильно. Сжимается HTML, но не JS и CSS, или compression level выставлен на максимум и жрёт CPU без ощутимой пользы. Типичный HTML страницы каталога — 80–200 КБ, после Gzip 6 — 15–35 КБ. Экономия 75–80% трафика на каждый некэшированный HTML-запрос. Для магазина с 10 000 посетителей в день это существенно снижает нагрузку на сервер и улучшает LCP. Мы уже помогли более чем 500 проектам настроить сжатие — опыт более 10 лет.
Хотите настроить gzip правильно? Закажите аудит и настройку — типичный проект занимает от 2 до 4 часов, стоимость рассчитывается индивидуально.
Как gzip влияет на скорость загрузки?
Сжатие уменьшает объём передаваемых данных. Для HTML — в 4-6 раз, для CSS/JS — в 3-5 раз. Например, страница каталога без сжатия весит 180 КБ, со сжатием — 25 КБ. На мобильном интернете это даёт экономию 3-5 секунд загрузки. Gzip поддерживается всеми современными браузерами, и поисковики учитывают скорость как фактор ранжирования.
Сравнение: gzip_static vs динамическое сжатие
Статическое pre-gzip (gzip_static) в 3 раза менее затратно по CPU, чем динамическое сжатие, так как файлы сжимаются один раз при деплое. Динамическое сжатие обрабатывает каждый запрос, что при уровне 6 даёт отличное сжатие, но нагружает CPU. Для статических ресурсов (CSS, JS) gzip_static предпочтительнее. Вот таблица сравнения:
| Параметр | gzip_static | Динамическое gzip |
|---|---|---|
| Нагрузка CPU | Нет (отдача готовых файлов) | 3x на уровне 6 |
| Скорость отдачи | Максимальная | Чуть медленнее |
| Обновление файлов | Требуется пересоздание .gz | Автоматически |
| Поддержка | nginx только | Все сервера |
Эффективность сжатия по типам контента
| Тип контента | Размер без сжатия | Размер со сжатием (gzip 6) | Экономия |
|---|---|---|---|
| HTML страницы каталога | 180 КБ | 25 КБ | 86% |
| CSS-файл (bootstrap) | 150 КБ | 35 КБ | 77% |
| JavaScript (jquery) | 85 КБ | 20 КБ | 76% |
| JSON-ответ API | 50 КБ | 10 КБ | 80% |
Почему gzip static лучше для высоконагруженных проектов?
На проектах с миллионами запросов к статике нагрузка CPU от динамического сжатия может составлять 10–15% всех ресурсов. gzip_static полностью снимает её. В одном из наших проектов (каталог 1 млн товаров) переход на gzip_static снизил CPU с 60% до 35%, а скорость ответа статики сократилась на 200 мс. Получите консультацию, если хотите внедрить gzip_static на своём проекте.
Как настроить gzip в nginx: пошаговая инструкция
Стандартная установка Битрикс через setup.sh настраивает базовый Gzip, но часто пропускает важные MIME-типы и не включает gzip_vary.
Шаг 1: Базовая конфигурация
Полная конфигурация в блоке http или server:
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 1024;
gzip_types
text/plain
text/css
text/xml
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/xml+rss
application/rss+xml
application/atom+xml
image/svg+xml
font/ttf
font/otf
application/vnd.ms-fontobject;
gzip_vary on — критически важен при наличии CDN или прокси. Добавляет заголовок Vary: Accept-Encoding, чтобы кэши не отдавали сжатый контент браузерам без поддержки Gzip.
gzip_min_length 1024 — не сжимаем файлы меньше 1 КБ. Overhead Gzip-заголовков и CPU-затраты не оправданы для маленьких ответов.
gzip_comp_level 6 — уровни 7–9 дают менее 2% дополнительного сжатия при 2–3x росте CPU. Уровень 1–2 быстрый, но сжимает на 15–20% хуже. Согласно тестам, уровень 6 даёт наилучшее соотношение сжатия и производительности.
Шаг 2: Включение gzip_static
gzip_static on; — при запросе app.js nginx ищет app.js.gz. Если найден — отдаёт без затрат CPU на компрессию.
Генерация .gz-файлов в деплой-скрипте:
find /var/www/site/public/build -name "*.js" -o -name "*.css" | xargs -P4 -I{} gzip -k -6 {}
Шаг 3: Проверка двойного сжатия
Битрикс умеет сжимать ответ через PHP (ob_gzhandler). Если включено и в PHP, и в nginx — браузер получает дважды сжатый контент. Проверяем в php.ini или bitrix/php_interface/dbconn.php — zlib.output_compression должно быть Off. В настройках Битрикс: «Настройки → Настройки продукта → Сжатие страниц» отключить, если сжатие делает nginx.
Что выбрать: gzip_static или динамическое сжатие на Apache?
На серверах с nginx (рекомендация Битрикс) конфигурация проще и производительнее — одноразовое сжатие, статическое pre-gzip. Apache требует модуль mod_deflate, который загружает больше CPU. На shared-хостингах выбор обычно ограничен. В любом случае, gzip должен быть включён на стороне веб-сервера, а не через PHP.
Конфигурация Apache
Для серверов Битрикс на Apache (bitrix-env использует nginx как фронтенд, но на shared-хостингах часто чистый Apache):
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css application/javascript
AddOutputFilterByType DEFLATE application/json application/xml
AddOutputFilterByType DEFLATE image/svg+xml font/ttf
DeflateCompressionLevel 6
# Не сжимать уже сжатые форматы
SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png|zip|gz|br)$ no-gzip dont-vary
Header append Vary Accept-Encoding
</IfModule>
Типичные ошибки конфигурации Битрикс
Двойное сжатие через PHP и nginx. Мы уже упоминали — отключаем zlib.output_compression.
Отсутствие gzip_proxied any — если сайт за балансировщиком или CDN, nginx без этой директивы не сжимает ответы для проксированных запросов (заголовок Via присутствует).
application/json не в списке. Ответы API Битрикс (компоненты, работающие в режиме AJAX) возвращают JSON. Без сжатия JSON-ответы каталога с 50 товарами весят 40–80 КБ, со сжатием — 8–15 КБ.
Проверка сжатия
# Проверяем сжатие ответа
curl -sI -H "Accept-Encoding: gzip" https://site.ru/ | grep -i content-encoding
# Content-Encoding: gzip
# Сравниваем размеры
curl -s --compressed https://site.ru/ | wc -c
curl -s -H "Accept-Encoding: identity" https://site.ru/ | wc -c
Инструмент Check GZIP compression на GiftOfSpeed показывает сжатие для любого URL вместе с экономией в байтах.
Что входит в нашу услугу по настройке gzip
- Аудит текущей конфигурации сервера и Битрикс.
- Настройка gzip на nginx или Apache с проверкой всех MIME-типов.
- Оптимизация уровня сжатия и кэширования.
- Настройка gzip_static для статических ресурсов.
- Проверка двойного сжатия, корректировка PHP и Битрикс.
- Тестирование через PageSpeed, GTmetrix и curl.
- Документация по внесённым изменениям.
- Консультация и поддержка в течение недели после настройки.
Мы гарантируем результат: ускорение загрузки в тестах на 30-400% (в зависимости от текущего состояния). Если вы сомневаетесь в настройках — свяжитесь с нами, оценим проект бесплатно. Получите консультацию по настройке gzip для вашего Битрикс-проекта.







