Gzip-сжатие

Оригинальное название: gzip compression

Коротко

Сжатие HTML, CSS, JavaScript и других текстовых ответов сервера алгоритмом gzip перед отправкой в браузер, чтобы по сети передавалось меньше данных.

Что такое «Gzip-сжатие»

Текст сжимается хорошо: в HTML и CSS много повторяющихся тегов, имён классов и пробелов. После gzip типичная страница становится в несколько раз легче, а браузер распаковывает её быстрее, чем докачивал бы исходный объём. Особенно это заметно на мобильном интернете и для крупных файлов скриптов.

Договорённость идёт через заголовки HTTP. Браузер в запросе сообщает, какие алгоритмы понимает, а сервер отвечает, каким сжал ответ:

GET /style.css HTTP/1.1
Accept-Encoding: gzip, deflate, br

HTTP/1.1 200 OK
Content-Type: text/css
Content-Encoding: gzip

Где включается

Сжатие — работа веб-сервера, а не WordPress. В nginx за него отвечает модуль gzip, в Apache — mod_deflate. Минимальный блок для nginx:

gzip on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/css application/javascript application/json image/svg+xml;

HTML nginx сжимает и без упоминания в gzip_types. Плагины кеширования для WordPress умеют дописывать правила сжатия в .htaccess, но это работает только на Apache и только если хостинг разрешает такие директивы.

Что сжимать не нужно

JPEG, PNG, WebP, видео и архивы уже сжаты своими алгоритмами. Повторный gzip почти не уменьшит их, зато потратит процессор. Не стоит и задирать уровень сжатия до максимума: выигрыш в размере между средним и максимальным уровнем невелик, а нагрузка на сервер растёт. Наследник gzip — алгоритм Brotli (в заголовке — br): он сжимает текст плотнее и поддерживается всеми современными браузерами, но требует отдельного модуля на сервере.

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

Быстрее всего — через консоль: curl -sI -H "Accept-Encoding: gzip" https://example.ru/. В ответе должна быть строка Content-Encoding: gzip. То же видно в инструментах разработчика браузера, во вкладке «Сеть». Отсутствие сжатия — один из первых пунктов, которые проверяют при работе над скоростью страницы и при ускорении сайта.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение