Чтобы включить gzip сжатие, достаточно нескольких строк в конфигурации веб-сервера: на Apache это модуль mod_deflate и директивы в .htaccess, на nginx - параметр gzip on в конфиге. Текстовые файлы - HTML, CSS, JS - начинают передаваться в 3-5 раз меньшими, и страницы заметно ускоряются без единой правки кода. Brotli - более современный алгоритм от Google: жмёт на 15-20 процентов сильнее, но доступен не на каждом хостинге. Начните с проверки: возможно, сжатие у вас уже работает.

Что сжимается, а что нет. Сжатие имеет смысл только для текста: HTML, CSS, JS, SVG, JSON, XML-фиды. Картинки JPEG и WebP, видео и архивы уже сжаты своими форматами - повторная упаковка лишь греет процессор. Правильная настройка перечисляет типы файлов явно, а не жмёт всё подряд.

Как проверить, включено ли gzip сжатие на сайте

Откройте сайт в Chrome, нажмите F12, вкладка Network, обновите страницу и кликните по первому запросу. В заголовках ответа ищите строку content-encoding: если там gzip или br - сжатие работает. Второй способ - онлайн-проверки вроде giftofspeed или проверка ответа сервера в Яндекс Вебмастере: они покажут и факт сжатия, и экономию в килобайтах.

Проверяйте не только главную страницу: частая ситуация - HTML сжимается, а CSS и JS отдаются как есть, потому что в конфигурации перечислен только text/html. Прогоните по одному файлу каждого типа.

Gzip или Brotli: что выбрать для сайта

КритерийGzipBrotli
Степень сжатия текстаВысокая, в 3-5 разНа 15-20% лучше gzip
Поддержка браузерамиВсе, включая древниеВсе современные (это 96%+ трафика)
Доступность на хостингах РБПрактически вездеНе везде, чаще на VPS
Нагрузка на процессорНизкаяВыше на высоких уровнях сжатия
ВыводОбязательный минимумВключайте, если сервер умеет

Спорить тут не о чем: браузер сам сообщает серверу, какие алгоритмы понимает, и сервер отдаёт лучший доступный. Включённый Brotli не отменяет gzip - они работают вместе, каждый для своей аудитории.

Как включить сжатие на Apache и nginx

На виртуальном хостинге с Apache сжатие включается в файле .htaccess в корне сайта: директива AddOutputFilterByType DEFLATE с перечислением типов - text/html, text/css, application/javascript, image/svg+xml и других текстовых форматов. На многих панелях хостинга есть готовый переключатель «Сжатие gzip» - тогда и .htaccess не нужен.

На VPS с nginx сжатие настраивается в конфиге сервера: gzip on, gzip_comp_level 5, gzip_types со списком типов, gzip_min_length около 1024, чтобы не жать крошечные ответы. Для Brotli добавляется модуль brotli с аналогичными параметрами. После правок - проверка конфига и перезапуск nginx.

Не сжимайте дважды. Если сайт работает через Cloudflare или другой CDN, сжатие может выполняться уже на их стороне. Двойная упаковка не уменьшит файлы, но добавит нагрузку и иногда ломает отдачу. Проверьте заголовки ответа именно вашего сервера и решите, кто сжимает: CDN или origin.

Настроим сжатие и кэширование за один день

Проверим, что и как отдаёт ваш сервер, включим gzip или Brotli для всех текстовых форматов, настроим заголовки кэширования и покажем экономию в цифрах.

Настроить сжатие

Почему сжатие включено, а PageSpeed всё равно ругается

Типовых причин четыре. Первая - сжимается только HTML, а тяжёлые CSS и JS идут мимо: смотрите список типов в конфигурации. Вторая - хостинг сжимает статику, но не динамические ответы PHP, или наоборот. Третья - низкий уровень сжатия: единица вместо разумных 5-6. Четвёртая - PageSpeed ругается не на сжатие, а на сам вес: сжатый мегабайт скриптов остаётся большим мегабайтом. Тогда сначала минификация CSS и JS и ревизия лишнего, потом сжатие доделает остальное.

Сжатие - самая дешёвая оптимизация из существующих: полчаса работы один раз, экономия на каждом визите годами. Удивительно, сколько сайтов живут без неё.Команда Alavir

Частые вопросы о сжатии на сервере

Замедляет ли gzip сжатие сам сервер?
Нагрузка есть, но на уровнях 4-6 она незаметна даже на слабых VPS. Для статики её можно убрать совсем: заранее сжатые версии файлов отдаются без работы процессора. Проблемы возможны только на максимальных уровнях сжатия - использовать их незачем.
Хостинг не даёт менять конфигурацию - как включить сжатие?
Сначала поищите переключатель в панели хостинга - он есть у большинства. Нет - напишите в поддержку хостинга, это стандартный запрос. Совсем нет вариантов - сжатие можно включить на уровне PHP или через CDN, а заодно задуматься о переезде.
Что лучше для Битрикс: сжатие модулем или на сервере?
На сервере: это быстрее и надёжнее, чем сжатие силами PHP. Модуль компрессии в Битрикс - запасной вариант для хостингов, где серверное сжатие недоступно. Включать оба одновременно не нужно.
Сколько баллов PageSpeed даёт включение gzip?
Зависит от того, сколько несжатого текста гонял сайт. Типовой случай: минус 200-400 КБ передаваемого веса и плюс 3-10 баллов на мобильном. Точный ответ даст замер до и после - делается за 10 минут.

Проверка занимает минуту, настройка - от получаса: мало где ещё столько же пользы на единицу усилий. Полная последовательность работ по скорости - в руководстве как ускорить сайт. А если предпочитаете отдать всё разом, подключим в рамках доработки сайта: сжатие, кэширование, минификация и контрольные замеры, на постоянной основе - поддержка с контролем скорости. Консультация бесплатная.