Gzip сжатие: разновидности и как включить
Gzip сжатие применяется для уменьшения времени загрузки веб-страницы. Не стоит пренебрегать мероприятиями, ускоряющими работу сайта, поскольку этот фактор — один из основных при ранжировании поисковиком. Иногда позиция ресурса определяется миллисекундами, в течении которых загружаются элементы страницы.
Что представляет собой процесс?
Архивированный контент является частью спецификации HTTP 1.1, поэтому он поддерживается новыми версиями браузеров. По статистике, gzip сжатие используют 56% веб-ресурсов. Обработка текстовых форматов (CSS, XML, Javascipt, txt и HTML) уменьшает объем данных до 70%.
Кроме этого процесс применим к скриптам (JavaScript, jQuery). Для того чтобы узнать, поддерживает ли сайт компрессию, можно воспользоваться сервисом Gzip Checker.
Gzip сжатие работает следующим образом:
- сервер резервирует данные;
- при получении информации браузер распаковывает ее и показывает результат.
В основе процесса лежит алгоритм Deflate — комбинация методов LZ77 и Хаффмана. Этот вид архивации обеспечивает компрессию без потерь, т.е. исходные данные полностью восстанавливаются при распаковке.
Gzip — проверенный многими пользователями способ сжатия, хотя не является лучшим. Причина его популярности в том, что он предлагает баланс между скоростью и степенью компрессии.
Существует 2 варианта того, как включить сжатие gzip:
- динамический;
- статический.
Каждый из способов имеет свои недостатки и преимущества. Главное — перед внесением изменений сделать резервную копию контента и редактируемых документов.
Динамическое сжатие
Существенный недостаток этого вида компрессии — увеличение нагрузки на сервер и хостинг провайдера. Динамическое gzip сжатие представляет собой потоковое резервирование файлов с помощью веб-сервера и дальнейшую распаковку в браузере пользователя. При этом уменьшается объем передаваемых данных в 3-5 раз, что приводит к более быстрой загрузке страниц сайта.
Поскольку динамическое сжатие ресурсов с помощью функций gzip задействует средства сервера, оно возможно на более дорогих тарифных планах. Поэтому перед его использованием нужно просчитать все за и против.
Включите сжатие html, css и js, скопировав в файл htaccess следующий код:
- SetOutputFilter DEFLATE;
- Header append Vary User-Agent;
Сам htaccess можно найти в корневой папке хостинга. При его отсутствии нужно создать одноименный файл с помощью php, html или css редактора. Далее документ необходимо поместить на хостинг в папку с названием сайта, после чего вставить в него вышеизложенный код.
После этого следует проверить с помощью какого-либо из специальных онлайн-ресурсов, начала ли происходить компрессия. Для этого нужно ввести url своего сайта и нажать кнопку Check.
Сжатие страницы этим методом подходит только для работы с серверами под управлением Apache, который используется более чем в 90% случаев. Если же манипуляции с документом не дали результата, нужно уточнить у провайдера возможность включения этой функции на хостинге.
Htaccess — файл дополнительной конфигурации Apache и подобных серверов. Благодаря ему регулируются доступ к каталогам, переназначение типов документов и другие параметры. При этом не задействуется главный конфигурационный файл и не нарушается работа всего сервиса. Htaccess отличается от httpd.conf тем, что действует также на дочерние каталоги.
Gzip может сжимать на нескольких уровнях — от 1 (быстрый, но с минимальным результатом архивирования) до 9 (медленный, но с максимальной компрессией). По умолчанию стоит значение 6. Это обеспечивает достаточный уровень обработки, не перегружая процессор.
Последняя версия плагина Hyper Cache позволяет осуществить gzip сжатие для WordPress. Для его включения необходимо поставить галочку напротив соответствующей опции в разделе Компрессия.
Однако эта функция сработает не на всех сайтах. Например, страница с большим количеством изображений (портфолио дизайнера, фотоблог) будет отображаться некорректно.
Для настройки компрессии на WordPress не обязательно устанавливать Hyper Cache. Архивирование станет возможным после добавления в файл index.php следующей строчки: ob_start («ob_gzhandler»);
Стоит уточнить, что этот код не заменит весь функционал плагина. Документ index.php можно найти в корневом каталоге сайта.
Статическое сжатие
Осуществление этого варианта потребует больше времени и усилий, но в результате не будет оказываться лишняя нагрузка на сервер. Процесс выглядит так:
- создаются сжатые копии скриптов и файлов css;
- архивы помещаются в папку к полным версиям;
- при запросе в браузер поступают сжатые данные.
Таким образом сервер не тратит ресурсы на потоковую компрессию информации.
Тема в WordPress состоит из php файлов. Их взаимодействие с браузером приводит к генерированию html, в результате чего пользователь видит веб-страницу. Поэтому нельзя поместить архив с такого рода документами в корневую папку. Этот вид компрессии не подходит для архивирования html страниц.
Перед тем как включить статическое сжатие на сайте, необходимо скачать файлы js и css, а также архиватор 7-zip на компьютер. Далее нужно выполнить следующие действия:
- Установить программу.
- Запустив архиватор, нажать на нужном файле правой кнопкой мыши.
- В меню выбрать «7-zip», затем — «Добавить к архиву».
- В появившемся окне отметить интересующий формат компрессии и режим изменения. Другие параметры менять не стоит.
После этого пользователь получит 2 файла: оригинал и архив с расширением gz. Не все браузеры поддерживают такой формат. Поэтому нужно удалить окончание после точки. В результате получится файл style.js или style.css, который в действительности будет архивом.
Некоторые старые версии браузеров не работают с gzip компрессией, поэтому название оригинального файла должно выглядеть так: style.nogzip.css (или js). Эту процедуру нужно повторить со всеми документами, которые загружаются вместе со страницами сайта.
Чтобы сжатие для внешних скриптов и стилей заработало, необходимо поменять строки, которые отвечают за gzip архивирование, на модифицированные под статический способ. Если ранее в htaccess был помещен код для динамической компрессии, его нужно обязательно удалить, поскольку с ним процесс не запустится.
Компрессия данных актуальна даже в эпоху высокоскоростного соединения и неограниченных хранилищ. Особенно важно использовать сжатие при оптимизации сайтов для мобильных устройств.