Главная Статьи Оптимизация

Сжатие gzip и Brotli

Страница сайта — это в первую очередь текст: HTML, CSS, скрипты. А текст отлично сжимается. Сжатие на сервере уменьшает то, что отправляется браузеру, в несколько раз — и страница долетает быстрее, особенно на медленном интернете. Это один из самых простых способов ускорить сайт, который часто забывают включить. Разберём, как он работает.

Как это работает

Когда браузер запрашивает страницу, он сообщает серверу: «я умею принимать сжатое». Сервер сжимает текстовые файлы перед отправкой, браузер их распаковывает — и показывает как обычно. Для пользователя всё прозрачно, а по сети летит в разы меньше данных. Два основных алгоритма:

Без сжатия≈ 300 КБ
gzip≈ 90 КБ
Brotli≈ 72 КБ

Примерное сжатие типичной HTML-страницы — точные цифры зависят от содержимого.

Что сжимать, а что нет

Сжатие применяют к текстовым ресурсам: HTML, CSS, JavaScript, SVG, JSON, шрифты в текстовых форматах. А вот картинки (JPEG, PNG, WebP), видео и архивы сжимать повторно не нужно — они уже сжаты своими алгоритмами, и попытка пожать их ещё раз только зря нагрузит сервер, почти не уменьшив размер. Для картинок работает другая оптимизация — про неё статья как сжать изображения.

Как включить

Сжатие настраивается на стороне сервера, и способ зависит от вашего хостинга:

Если не уверены, как это сделать на вашем сервере — это тот вопрос, с которым стоит обратиться в поддержку хостинга. Просьба простая: «включите gzip/Brotli для текстовых ресурсов».

Как проверить, что работает

Откройте инструменты разработчика в браузере (вкладка «Сеть»), обновите страницу и посмотрите заголовки ответа. Если сжатие включено, в ответе будет строка вида:

content-encoding: br

Значение br означает Brotli, gzip — gzip. Если такой строки нет — сжатие не работает, и это первое, что стоит исправить. Также наличие сжатия проверяют онлайн-сервисы скорости и PageSpeed.

Сжатие — часть базовой оптимизации скорости. Рядом стоят время ответа сервера (TTFB), Core Web Vitals и ленивая загрузка картинок — вместе они и дают быстрый сайт.

Коротко

Сжатие gzip и Brotli уменьшает вес текстовых файлов (HTML, CSS, JS) в несколько раз перед отправкой браузеру — страница грузится заметно быстрее, особенно на медленном интернете. gzip должен быть включён всегда, Brotli по HTTPS сжимает ещё плотнее. Картинки и видео повторно не сжимают. Включается на стороне сервера или CDN, часто одной настройкой; если сомневаетесь — попросите поддержку хостинга. Проверить легко: в заголовках ответа должна быть строка content-encoding со значением br или gzip.

Частые вопросы

Что такое gzip и Brotli?
Это алгоритмы сжатия, которыми сервер сжимает текстовые файлы сайта (HTML, CSS, JavaScript) перед отправкой браузеру. Браузер их распаковывает и показывает страницу как обычно, но по сети передаётся в разы меньше данных. gzip поддерживается всеми браузерами, Brotli более новый и сжимает плотнее.
Насколько сжатие ускоряет сайт?
Текстовые ресурсы сжимаются обычно в 3–4 раза, а Brotli — ещё на 15–25% сильнее gzip. Это значит, что страница весом 300 КБ может «долетать» как 70–90 КБ. Выигрыш особенно заметен на мобильном и медленном интернете, где скорость передачи данных ограничена.
Нужно ли сжимать картинки через gzip?
Нет. Картинки (JPEG, PNG, WebP), видео и архивы уже сжаты собственными алгоритмами, и gzip/Brotli почти не уменьшат их размер, только зря нагрузят сервер. Сжатие применяют к текстовым ресурсам, а для картинок используют отдельную оптимизацию — выбор формата и уменьшение веса.
Как включить gzip или Brotli?
Сжатие настраивается на сервере. На обычном хостинге оно часто уже включено или включается галочкой в панели, иначе — парой строк в конфигурации (.htaccess для Apache, настройки Nginx). Через CDN сжатие обычно работает автоматически. Если не уверены — попросите поддержку хостинга включить gzip/Brotli для текстовых ресурсов.
Как проверить, что сжатие работает?
Откройте инструменты разработчика в браузере на вкладке «Сеть», обновите страницу и посмотрите заголовки ответа. Если есть строка content-encoding со значением br (Brotli) или gzip — сжатие работает. Если такой строки нет, сжатие не включено. Наличие сжатия также показывают онлайн-сервисы проверки скорости и PageSpeed.