Как добавить автоматическое сжатие страниц

Примеры кодов, включающие предварительное сжатие содержимого страниц перед отдачей браузеру.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

Первый способ самый простой — использовать специальные плагины кэширования. Многие из них уже содержат функции автоматического сжатия . Например, с предварительным сжатием прекрасно справляются WP Super Cache, W3 Total Cache и Hyper Cache.

Если у вас на сервере установлен Apache2, то можете воспользоваться специальными директивами для создания сжатых копий страниц. Для этого откройте файл .htaccess и добавьте в него следующий код:

# предварительное сжатие

  
    SetOutputFilter DEFLATE
  

[info txt=»Практически все виртуальные хостинги уже имеют настроенный Apache2, поэтому они автоматически поддерживают директивы, указанные в файле .htaccess. Поинтересуйтесь у хостера, так ли это. Если же программная среда Apache2 не установлена на сервере, обслуживающем ваш блог, то воспользуйтесь следующим советом.»]

Универсальным же способом является включение предварительного сжатия в виде функции. Откройте файл functions.php и добавьте в него следующий код:

/* предварительное сжатие */
function enable_zlib(){
    ini_set('zlib.output_compression', 'On');
    ini_set('zlib.output_compression_level', '1');
}
add_action('init', 'enable_zlib');

То же самое можно получить, если вставить следующий код в файл header.php, в самое его начало первыми строчками:


[info txt=»Предварительное сжатие требует от сервера наличие включенного модуля mod_deflate. Поинтересуйтесь у вашего хостера, можно ли использовать на вашем хостинге сжатие файлов, указав на библиотеку zlib или модуль mod_deflate — в подавляющем большинстве случаев все это включено по умолчанию.»]

Как видим, в коде указана степень сжатия. Какую степень сжатия использовать? Казалось бы, чем выше — тем лучше, однако тут следует учитывать то, что чем больше степень сжатия, тем больше и нагрузка на сервер, особенно на CPU. Практика показывает, что вполне хватает степени сжатия, равной 1. Например, при сжатии с разной степенью файлов объемом 22 килобайта были получены такие данные:

0 = 22549
1 = 4297
2 = 4279
3 = 4264
4 = 4117
5 = 4097
6 = 4063
7 = 4011
8 = 3998
9 = 3996

То есть при сжатии со степенью 1 и степенью 9 разница практически отсутствует по сравнению с исходным весом, а нагрузка на сервер остается минимально возможной. Предварительное сжатие может показаться неэффективным, однако это не так — в большинстве случаев оно может существенно сократить время загрузки блога. Так же предварительное сжатие сокращает исходящий трафик, иногда в 5-6 раз, что немаловажно для тарифных планов с лимитом трафика (например, такие тарифы часто встречаются на VDS и VPS).

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. rainylive

    через .htaccess сжатие можно включить таким вот еще способом

    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch bMSIE !no-gzip !gzip-only-text/html
    Ответить
    1. Браузеры можно и не указывать — сейчас все понимают сжатый контент, даже IE, а старые версии, которые не понимают сжатый код, они его и не качают.

      Ответить
      1. rainylive

        :))

        Ответить