Brotli (br), Gzip и Deflate — алгоритмы сжатия, которые уменьшают размер HTML/CSS/JS/SVG/JSON и ускоряют загрузку. На практике “включить gzip” недостаточно: важны заголовки, совместимость, кэширование и исключения, иначе часть браузеров/прокси будет получать несжатый контент или кэш станет некорректным.
Что именно мы настраиваем
- Content-Encoding (br/gzip) и корректный Vary: Accept-Encoding, чтобы CDN/прокси не отдавали “чужую” версию.
- Приоритет Brotli для современных браузеров и fallback на Gzip для остальных.
- Список MIME-типов для сжатия (HTML, CSS, JS, JSON, SVG, XML, font/wasm — по ситуации).
- Исключения для уже сжатых форматов (webp/avif/jpg/png, mp4, pdf, zip) — чтобы не тратить CPU без эффекта.
- Кэширование (Cache-Control/ETag/Last-Modified) и сценарии с ревизией файлов, чтобы компрессия не ломала долгий кэш.
- Проверка реальной отдачи (не “галочка включена”, а фактические ответы сервера/прокси).
Как проверить, что сжатие реально работает
1) Проверка через curl
Пример для Brotli:
curl -sI -H "Accept-Encoding: br" https://ваш-домен/Ищите в ответе:
- content-encoding: br
- vary: Accept-Encoding
Пример для Gzip:
curl -sI -H "Accept-Encoding: gzip" https://ваш-домен/2) Проверка в DevTools
Откройте Network → выберите CSS/JS/HTML → в Headers проверьте content-encoding и размер Transferred (он должен быть меньше, чем Resource).
Типовые ошибки, из-за которых скорость не растёт
- Нет Vary → CDN/прокси кэшируют одну версию и раздают её всем.
- Сжимаются изображения/видео → нагрузка на CPU растёт, пользы нет.
- Сжатие включено, но не для нужных типов (например, JSON/SVG не попали в список).
- Слишком агрессивные уровни сжатия без учёта CPU/TTFB (особенно на динамике) — нужно балансировать.
- Неверная связка с кэшированием → ресурсы пересобираются и пересжимаются чаще, чем должны.
Что вы получаете по итогам
- Проверенную конфигурацию сжатия под ваш сервер/стек и реальные ответы HTTP.
- Контрольную проверку “до/после” по ключевым страницам и статике.
- Рекомендации по кэшированию и ревизии файлов (чтобы 1 год кэша работал безопасно).
- При необходимости — увязку со скоростью загрузки и технической оптимизацией.
Смежные работы: ускорение загрузки сайта и техническая оптимизация.
Обычно нет: современные клиенты используют Brotli/Gzip. Deflate имеет смысл только в редких сценариях совместимости или специфичных окружениях.
Часто причина — отдача через CDN/прокси без корректного <code>Vary: Accept-Encoding</code>, либо Brotli включён только для статики/только для HTTPS/только для части MIME-типов.
Как правило: изображения (webp/avif/jpg/png), видео, архивы, pdf. Повторное сжатие почти не уменьшает размер, но расходует CPU.
Зависит от типа контента и нагрузки. Для статики можно выше, для динамики — умеренно, чтобы не ухудшить TTFB. Мы подбираем по метрикам.
Напрямую — нет, но скорость и стабильная загрузка страниц влияют на поведенческие метрики и техническое качество. Поэтому правильная конфигурация важна.