Skip to content

Всё для WordPress, веб-разработки — и не только

⚙️ Как включить сжатие GZIP в WordPress: полное руководство

⚙️ Как включить сжатие GZIP в WordPress: полное руководство

Сайт открывается 4 секунды, и посетитель уходит. Знакомо? Чаще всего проблема не в хостинге и не в картинках. Страницы просто весят больше, чем должны, потому что сервер отдаёт их «как есть», без сжатия.

GZIP-сжатие режет размер HTML, CSS и JavaScript на 60-80% до того, как они улетят в браузер. Для WordPress это не плагин-тяжеловес с кучей настроек, а одна директива в конфиге или галочка в админке. По данным W3Techs, сжатие используют более 85% сайтов в интернете, и если ваш сайт не в их числе, вы теряете позиции в поиске и конверсии просто на ровном месте.

Дальше, семь работающих способов включить GZIP: от ручного редактирования.htaccess до пары кликов в плагине. В конце покажу, как проверить результат, и разберу частые вопросы про совместимость с CDN, Brotli и кешированием.

💡 Быстрый обзор:

  • Добавьте код сжатия в .htaccess через FTP
  • Пропишите gzip on и gzip_types в nginx.conf
  • Включите сжатие галочкой в W3 Total Cache или WP Rocket
  • Проверьте результат в Chrome DevTools или GiftOfSpeed

Что такое GZIP-сжатие и зачем оно WordPress-сайту

GZIP, алгоритм сжатия, который работает на уровне сервера: перед отправкой браузеру он «упаковывает» текстовые файлы в более компактный вид. Браузер на лету распаковывает их и рендерит страницу как обычно. Пользователь разницы не замечает, а объём передаваемых данных сокращается в разы.

Схема GZIP сжатия сервер браузер

Что именно сжимается: HTML-код страниц, таблицы стилей CSS, скрипты JavaScript, XML-файлы, шрифты и SVG. Изображения GZIP не трогает, для них есть отдельные форматы сжатия (WebP, AVIF) и плагины оптимизации.

Разницу в цифрах легко увидеть в Chrome DevTools: одна и та же страница до сжатия и после отличается по размеру в два-три раза. Умножьте на количество посетителей в месяц, и получите серьёзную экономию трафика и времени загрузки.

Важный нюанс: GZIP, не единственный вариант. Современные серверы поддерживают Brotli, алгоритм от Google, который сжимает текстовые файлы ещё на 15-25% лучше GZIP. Но Brotli есть не на всех хостингах, а GZIP работает везде, включая самые старые конфигурации. Поэтому начинать всегда стоит с GZIP, а Brotli, подключать как следующий уровень, когда база готова.

Способ 1: через.htaccess на Apache

Самый распространённый сценарий: сайт крутится на Apache, и всё, что нужно, дописать несколько строк в файл .htaccess в корне сайта.

Где находится.htaccess. Подключитесь к серверу по FTP (например, через FileZilla) или зайдите в файловый менеджер хостинга. В корневой папке сайта (там же, где лежат wp-config.php и папки wp-content, wp-admin) найдите .htaccess. Скачайте его на компьютер, редактировать будем локально, чтобы в случае ошибки быстро откатить.

Что добавить. Откройте .htaccess в текстовом редакторе (Notepad++, VS Code, Sublime Text) и добавьте следующий блок ПЕРЕД строками # BEGIN WordPress:

1<IfModule mod_deflate.c>
2 AddOutputFilterByType DEFLATE text/html text/css text/javascript
3 AddOutputFilterByType DEFLATE application/javascript application/x-javascript
4 AddOutputFilterByType DEFLATE application/rss+xml application/xml application/xhtml+xml
5 AddOutputFilterByType DEFLATE image/svg+xml image/x-icon
6 AddOutputFilterByType DEFLATE font/ttf font/otf font/opentype application/x-font-ttf
7 AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
8
9 BrowserMatch ^Mozilla/4 gzip-only-text/html
10 BrowserMatch ^Mozilla/4.0[678] no-gzip
11 BrowserMatch bMSIE !no-gzip !gzip-only-text/html
12 Header append Vary User-Agent
13</IfModule>
Файл htaccess с кодом сжатия GZIP

Что здесь происходит. Блок <IfModule mod_deflate.c> проверяет, включён ли модуль mod_deflate на сервере (на большинстве хостингов включён по умолчанию). Директивы AddOutputFilterByType DEFLATE указывают, какие типы файлов сжимать. Строки BrowserMatch, костыль для старых версий Internet Explorer, который предотвращает баги с gzip в IE6 и ниже. Header append Vary User-Agent говорит прокси-серверам учитывать браузер пользователя при кешировании.

Сохраните файл и загрузите обратно на сервер с заменой. Перед этим обязательно сделайте резервную копию оригинального .htaccess, если сайт упадёт, просто верните старую версию, и всё заработает как было.

Если после загрузки сайт выдал ошибку 500, проверьте, нет ли в файле лишних пробелов или переносов перед <?php или после закрывающих тегов. Ошибка в .htaccess ломает сайт целиком, поэтому правки лучше вносить по одной и проверять после каждой.

Способ 2: на сервере NGINX

NGINX обрабатывает сжатие иначе, чем Apache. Здесь нет .htaccess, а все настройки прописываются в файле nginx.conf или в конфигурационном файле конкретного сайта (обычно в /etc/nginx/sites-available/).

Добавьте или раскомментируйте следующие строки в секцию http или server:

1gzip on;
2gzip_vary on;
3gzip_min_length 1000;
4gzip_comp_level 6;
5gzip_types text/plain text/css text/javascript
6 application/javascript application/x-javascript
7 application/rss+xml application/xml application/xhtml+xml
8 image/svg+xml image/x-icon
9 font/ttf font/otf application/x-font-ttf
10 application/vnd.ms-fontobject;
11gzip_disable "MSIE [1-6]\.(?!.*SV1)";

После изменений проверьте синтаксис конфига командой nginx -t и перезагрузите NGINX: sudo systemctl reload nginx.

Параметр gzip_comp_level 6, компромисс между степенью сжатия и нагрузкой на процессор. Значение 1, минимальное сжатие, 9, максимальное. На практике уровень 6 даёт почти ту же экономию, что и 9, но потребляет заметно меньше ресурсов сервера.

Способ 3: на сервере IIS (Windows Server)

IIS, веб-сервер Microsoft, используемый на Windows-хостингах. Включение сжатия здесь делается двумя способами: через графический интерфейс или командную строку.

Через интерфейс IIS. Откройте IIS Manager. В разделе «Компоненты» → «Службы» найдите «Сжатие». Отметьте галки «Включить сжатие статического содержимого» и «Включить сжатие динамического содержимого». На панели «Действия» нажмите «Применить».

Через командную строку (от администратора):

1:: Статическое сжатие
2appcmd set config /section:urlCompression /doStaticCompression:True
3
4:: Динамическое сжатие
5appcmd set config /section:urlCompression /doDynamicCompression:True

Статическое сжатие кеширует уже сжатые версии файлов на диске, это экономит процессорное время. Динамическое сжимает ответы «на лету» и подходит для персонализированных страниц, но нагружает процессор. На практике для WordPress включают оба режима, статика берёт на себя CSS/JS, динамика, HTML каждой страницы.

Способ 4: через панель хостинг-провайдера

Большинство современных хостингов включают GZIP по умолчанию. Если вы на cPanel, зайдите в раздел «Оптимизация сайта» (Site Optimization) или «Производительность» (Performance) и поищите переключатель «Сжатие» или «Compress content». На Plesk путь похожий: «Производительность» → «Сжатие вывода».

Не нашли переключателя, напишите в поддержку хостинга. Это стандартный запрос, техподдержка отвечает на него за минуты и часто включает сжатие на уровне сервера за один ответ. Не нужно объяснять, что такое GZIP, достаточно написать «Включите, пожалуйста, сжатие GZIP для моего сайта».

Проверить, что хостинг уже сжимает страницы, можно до любых правок, способ описан в разделе «Как проверить, включено ли сжатие» ниже. Если проверка показывает, что GZIP работает, пропускайте все серверные методы и переходите к плагинам только если хотите управлять сжатием из админки WordPress.

Способ 5: плагин W3 Total Cache

W3 Total Cache, один из старейших плагинов кеширования в репозитории WordPress, с миллионом активных установок и рейтингом 4,5 на WordPress.org. Сжатие GZIP в нём включается отдельной галочкой и не требует касаться серверных файлов.

Настройка сжатия HTTP в W3 Total Cache

Установите плагин из репозитория WordPress, перейдите в Performance → Browser Cache и найдите секцию «HTTP (gzip) compression». Отметьте галочку «Enable HTTP (gzip) compression» и сохраните настройки. Плагин сам добавит нужные директивы в .htaccess или сконфигурирует NGINX-правила, в зависимости от того, на каком сервере работает сайт.

  • Плюсы: не трогает серверные файлы руками, миллион установок подтверждает стабильность, совместим с CDN и Brotli
  • Минусы: интерфейс перегружен опциями, новичку легко сломать кеширование не той галочкой

Способ 6: плагин WP Rocket

WP Rocket, премиальный плагин производительности, который после активации автоматически добавляет правила GZIP в .htaccess. Никаких настроек для сжатия в нём нет, оно включается само при установке.

  • Плюсы: ноль ручной работы, сжатие включается автоматически, плагин заодно решает кучу смежных задач (кеширование, отложенная загрузка, минификация)
  • Минусы: платный (от $59 в год), для одного лишь GZIP переплата неоправданна

Если WP Rocket у вас уже куплен для других задач, сжатие уже работает. Если думаете брать плагин только ради GZIP, не надо, .htaccess или W3 Total Cache делают то же самое бесплатно.

Способ 7: плагин WP Super Cache

WP Super Cache, бесплатный плагин кеширования от Automattic (тех самых ребят, что стоят за WordPress.com). Работает проще, чем W3 Total Cache: меньше настроек, меньше шансов что-то сломать.

Настройки сжатия в WP Super Cache

Установите плагин, перейдите в Настройки → WP Super Cache → Продвинутые (Advanced) и найдите пункт «Сжимать страницы, чтобы они быстрее отдавались посетителям». Включите и сохраните.

  • Плюсы: бесплатный, простой интерфейс, стабильный код от Automattic
  • Минусы: уступает W3 Total Cache по функциональности кеширования, нет тонкой настройки типов сжатия

Как работает GZIP-сжатие на практике

Когда браузер запрашивает страницу, он отправляет заголовок Accept-Encoding: gzip, deflate, br, это означает «я понимаю gzip, deflate и brotli, присылай в любом из этих форматов». Сервер видит этот заголовок, проверяет, включено ли сжатие для запрашиваемого типа файла, и если да, сжимает ответ и добавляет заголовок Content-Encoding: gzip.

Браузер получает сжатые данные, распаковывает их в памяти и рендерит страницу. Для пользователя всё происходит мгновенно, распаковка gzip занимает доли миллисекунды даже на слабом мобильном устройстве.

Этот механизм универсален: он работает одинаково для Apache, NGINX, IIS и любых плагинов WordPress. Плагины не изобретают свой способ сжатия, они просто добавляют те же самые серверные директивы, что мы прописывали вручную в первых трёх способах.

Что показывают Google PageSpeed Insights и GTmetrix

Оба сервиса, PageSpeed Insights и GTmetrix, проверяют наличие сжатия при каждом аудите и явно подсвечивают проблему, если текстовые ресурсы отдаются без GZIP.

Предупреждение о сжатии в Google PageSpeed Insights

В PageSpeed Insights предупреждение выглядит как «Включите сжатие текста» (Enable text compression) в разделе «Возможности» аудита. Lighthouse (движок PageSpeed Insights) прямо оценивает потенциальную экономию в килобайтах по каждому несжатому ресурсу. В GTmetrix аналогичная проверка, «Enable GZIP compression» в категории «Content».

Важный момент: ни PageSpeed Insights, ни GTmetrix не различают GZIP и Brotli на уровне рекомендации. Если сжатие включено любым из этих методов, аудит покажет зелёную галочку. Так что для прохождения аудита достаточно GZIP.

Как проверить, включено ли сжатие

Три способа, от визуального до низкоуровневого.

Способ 1: Chrome DevTools. Откройте сайт, нажмите F12, перейдите на вкладку Network. Обновите страницу, кликните по любой строке и посмотрите вкладку Headers. Найдите строку Content-Encoding: gzip в разделе Response Headers.

Заголовок Content-Encoding gzip в Chrome DevTools

Там же видно фактический и сжатый размер: в примере выше страница весила 51,6 КБ, а после сжатия, 17,7 КБ.

Сравнение размера файла до и после сжатия в Chrome DevTools

Способ 2: онлайн-тестеры. GiftOfSpeed GZIP Test (giftofspeed.com/gzip-test) или Check GZIP Compression (checkgzipcompression.net), вставляете URL, получаете вердикт и процент сжатия. Быстрее DevTools, если нужно проверить чужой сайт или несколько страниц подряд.

Способ 3: curl из командной строки. Если вы на Linux/macOS или в WSL на Windows:

1curl -I -H &quot;Accept-Encoding: gzip&quot; https://вашсайт.com | grep Content-Encoding

Ответ Content-Encoding: gzip, сжатие работает. Пустой ответ, нет.

Краткое видео-пояснение

Чтобы закрыть тему с визуальной стороны, вот короткое видео, где показан весь процесс включения GZIP через .htaccess и проверка результата в Chrome DevTools:

⁉️🤔 Частые вопросы

Сжатие GZIP замедляет сервер?

Наоборот. Да, процессор тратит ресурсы на сжатие, но это микроскопическая нагрузка по сравнению с выигрышем от уменьшения передаваемых данных. На уровне сжатия 6 (стандартный компромисс) процессор справляется за миллисекунды. Единственный сценарий, где сжатие может быть ощутимым, очень слабый VPS с 512 МБ памяти и тысячами одновременных посетителей. Но в такой ситуации у вас проблемы посерьёзнее GZIP. На практике сжатие не замедляет сервер: типичная страница WordPress сжимается за 2-5 миллисекунд, а экономия на передаче данных по сети составляет десятки и сотни миллисекунд для каждого посетителя. Сжатие всегда выгоднее его отсутствия.

GZIP или Brotli, что выбрать в 2026?

Начинайте с GZIP, он работает на любом хостинге и поддерживается всеми браузерами без исключений. Brotli сжимает заметно лучше, но требует HTTPS (не проблема в 2026) и поддержки со стороны сервера. Если хостинг или CDN (Cloudflare, BunnyCDN) поддерживают Brotli, включайте его как дополнение к GZIP. Большинство современных сайтов используют оба: сервер отдаёт Brotli тем браузерам, которые его понимают, и GZIP, всем остальным.

Совместимо ли GZIP-сжатие с CDN?

Полностью. CDN вроде Cloudflare или BunnyCDN сами сжимают контент на своих edge-серверах, часто в Brotli, даже если ваш хостинг его не поддерживает. Если сайт уже за Cloudflare, проверьте, что в разделе «Speed» → «Optimization» включена опция «Brotli». В этом сценарии настройка GZIP на уровне сервера всё равно полезна как fallback для прямых запросов к origin-серверу.

У меня плагин кеширования, нужно ли отдельно включать GZIP?

Зависит от плагина. WP Rocket включает GZIP автоматически, W3 Total Cache, отдельной галочкой, WP Super Cache, отдельной галочкой. Проверьте настройки своего плагина, почти все кеширующие плагины имеют опцию сжатия, но не все включают её по умолчанию. Не полагайтесь на «должно работать», проверьте через DevTools после настройки.

Можно ли сжимать страницы через functions.php?

Технически можно, через PHP-функцию ob_start('ob_gzhandler'), но мы не рекомендуем. Этот метод сжимает вывод PHP и не затрагивает статические файлы (CSS, JS), которые составляют основную часть трафика. Серверное сжатие (Apache/NGINX) работает для всех типов файлов и не нагружает PHP-процессор. Оставьте PHP-сжатие для тех редких случаев, когда доступ к серверным конфигам физически невозможен.

Итоги: что и когда включать

GZIP, не опция «включить и забыть», а базовая гигиена WordPress-сайта. Если вы прямо сейчас не знаете, сжимает ли ваш сервер страницы, откройте DevTools и проверьте заголовок Content-Encoding. Отсутствует, возвращайтесь к способу 1 и дописывайте три строки в .htaccess.

Короткая матрица решений:

  • Сайт на Apache и вы не боитесь FTP → способ 1 (.htaccess), 5 минут
  • Сайт на NGINX и есть доступ к конфигам → способ 2 (nginx.conf), 10 минут с проверкой синтаксиса
  • Не трогаете серверные файлы принципиально → W3 Total Cache или WP Super Cache, 2 минуты
  • Уже платите за WP Rocket → ничего не делайте, сжатие работает из коробки
  • Вообще ничего не хотите настраивать → напишите в поддержку хостинга

Проверьте результат любым из трёх способов выше и закройте этот вопрос навсегда. Это та редкая оптимизация, которая реально делается один раз и продолжает экономить трафик и ускорять сайт годы спустя, без обновлений, подписок и повторных настроек.