Gzip
Также: Gzip-сжатие
Gzip — это алгоритм сжатия, которым сервер уменьшает текстовые ответы (HTML, CSS, JS) перед отправкой браузеру. Экономит трафик и ускоряет загрузку без изменения самого кода.
Как работает
Gzip сжимает текстовые файлы на лету перед отправкой. Браузер в запросе сообщает, какие форматы сжатия понимает, через заголовок Accept-Encoding. Если сервер умеет сжимать, он отдаёт сжатый ответ и помечает это заголовком Content-Encoding.
# запрос браузера
Accept-Encoding: gzip, deflate, br
# ответ сервера
Content-Encoding: gzip
Vary: Accept-Encoding
Браузер распаковывает файл незаметно для пользователя. Хорошо сжимается всё текстовое: HTML, CSS, JavaScript, JSON, SVG, шрифты в формате без предварительного сжатия. Уже сжатые форматы — JPEG, PNG, WebP, MP4 — повторно жать бессмысленно, выигрыша не будет. Настраивается gzip на уровне веб-сервера: в Nginx это модуль gzip on, в Apache — mod_deflate.
У сжатия есть уровни — от 1 до 9: чем выше, тем плотнее результат, но тем больше нагрузка на процессор при каждом ответе. Для динамического HTML берут средний уровень, а для статики, которую можно сжать один раз и закэшировать, — максимальный. Под высокой нагрузкой сжатие статики выносят на этап сборки, чтобы сервер отдавал уже готовые файлы.
Почему важно для SEO
Gzip уменьшает вес текстовых ответов часто в 3–4 раза. Меньше байтов — быстрее скачивается страница, особенно на мобильных сетях. Это напрямую влияет на скорость загрузки, а значит на LCP и оценку страницы поисковиком.
Сжатие не влияет на индексацию содержимого — робот получает тот же HTML, просто быстрее. Google в рекомендациях по производительности прямо советует включать сжатие текстовых ресурсов; это одна из базовых проверок в отчётах PageSpeed. Сжатие часто путают с минификацией: минификация убирает лишние символы из кода, gzip сжимает уже готовый ответ. Это разные шаги, и работают они вместе — сначала минифицируют, потом сжимают.
На практике сжатие часто включено для основного HTML, но не распространяется на статику, которую отдаёт отдельный поддомен или сторонний сервис, — там правила приходится настраивать заново. Поэтому наличие Content-Encoding стоит проверять по каждому типу ресурсов, а не только по главной странице. Выигрыш от сжатия тем заметнее, чем крупнее и однообразнее файл: большие JS-бандлы ужимаются сильнее, чем короткие фрагменты кода.
Проверим весь сайт?
Пара минут — и увидите отчёт по каждой странице.
Проверить сайтЧастые ошибки
- Сжатие вообще не включено — текстовые файлы едут в браузер в полном объёме.
- Gzip настроен только на HTML, но не на CSS и JS — самые тяжёлые ресурсы остаются несжатыми.
- Пытаются сжимать картинки и видео — нагрузка на CPU без выигрыша по весу.
- Отсутствует заголовок
Vary: Accept-Encoding— прокси может отдать сжатый ответ клиенту, который его не понимает. - Слишком высокий уровень сжатия на слабом сервере — растёт нагрузка и TTFB.
Как проверить
В DevTools → Network кликните на файл и в разделе Headers найдите Content-Encoding: gzip — значит ответ сжат. Там же сравните Size (передано по сети) и фактический размер файла. PageSpeed Insights в разделе диагностики отдельно указывает ресурсы без сжатия. Команда curl -I -H "Accept-Encoding: gzip" https://example.com/ покажет заголовок в терминале.
SEO Crawler при обходе проверяет заголовки ответа каждой страницы и подсвечивает те, что отдаются без сжатия, а также помогает оценить, насколько это утяжеляет загрузку. Это удобно, когда сжатие настроено выборочно и часть URL выпала из правил.
Вывод
Gzip — простой способ ускорить сайт: включается на стороне сервера и уменьшает текстовые ответы в разы. Сжимайте HTML, CSS, JS и другие текстовые форматы, не трогайте уже сжатые изображения и видео и не забывайте про заголовок Vary. Если сервер поддерживает Brotli, он сожмёт ещё плотнее.
Проверим весь сайт?
Пара минут — и увидите отчёт по каждой странице.
Проверить сайт