Методика: Проверка выполняется по методике wSEO 1.0. Как устроена проверка

Заголовок и размер должны подтверждать друг друга

Как проверить Gzip и Brotli

Запросите один текстовый ресурс с поддержкой сжатия и без неё, сравните Content-Encoding, Vary и переданные байты. Повторите проверку для HTML, CSS и JavaScript через публичный CDN.

Сравнение identity, Gzip и Brotli-ответов по заголовкам и размеру
Проверяется фактический публичный ответ, а не только настройка панели.

Быстрая проверка в DevTools

  1. Откройте страницу в чистом окне, DevTools → Network, включите Disable cache и перезагрузите.
  2. Выберите крупный собственный HTML, CSS или JS, а не изображение и не сторонний домен.
  3. В Response Headers найдите Content-Encoding: br или gzip и Vary: Accept-Encoding.
  4. Сравните Transferred с Resource Size. Переданный размер обычно меньше для хорошо сжимаемого текста.
  5. Повторите для динамического HTML и нескольких типов файлов на desktop/mobile.

Хороший результат: сервер выбирает поддерживаемое кодирование, возвращает целый ответ, разделяет кеш-варианты и не применяет HTTP-сжатие к уже сжатым бинарным форматам без причины.

Как оценить проблему

Уровни проблем HTTP-сжатия
НаблюдениеУровеньДействие
Крупный текстовый ответ с br/gzip, Vary и меньшим transferПроблемы нетСохранить заголовки и размеры
Не сжат очень маленький текстовый ответОбычно нормальноПроверить порог и реальную выгоду
Крупные HTML/CSS/JS приходят identityВысокоПроверить MIME, origin, CDN и правила
Повреждён ответ или клиент получает неподдерживаемое кодированиеКритичноОткатить фильтр и очистить кеш

Независимая проверка curl

curl -sS -D gzip.headers --compressed \
  -o gzip.body https://example.com/app.js
curl -sS -D identity.headers \
  -H 'Accept-Encoding: identity' \
  -o identity.body https://example.com/app.js
wc -c gzip.body identity.body
rg -i 'content-encoding|vary|content-type' *.headers

--compressed декодирует тело перед сохранением, поэтому оба файла должны совпасть по содержимому и распакованному размеру. Для сетевой экономии используйте curl -w '%{size_download}' -o /dev/null отдельно для каждого запроса.

Расхождения и границы

  • HEAD-запрос может обрабатываться иначе; для доказательства размера используйте GET.
  • CDN, география, HTTP-версия и кеш могут давать разные кодирования в разных запусках.
  • Отсутствие Gzip у JPEG/PNG/WebP/MP4/ZIP обычно не проблема.
  • Brotli не обязан появляться, если клиент его не предлагает или уровень доставки его не поддерживает.
  • Сжатие стороннего домена нельзя исправить в конфигурации вашего origin.

Автоматическая цена относится к согласованным URL и уровням доставки на странице услуги. Для исправления используйте пошаговую инструкцию.