Skip to content

Как включить Brotli в nginx

Коротко:

Brotli (brotli.org, Google) — compression algorithm на 15-25% лучше gzip для текста (HTML/CSS/JS). Поддержка клиентов 95%+ на 2026. Установка в nginx: compile ngx_brotli module (не в dynamic pool по умолчанию) или используйте nginx-extras package. Добавьте 3 директивы + server reload.

Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.

Пошаговая настройка

  1. Установите ngx_brotli через pre-built package: apt install nginx-module-brotli (Ubuntu 22.04+)
  2. Или compile: git clone --recursive https://github.com/google/ngx_brotli + configure nginx with --add-module
  3. В nginx.conf (в http context): load_module modules/ngx_http_brotli_filter_module.so; load_module modules/ngx_http_brotli_static_module.so;
  4. В server block: brotli on; brotli_comp_level 6; brotli_types text/plain text/css application/json application/javascript;
  5. Static files (pre-compressed .br files): brotli_static on;
  6. nginx -t && systemctl reload nginx
  7. Проверьте: curl -H "Accept-Encoding: br" -I https://example.com | grep -i "content-encoding" — должно быть "br"

Рабочие примеры

СценарийКонфиг
nginx.conf модулиload_module modules/ngx_http_brotli_filter_module.so; load_module modules/ngx_http_brotli_static_module.so;
server blockbrotli on; brotli_comp_level 6; brotli_static on; brotli_types text/plain text/css application/json application/javascript application/xml+rss text/xml image/svg+xml;
Pre-compress filesfind /var/www -type f \( -name "*.css" -o -name "*.js" \) | xargs -I{} brotli -q 11 "{}"
ApacheLoadModule brotli_module modules/mod_brotli.so\nBrotliCompressionQuality 5

Типичные ошибки

  • brotli_types не включает нужные MIME — не compressed
  • compression level 11 (max) на lines — CPU 100%. Для realtime 4-6 оптимально
  • brotli_static on без pre-compressed files — ничего не меняет
  • Без gzip fallback — старые клиенты (< 5%) без Brotli получают uncompressed
  • Proxy-cached responses с gzip — Brotli не применится если уже gzipped
PerformanceОбщая оценка скорости 0-100
Core Web VitalsLCP, FID, CLS — метрики Google
Размер страницыОбъём HTML, CSS, JS, изображений
РекомендацииКонкретные советы по ускорению

Почему нам доверяют

Lighthouse
движок анализа
CWV
Core Web Vitals
4
категории Lighthouse
Точные
рекомендации

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

1

Введите URL страницы

2

Lighthouse анализирует

3

Получите CWV и советы

Почему скорость сайта важна?

Скорость загрузки напрямую влияет на конверсию, SEO-позиции и удовлетворённость пользователей. Google использует Core Web Vitals как фактор ранжирования. Каждая лишняясекунда загрузки может стоить до 7% конверсии.

Lighthouse-анализ

Анализ на основе Google Lighthouse: Performance, Accessibility, Best Practices, SEO.

Core Web Vitals

LCP (скорость отрисовки), FID (интерактивность), CLS (визуальная стабильность) — ключевые метрики Google.

Анализ ресурсов

Разбивка по типам: HTML, CSS, JavaScript, изображения, шрифты. Размер, количество запросов, блокирующие ресурсы.

Действенные советы

Конкретные рекомендации с оценкой экономии: сжатие изображений, кеширование, минификация и т.д.

Mobile vs Desktop

Mobile
  • Тестирование на эмуляции Moto G Power (медленный CPU)
  • Сеть: 4G (1.6 Mbps, 150ms RTT)
  • Строже оценивает скорость
  • Google индексирует mobile-first
  • Приоритет для SEO-оптимизации
Desktop
  • Высокая производительность CPU
  • Быстрое соединение без ограничений
  • Результаты обычно выше на 20-40 баллов
  • Важен для B2B и корпоративных сайтов
  • Используйте для baseline-сравнений

Кому это нужно

SEO-специалисты

Core Web Vitals для ранжирования

Разработчики

оптимизация производительности

Маркетологи

скорость = конверсия

DevOps

регрессия производительности

Частые ошибки

Неоптимизированные изображенияИзображения — до 70% веса страницы. Используйте WebP/AVIF и lazy loading.
Блокирующий JS в &lt;head&gt;Скрипты без async/defer блокируют отрисовку. Переместите в конец или добавьте атрибут.
Нет кеширования статикиБез Cache-Control браузер перезагружает CSS/JS при каждом визите.
Слишком много HTTP-запросовКаждый запрос — это latency. Объединяйте файлы, используйте спрайты или инлайн критический CSS.
Отсутствие сжатия (gzip/brotli)Сжатие уменьшает размер текстовых ресурсов на 60-80%. Включите brotli на сервере.

Лучшие практики

Оптимизируйте изображенияWebP для фото, SVG для иконок. loading="lazy" для изображений ниже first fold.
Включите brotli-сжатиеBrotli на 15-20% эффективнее gzip. Настройте в nginx: brotli on;
Настройте кешированиеСтатика: Cache-Control: max-age=31536000, immutable. HTML: max-age=0, s-maxage=60.
Предзагрузка критических ресурсов<link rel="preload"> для шрифтов и CSS. Уменьшает LCP на 200-500ms.
Тестируйте регулярноСкорость деградирует со временем. Проверяйте после каждого деплоя и раз в месяц.

Получите больше с бесплатным аккаунтом

История проверок скорости, сравнение с конкурентами и мониторинг PageSpeed.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Насколько лучше Brotli чем gzip?

Для текста (HTML/CSS/JS): 15-25% меньше размер при тех же CPU. Для бинарных (уже сжатых image) — разница минимальна.

Работает ли Brotli через HTTPS?

Да, требуется HTTPS (клиенты не отправляют Accept-Encoding: br через plain HTTP). Современные сайты все на HTTPS.

Совместимость клиентов?

Chrome 50+, Firefox 44+, Safari 11+ (2017). IE не поддерживает. На 2026 coverage 95%+.

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

<a href="/speed">Enterno Speed checker</a> покажет response headers. Или DevTools → Network → Response Headers → Content-Encoding.