Как включить сжатие GZIP для ускорения работы сайтов WordPress

Как включить сжатие GZIP Изучение

Как включить сжатие GZIP

Самый простой способ ускорить работу вашего сайта WordPress — удалить все ненужные ресурсы. Второй самый простой способ ускорить его — сжать все необходимые ресурсы. Включение сжатия GZIP на вашем веб-сервере — один из самых простых и эффективных способов добиться этого.

Все современные браузеры по умолчанию поддерживают сжатие GZIP. Однако, чтобы без сбоев обслуживать сжатые ресурсы для пользователей, необходимо правильно настроить сервер.

В этом посте вы узнаете основы сжатия данных в Интернете, что такое сжатие GZIP, его различные преимущества и то, как вы можете использовать его для ускорения своих сайтов WordPress при различных настройках сервера.

Содержание
  1. Основы сжатия данных в Интернете
  2. Что такое сжатие GZIP?
  3. Как GZIP сжимает данные
  4. Насколько хорошо сжатие GZIP?
  5. 6 преимуществ сжатия GZIP
  6. Обеспечивает достойную степень сжатия
  7. Супер быстрое сжатие и декомпрессия
  8. Требуется очень мало памяти
  9. Не сильно расширяется даже в худших случаях
  10. Бесплатное использование и открытый исходный код
  11. Пользуется универсальной поддержкой
  12. Предупреждения GZIP в инструментах тестирования скорости веб-сайтов
  13. Предупреждение GZIP в Google PageSpeed ​​Insights / Lighthouse
  14. Предупреждение GZIP в GTmetrix
  15. Предупреждение GZIP в инструментах Pingdom
  16. Предупреждение GZIP в WebPageTest
  17. Как проверить, включено ли сжатие GZIP
  18. 1. Онлайн-инструменты для тестирования сжатия GZIP
  19. 2. Заголовок ответа HTTP «content-encoding: gzip»
  20. 3. Инструменты для проверки скорости веб-страницы
  21. Как включить сжатие GZIP
  22. Включите GZIP с помощью плагина WordPress
  23. Включите GZIP на веб-сервере Apache
  24. Включите GZIP на веб-сервере Nginx
  25. Включить GZIP на веб-сервере IIS
  26. Альтернативы сжатию GZIP
  27. Заключение

Основы сжатия данных в Интернете

Сжатие данных в Интернете — это процесс уменьшения размера данных, передаваемых веб-сайтами. В зависимости от типа данных — текст, изображения, таблицы стилей, скрипты, шрифты — существуют различные способы сжатия данных.

Основы сжатия данных в Интернете

Например, минификация HTML, CSS и JavaScript — простой способ уменьшить объём данных, отправляемых браузерами. Здесь минификатор сжимает текст, удаляя ненужные символы, такие как комментарии и пробелы, из исходного кода.

Читайте также:  Введение в типы данных: статические, динамические, сильные и слабые

В приведённом ниже примере простого HTML-документа есть три типа содержимого: разметка HTML, стили CSS и код JavaScript.

Каждый тип контента имеет уникальный синтаксис и семантику. Всего в этом HTML-документе 357 символов.

<html>
<head>
    <style>
    /* kinsta-banner is used on the homepage only */
    .kinsta-banner { font-size: 150% }
    .kinsta-banner { width: 75% }
</style>
</head>
<body>
    <!-- kinsta banner START -->
    <div>...</div>
    <!-- kinsta banner END -->
    <script>
    kinstaScripts(); // random scripts used on the page
    </script>
</body>
</html>

Приведённый выше код легко читать и следовать ему. Идеально для развития. Однако браузеру необязательно читать комментарии и иметь теги с идеальным отступом. Умный компрессор может проанализировать этот документ и удалить из него все ненужные биты.

<html><head><style>.kinsta-banner{font-size:150%;width:75%}</style></head><body><div>...</div><script>kinstaScripts();</script></body></html>

После минификации HTML-документ сокращается до 141 символа. Это 60,50% экономии на количестве символов. Это не так просто для глаз, но для браузера это не имеет значения. Он по-прежнему будет отображать ту же страницу для пользователя.

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

Большинство плагинов для повышения производительности WordPress позаботятся об этом автоматически.

Большинство плагинов для повышения производительности WordPress позаботятся об этом автоматически

Например, несжатая версия библиотеки jQuery 3.5.1 более чем в 3 раза больше, чем уменьшенная версия того же файла.

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

Но сжатие данных — это не просто минификация. Используя передовые математические методы, алгоритмы сжатия данных могут ещё больше уменьшить размер данных.

Одним из самых популярных примеров такого метода сжатия данных является GZIP. Он обеспечивает эффективную передачу данных и внёс значительный вклад в превращение Интернета в жизнеспособную глобальную среду связи.

Что такое сжатие GZIP?

GZIP, сокращение от GNU Zip, является самым популярным методом сжатия данных без потерь в Интернете. Это позволяет уменьшить размер HTML-страниц, таблиц стилей и скриптов вашего сайта.

Помимо алгоритма сжатия данных, GZIP также является расширением файла (.gz ) и программным обеспечением, используемым для сжатия / распаковки файлов.

Он основан на алгоритме DEFLATE, который представляет собой смесь алгоритмов кодирования LZ77 и кодирования Хаффмана.

Он основан на алгоритме DEFLATE, который представляет собой смесь алгоритмов кодирования LZ77

Компрессор GZIP берёт набор необработанных данных и сжимает их без потерь. Необработанные данные могут быть из любого типа файла, но GZIP лучше всего работает с текстовыми ресурсами (например, HTML, CSS, JS).

В следующем разделе подробно рассказывается, как работает сжатие GZIP.

Как GZIP сжимает данные

Как GZIP сжимает данные

Для начала компрессор GZIP запускает алгоритм сжатия LZ77 для необработанных данных для удаления избыточности. Этот алгоритм работает, находя повторяющиеся шаблоны в заранее заданном скользящем окне (небольшом участке необработанных данных).

Затем он заменяет все повторяющиеся строки кортежами для сжатия необработанных данных.

Как GZIP сжимает данные2

В приведённом выше примере размер скользящего окна составляет всего 13 символов (13 байтов). Однако при сжатии GZIP можно использовать максимальный размер скользящего окна 32 КБ (32 768 байт). Размер скользящего окна играет ключевую роль в производительности сжатия LZ77.

После сжатия необработанных данных с помощью алгоритма LZ77 компрессор GZIP затем использует алгоритм кодирования Хаффмана для дальнейшего сжатия. Он делает это, присваивая наиболее часто встречающимся символам наименьшее количество битов, а редким символам присваивая наибольшее число битов.

Этот метод похож на тот, который используется в азбуке Морзе, где буквы, встречающиеся чаще в английском языке, получают самые короткие последовательности.

Чтобы понять, как работает алгоритм кодирования Хаффмана, рассмотрим это слово BOOKKEEPER. В нём 10 символов, но уникальных символов всего 6. В этом слове хорошее сочетание одинарных, двойных и тройных букв.

Почти все веб-сайты используют кодировку символов UTF-8 для представления букв и символов. Каждый символ ASCII в UTF-8, который также включает английский алфавит, использует 1 байт (8 бит).

Для такой 10-символьной строки BOOKKEEPERпотребуется 10 байтов

Для такой 10-символьной строки BOOKKEEPERпотребуется 10 байтов (80 бит) памяти. Вы можете видеть, что он содержит 1 экземпляр письма, 2 экземпляра букв и и 3 экземпляра письма.B, P, ROKE

Алгоритм кодирования Хаффмана использует эти знания для сжатия строки без потерь. Он делает это, генерируя двоичное дерево с каждой уникальной буквой в виде листа.

Буквы с самой низкой частотой (например, B, P, R ) окажутся внизу дерева. А те, которые появляются часто (например, E, O, K ), в идеале окажутся наверху.

Самый верхний узел в дереве — это корень, а его значение равно общему количеству символов в строке.

Самый верхний узел в дереве — это корень, а его значение равно общему количеству символов в строке

После создания дерева Хаффмана всем стрелкам, указывающим влево и вправо, присваиваются числа 0 и 1 соответственно. Затем вы можете сгенерировать код Хаффмана для любого символа. Проследив путь от корня к листу и соединив все 0 и 1.

Проследив путь от корня к листу и соединив все 0 и 1

Вы можете заметить, что буквы с самой высокой частотой имеют коды Хаффмана с наименьшим размером бит.

Примечание. Алгоритм кодирования Хаффмана может генерировать альтернативные двоичные коды, используя другую стратегию упорядочивания символов с той же частотой. Однако общий размер закодированной строки останется прежним.

Это на 68,75% меньше памяти, необходимой для хранения исходного слова

Это на 68,75% меньше памяти, необходимой для хранения исходного слова.

Используя дерево Хаффмана с 0 / 1 конвенцией генерирует двоичные коды, которые удовлетворяют свойство префикса. Это гарантирует, что код Хаффмана любого конкретного символа не является префиксом кода любого другого символа, что упрощает декодирование закодированной строки с использованием дерева Хаффмана. Это играет главную роль в скорости декомпрессии GZIP.

Как и в случае со словом выше, компрессор GZIP использует алгоритм кодирования Хаффмана для дальнейшей оптимизации кортежей, сгенерированных алгоритмом LZ77. В результате получаются сильно сжатые файлы с расширением.gz.

Если вам интересно узнать больше о том, как работает GZIP, просмотрите это видео для краткого обзора.

Насколько хорошо сжатие GZIP?

Как правило, GZIP обеспечивает степень сжатия около 70% для небольших файлов, но может достигать до 90% для более крупных текстовых ресурсов.

Как правило, GZIP обеспечивает степень сжатия около 70% для небольших файлов, но может достигать до 90

В приведённой выше таблице вы можете видеть, что сжатие миниатюрных файлов с помощью GZIP может ещё больше уменьшить их размер.

Примечание. Вы можете сжимать файлы любого типа с помощью GZIP, но для ресурсов, уже сжатых другими методами (например, изображений, видео), это не принесёт никакой экономии. Иногда это может даже увеличить размер файла.

Сила алгоритма сжатия зависит не только от степени сжатия, но и от того, насколько быстро и эффективно он может сжимать и распаковывать данные. Вот где GZIP лучше всего подходит для большинства случаев использования.

Поскольку GZIP быстро распаковывается с помощью потокового алгоритма, он отлично подходит для веб-протоколов, где скорость имеет решающее значение. Кроме того, GZIP использует минимальные ресурсы для сжатия и распаковки данных, что делает его идеальным как для серверов, так и для клиентов.

На диаграммах выше сравнивается эффективность сжатия алгоритмов сжатия

На диаграммах выше сравнивается эффективность сжатия алгоритмов сжатия brotli, bzip2, gzip и xz. GZIP проигрывает в тесте степени сжатия с небольшим отрывом. Но по скоростям сжатия и декомпрессии он явно превосходит конкурентов.

Глядя на график скорости сжатия, можно сделать вывод, что GZIP идеально подходит для сжатия в реальном времени на HTTP-серверах и других потоках данных в Интернете. Принимая во внимание все свои положительные стороны в продвижении Интернета. IETF ратифицировала GZIP как один из трёх стандартных форматов сжатия в HTTP / 1.1.

Примечание. Абстракция библиотеки сжатия GZIP под названием zlib используется во многих популярных операционных системах (Linux, macOS, iOS) и современных игровых консолях (PlayStation 4, Wii U, Xbox One). Он также используется в формате файлов PNG без потерь для сжатия изображений.

6 преимуществ сжатия GZIP

Давайте подробнее рассмотрим наиболее важные преимущества сжатия GZIP.

Обеспечивает достойную степень сжатия

Как обсуждалось ранее, GZIP не имеет лучшей степени сжатия по сравнению с конкурентами. Но это не так уж и далеко от них. Как правило, это может помочь вам уменьшить размер текстовых ресурсов на 70-90%.

Супер быстрое сжатие и декомпрессия

GZIP — явный победитель по скорости сжатия и распаковки данных. Это очень желательно для сжатия на лету на HTTP-серверах и других потоках данных.

Требуется очень мало памяти

GZIP оставляет минимальный объем памяти, что делает его подходящим для серверов и систем с ограниченным объёмом памяти. Следовательно, вы обнаружите, что его поддерживают даже самые дешёвые провайдеры веб-хостинга.

Не сильно расширяется даже в худших случаях

Алгоритмы сжатия данных без потерь, такие как GZIP, имеют строгий предел, за которым они не могут сжимать данные.

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

Бесплатное использование и открытый исходный код

GZIP изначально создавался как бесплатная замена с открытым исходным кодом для запатентованной программы сжатия, использовавшейся в ранних системах Unix. Таким образом, он не обременён какими-либо патентами и может свободно использоваться кем угодно.

Пользуется универсальной поддержкой

По данным W3Techs, сжатие GZIP используется 82% всех отслеживаемых веб-сайтов, что делает его наиболее широко используемым алгоритмом сжатия в Интернете.

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

Предупреждения GZIP в инструментах тестирования скорости веб-сайтов

Помимо минификации, включение GZIP — одна из самых простых и эффективных оптимизаций скорости, которые вы можете реализовать на своём веб-сайте.

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

Когда вы посещаете веб-сайт, ваш браузер проверяет, включен ли на веб-сервере GZIP, проверяя content-encoding: gzipзаголовок ответа. Если заголовок существует, он извлекает сжатые файлы, распаковывает их, а затем автоматически обслуживает файлы меньшего размера.

Если браузер не обнаруживает заголовок ответа GZIP, он загружает несжатые файлы

Если браузер не обнаруживает заголовок ответа GZIP, он загружает несжатые файлы. В большинстве случаев разница в скорости загрузки страницы может составлять несколько секунд. Следовательно, если у вас не включен GZIP, вы увидите предупреждения в инструментах тестирования скорости веб-сайта.

Предупреждение GZIP в Google PageSpeed ​​Insights / Lighthouse

Google PageSpeed ​​Insights выдаёт предупреждение, если на вашем веб-сайте не включено сжатие текста.

Примечание. Google PageSpeed ​​Insights и Google Lighthouse были двумя отдельными инструментами для тестирования производительности веб-сайтов. Они работали независимо друг от друга до 2018 года, когда Google обновил PageSpeed ​​Insights, чтобы использовать Lighthouse в качестве своего механизма анализа. Следовательно, PageSpeed ​​Insights и Lighthouse теперь одно и то же.

Google PageSpeed ​​Insights и Google Lighthouse были двумя отдельными инструментами для тестирования производительности веб-сайтов

В примере сайта выше сжатие текстовых ресурсов может снизить вес страницы более чем на 78% и ускорить время загрузки страницы на 2,1 секунды.

Примечание. PageSpeed ​​Insights полагается на заголовки ответов, возвращаемые в ваш браузер сервером. Иногда может отображаться ложное предупреждение, даже если у вас включено сжатие GZIP. Это может быть связано с запуском теста скорости на машине, которая использует промежуточный прокси-сервер или программное обеспечение безопасности. Они могут мешать загрузке сжатых файлов с внешних серверов.

Предупреждение GZIP в GTmetrix

GTmetrix показывает предупреждение, если ваш сайт не обслуживает сжатые текстовые ресурсы. Как и Google PageSpeed ​​Insights, он также покажет вам потенциальную экономию, которую вы можете достичь.

Предупреждение GZIP в GTmetrix

Примечание. GTmetrix модернизирует свой алгоритм тестирования скорости, чтобы заменить старые библиотеки PageSpeed ​​Insights и YSlow на новейшие показатели Google Lighthouse. Вы можете ожидать, что его предупреждение о сжатии GZIP будет похоже на то, которое показывает Lighthouse.

Предупреждение GZIP в инструментах Pingdom

Pingdom Tools выдаёт прямое предупреждение о необходимости сжатия компонентов вашего веб-сайта с помощью GZIP.

Предупреждение GZIP в инструментах Pingdom

В разделе описания Pingdom Tools также даёт вам некоторую статистику о важности GZIP. Холодные бобы!

Предупреждение GZIP в WebPageTest

WebPageTest отображает предупреждение на вкладке » Обзор производительности «, если обнаруживает, что какие-либо сжимаемые ответы не обслуживаются наиболее оптимизированным образом.

Предупреждение GZIP в WebPageTest

WebPageTest также выставит оценку, чтобы показать, насколько серьёзным является предупреждение. Например, он оценивает вышеупомянутое предупреждение на 23 балла из 100, что означает, что вам следует исправить его как приоритетное.

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

Accept-Encoding: gzip, deflateЗаголовок HTTP будет поддержан эффективно всеми современными браузерами. Следовательно, большинство веб-хостов, включая Kinsta, по умолчанию включают сжатие GZIP на всех своих серверах.

Когда веб-серверы видят этот заголовок, отправленный браузером, они распознают поддержку браузером GZIP и отвечают сжатым HTTP-ответом, используя content-encoding: gzipзаголовок.

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

Ниже приведены несколько простых способов проверить сжатие GZIP.

1. Онлайн-инструменты для тестирования сжатия GZIP

Использование онлайн-инструмента — самый простой способ проверить, включено ли сжатие GZIP на вашем веб-сайте. Я рекомендую использовать бесплатные инструменты Проверить сжатие GZIP или HTTP-сжатие. Просто введите URL-адрес своего веб- сайта и нажмите кнопку » Проверить» или » Проверить«.

Оба этих онлайн-инструмента покажут вам краткий отчёт о том, включён ли GZIP, а также объём передаваемых данных, которые вы сохранили (или можете сохранить), обслуживая тестовый URL с включённым сжатием GZIP.

Первый инструмент также покажет вам другую важную информацию, такую ​​как тип сервера вашего веб-сайта, тип контента и время сжатия.

Первый инструмент также покажет вам другую важную информацию

Первый инструмент также покажет вам другую важную информацию2

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

Большинство современных CDN, таких как Cloudflare, Kinsta CDN, KeyCDN и CloudFront, поддерживают сжатие GZIP. Вы можете протестировать ресурсы, обслуживаемые CDN, на сжатие GZIP, установив прямую ссылку на ресурсы.

движок KeyCDN, который является традиционным опрашивающим

В приведённом выше отчёте вы можете видеть, что Kinsta CDN использует движок KeyCDN, который является традиционным опрашивающим CDN. Если вы используете Kinsta для размещения своего сайта WordPress, вам не нужно беспокоиться о сжатии GZIP, поскольку оно включено по умолчанию.

Информация

Все планы хостинга WordPress в Kinsta включают бесплатную поддержку Kinsta CDN.

2. Заголовок ответа HTTP «content-encoding: gzip»

Второй способ проверить, доставляет ли веб-сайт сжатый контент GZIP, — это проверить content-encoding: gzipзаголовок ответа HTTP.

Вы можете открыть Chrome DevTools или Firefox Developer Tools и найти этот заголовок ответа в разделе » Сеть «.

Как это выглядит в Chrome DevTools, я уже показывал ранее. Вот как это выглядит в Инструментах разработчика Firefox.

Как это выглядит в Chrome DevTools, я уже показывал ранее. Вот как это выглядит в Инструментах разработчика Firefox

Вы также можете включить опцию «Использовать большие строки запроса» на панели настроек Chrome DevTools, чтобы увидеть как исходный, так и сжатый размер страницы. Как вы можете видеть ниже, размер исходной страницы уменьшился со 118 КБ до 22,9 КБ после сжатия с помощью GZIP.

Вы также можете включить опцию «Использовать большие строки запроса» на панели настроек Chrome DevTools

3. Инструменты для проверки скорости веб-страницы

Большинство инструментов для тестирования скорости веб-сайтов предупреждают вас о том, что вы не используете сжатие, такое как GZIP, для обслуживания ваших веб-страниц. Многие читатели, приходящие к этой статье, вероятно, приходят именно из-за этих предупреждений GZIP, многие из которых я уже подробно обсуждал выше.

Многие читатели, приходящие к этой статье, вероятно, приходят именно из-за этих предупреждений GZIP, многие из которых я уже подробно обсуждал выше

Вы можете использовать такие инструменты, как PageSPeed Insights, GTmetrix, Pingdom Tools и WebPageTest, чтобы проверить, включено ли сжатие GZIP на вашем веб-сайте WordPress.

Как включить сжатие GZIP

Если на вашем веб-сервере не включено сжатие GZIP, есть много способов включить его. Точный метод зависит от того, какой веб-сервер вы используете для размещения своего сайта.

Важно: как всегда, сделайте резервную копию файлов конфигурации вашего сайта и сервера перед их редактированием.

Включите GZIP с помощью плагина WordPress

Самый простой способ включить сжатие GZIP на вашем сайте WordPress — использовать плагин для кэширования или оптимизации производительности.

Например, если вы размещаете ваш WordPress сайт на веб — сервере Apache, W3 Total Cache включает в себя возможность включить сжатие GZIP, находящиеся под его кэш браузера Настройки панели.

Точно так же WP Rocket позволяет автоматически добавлять правила сжатия GZIP. Эти плагины включают сжатие GZIP, добавляя mod_deflateмодуль Apache в файл.htaccess.

Точно так же WP Rocket позволяет автоматически добавлять правила сжатия GZIP

Плагины WordPress требуют разрешений для изменения файлов на вашем веб-сервере. Если у них нет необходимых разрешений, они откажутся или покажут вам ошибку.

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

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

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

Включите GZIP на веб-сервере Apache

Согласно Netcraft, Apache обслуживает больше активных сайтов, чем любой другой используемый сегодня веб-сервер. Это также один из двух рекомендуемых WordPress веб-серверов.

Чтобы включить сжатие GZIP на серверах Apache, вы должны использовать его mod_filterи mod_deflateмодули и настроить их должным образом с правильными директивами. Они направят Apache на сжатие вывода сервера перед его отправкой клиентам по сети.

У вас есть два варианта редактирования конфигураций сервера Apache в зависимости от вашего уровня доступа:

  1. Если у вас есть доступ к главному файлу конфигурации сервера (обычно называемому conf). Рекомендуется использовать его для настройки Apache, поскольку файлы.htaccess могут замедлить работу Apache.
  2. Если вы не можете получить доступ к основному файлу конфигурации сервера. Что обычно бывает с большинством провайдеров общего хостинга WordPress, вам необходимо настроить Apache с помощью файла.htaccess.

Первый вариант предназначен строго для системных администраторов, поскольку хостинг-провайдеры редко позволяют редактировать основной файл конфигурации сервера. Объяснение того, как это сделать таким образом, выходит за рамки данной статьи. Вы можете обратиться к образцам конфигураций сервера Apache, совместно используемым проектом HTML5 Boilerplate, и к документации Apache, чтобы начать работу.

Второй вариант идеально подходит для большинства владельцев сайтов WordPress, поскольку многие провайдеры виртуального хостинга позволяют редактировать файлы.htaccess.

Для начала используйте SFTP или онлайн-менеджер файлов вашего хоста, чтобы найти файл.htaccess в корневом каталоге вашего сайта WordPress. Затем добавьте к нему приведённый ниже фрагмент кода.

Важно: убедитесь, что mod_filterмодуль активен на вашем сервере. У большинства веб-хостов он включён по умолчанию, но в противном случае AddOutputFilterByTypeдиректива не будет работать и может вызвать ошибку HTTP 500. Вы можете проверить журналы ошибок своего сервера, если у вас возникнут проблемы после добавления фрагмента кода ниже.

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml  

  # Remove browser bugs (only needed for ancient browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

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

Теперь ваш веб-сервер должен обслуживать сжатые файлы для всех расширений файлов, перечисленных выше

Теперь ваш веб-сервер должен обслуживать сжатые файлы для всех расширений файлов, перечисленных выше. Вы можете подтвердить это, используя любой из упомянутых выше методов.

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

<IfModule mod_deflate.c>
  # force compression for clients that mangle 'Accept-Encoding' request headers
  <IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
    RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
  </IfModule>
  </IfModule>

  # compress all output with one of the following file extensions
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE "application/atom+xml" \
                                  "application/javascript" \
                                  "application/json" \
                                  "application/ld+json" \
                                  "application/manifest+json" \
                                  "application/rdf+xml" \
                                  "application/rss+xml" \
                                  "application/schema+json" \
                                  "application/geo+json" \
                                  "application/vnd.ms-fontobject" \
                                  "application/wasm" \
                                  "application/x-font-ttf" \
                                  "application/x-javascript" \
                                  "application/x-web-app-manifest+json" \
                                  "application/xhtml+xml" \
                                  "application/xml" \
                                  "font/eot" \
                                  "font/opentype" \
                                  "font/otf" \
                                  "font/ttf" \
                                  "image/bmp" \
                                  "image/svg+xml" \
                                  "image/vnd.microsoft.icon" \
                                  "text/cache-manifest" \
                                  "text/calendar" \
                                  "text/css" \
                                  "text/html" \
                                  "text/javascript" \
                                  "text/plain" \
                                  "text/markdown" \
                                  "text/vcard" \
                                  "text/vnd.rim.location.xloc" \
                                  "text/vtt" \
                                  "text/x-component" \
                                  "text/x-cross-domain-policy" \
                                  "text/xml"
  </IfModule>

  # define and map media types to their appropriate encoding type    
  # Using SVG format (Scalable Vector Graphics) is highly recommended to    
  # load logos, icons, text, and simple images. You can compress .SVG files
  # further using GZIP to create .SVGZ files. However, most browsers don’t
  # know that they need to decompress them first if they’re not served
  # without an appropriate ‘content-encoding’ HTTP response header. Thus,
  # these images wouldn’t show up in the browser. Hence, this module.

  <IfModule mod_mime.c>
    AddType image/svg+xml svg svgz
    AddEncoding gzip svgz
  </IfModule>

</IfModule>

Вы можете узнать больше обо всех используемых здесь директивах, перейдя в его репозиторий кода и проследив за всеми связанными там ресурсами.

Включите GZIP на веб-сервере Nginx

Согласно Netcraft, Nginx является наиболее часто используемым веб-сервером для компьютеров с выходом в Интернет. Если текущая тенденция сохранится, он скоро обгонит Apache и станет самым используемым веб-сервером среди активных сайтов. Даже Kinsta использует Nginx для поддержки своих оптимизированных для производительности хостинговых решений для WordPress.

Вы можете включить сжатие GZIP на своём веб-сервере Nginx с помощью директив, определённых в модуле ngx_http_gzip_module.

Для начала добавьте приведённые ниже директивы в файл nginx.conf. Как правило, вы можете найти этот файл на своём сервере /etc/nginx/nginx.conf.

# enables GZIP compression
gzip on; 

# compression level (1-9)
# 6 is a good compromise between CPU usage and file size
gzip_comp_level 6;

# minimum file size limit in bytes to avoid negative compression outcomes
gzip_min_length 256;

# compress data for clients connecting via proxies
gzip_proxied any;

# directs proxies to cache both the regular and GZIP versions of an asset
gzip_vary on;

# disables GZIP compression for ancient browsers that don't support it
gzip_disable "msie6";

# compress outputs labeled with the following file extensions or MIME-types
# text/html MIME-type is enabled by default and need not be included
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/vnd.ms-fontobject
application/wasm
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/bmp
image/svg+xml
text/cache-manifest
text/calendar
text/css
text/javascript
text/markdown
text/plain
text/xml
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;

Если ваш сайт обслуживает большие файлы JS и CSS, вы можете увеличить размер буфера, используемого для сжатия, добавив следующую директиву в свой файл nginx.conf :

# sets the 'number' and 'size' of buffers for GZIP compression
# default buffer size is 4K or 8K depending on the platform
gzip_buffers 16 8k;

Не забудьте перезагрузить Nginx после сохранения файла nginx.conf.

sudo service nginx reload

Наконец, вы должны проверить, включено ли на вашем сервере сжатие GZIP. Вы можете обратиться к документации Nginx для получения актуального списка всех ngx_http_gzip_moduleдиректив.

Включить GZIP на веб-сервере IIS

Информационные службы Интернета (IIS) от Microsoft — третий по популярности веб-сервер, используемый сегодня. IIS в основном развёртывается в корпоративных средах, работающих под управлением Windows, особенно для настройки корпоративных серверов интрасети и экстрасети.

Он редко используется для размещения сайтов WordPress из-за различных проблем совместимости.

Тем не менее, если вы окажетесь в одной из тех редких ситуаций, когда вам нужно включить сжатие GZIP в IIS, вы можете обратиться к документации Microsoft, чтобы начать работу. Вы также можете найти эту ветку переполнения стека полезной.

Альтернативы сжатию GZIP

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

Мир сжатия данных в Интернете постоянно развивается

За последние несколько лет широкую популярность приобрёл новый алгоритм сжатия: Brotli. Сжатие веб-шрифтов WOFF2 изначально было основным направлением деятельности Brotli. Но с тех пор оно расширилось, чтобы поддерживать сжатие для любого типа данных.

Brotli сжимает данные лучше, чем GZIP, но для сжатия данных требуется значительно больше времени и ресурсов. Тем не менее, его время декомпрессии сравнимо с временем декомпрессии GZIP, хотя оно всё же немного медленнее.

Brotli сжимает данные лучше, чем GZIP, но для сжатия данных требуется значительно больше времени и ресурсов

Большинство браузеров сегодня поддерживают Brotli, но использовать его на сайтах WordPress всё ещё довольно сложно. Вы должны разместить свой сайт у поставщика услуг хостинга. Который поддерживает Brotli или позволяет установить библиотеку Brotli. Большинство управляемых хостов WordPress ещё не поддерживают его напрямую, но если вы используете CDN, например Cloudflare или KeyCDN, вы можете легко включить его.

Brotli показывает большие перспективы для сжатия статических ресурсов. Akamai опубликовал подробную статью, в которой сравнивает Brotli и GZIP. Вы можете проверить это, чтобы узнать больше о Brotli.

Заключение

Хорошо оптимизированный Интернет подходит всем. Пользователи любят более быстрые веб-сайты, владельцы веб-сайтов любят снижение платы за хостинг. А веб-хосты любят оптимизацию, достигнутую на их серверах. Методы сжатия, такие как GZIP, — один из лучших способов ускорить загрузку страницы для ваших посетителей.

Владельцы сайтов WordPress могут мгновенно ускорить работу своих сайтов, включив сжатие GZIP. Kinsta включает его по умолчанию на всех своих серверах, но для других в этой статье рассматриваются несколько способов включения сжатия GZIP на различных веб-серверах.

 

Оцените статью
bestprogrammer.ru
Добавить комментарий