Скорость загрузки сайта – наиважнейшая весчь для процветания ресурса. Однако блог частенько виснет. А нервные клетки админа транжирятся попусту, ибо он склонен в подобной горести необдуманно ругать нерадивого хостера.
Хотя, по чести, большинство сайтов новичков нуждается в доработке.
Давайте же включим gzip сжатие файлов в.htaccess
на сервере, а если понадобится то и на хостинге.
…работаем…
Следует сказать вот что: большинство хостеров намеренно не включают режим обслуживания gzip сжатия. Почему!? А потому что большинство админов, в начале своих славных дел, совершают какие-то ошибки в настройках сайта. В частности, страдает html код из-за прописки скриптов улучшалок и т.п.
И среди этих ошибок встречаются грубейшие недоработки, которые и ведут к постоянному завису блога, и соответственно нещадно перегружают cpu сервера на вашем хостинге.
Вот по этой причине, хостеры и страхуются, ограничивая…
Но мы сегодня говорим о другом… И коли вы уверены в своём детище – вперёд!
Как попросить хостера включить gzip сжатие файлов вашего сайта
Советую для начала убедиться в том, что ваш хостинг вообще включил сжатие gzip в режиме mod_deflate.
Для этого следует отправить ласковое коммюнике в техподдержку (Support) и попросить загваздырить соответствующее обслуживание вашему ресурсу.
Будьте внимательны! По ответу братии хостеров можно понять, стоит ли вообще связывать свою судьбу с выбранным хостом и его сжатием.
…через какое-то время придёт ответ, а вместе с ним (бандероль с кодом-скриптом) вам предложат прописать в ваш файл .htaccess
какие-то на их усмотрение нужные строчки.
подготовка сайта к режиму gzip-сжатия
Ну а коли ваш хостер плут!! и ничего конкретного не предложит, кроме сухого ответа “gzip-сжатие на вашем аккаунте включено”, то вот вам код, который необходимо прописать в .htaccess
.
Чтоб не мудрить, прописывайте перед строкой # END WordPress
.
Внимание! Редакцию файла .htaccess
пока не сохраняйте!
#gzip сжатие
<IfModule mod_deflate.c>
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.0678 no-gzip
BrowserMatch bMSIE gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </IfModule>
</IfModule>
# фин gzip сжатие
Далее целесообразно посетить консоль управления сайтом. А именно настройки какого-то вашего плагина кэширования. Хорошо бы если у вас был установлен WP Super Cache – в его настройках нужно поставить галочку в строке Сжимать файлы кэша чтобы ускорить работу. (Рекомендовано).
Ну а в иных подобных плагинах будет что-то принципиально похожее…
Это, возможно, вас избавит от ручного сжатия файлов css
и js
. А вообще всё проверяйте опытным путём. Тестируйте, ибо реализация правильного gzip сжатия файлов для каждого сайта индивидуальна.
Внимание! И регулировку плагина пока не сохраняйте!
Итак!! …теперь необходимо пройти вот по этой ссылке.
Далее откройте для чистоты экса и ЭТУ ссылку в новой вкладке… Тут неплохо проверять скорость загрузки и ответ сервера… который, к слову, должен быть 200.
Ну и …советую открыть этот модный тестер скоростей… (фото ниже) здесь возможно проверить оптимизацию чтения сайта и на мобильных устройствах !!
…хотя, думаю, на многие значения тестера обращать внимание не стоит…
К слову, на фотках показаны приличные значения, но !! если они будут у вас ниже, совсем не значит то, что нужно поднимать “пыль” и бить тревогу – я знаю достаточно сайтов, которые замечательно живут и много более низкими значениями – всё зависит от целей и сообразностей админа ! …но об этом подробнее в иной подходящий по теме раз…
Online консультация по настройкам и созданию сайтов на WordPress
Идём дальше… .htaccess
у нас поправлен… плагин кэширования включен, НО !! настройки пока не сохранены.
Ну что!?
Проверяем работу сайта без включенных вышеописанных настроек.
Вбейте домены вашего тестируемого сайта и жмите пуск. …
У вас вряд ли по началу будет так же как на фотках – но не отчаивайтесь! К результатам… нужно стремиться!! …и коли нынче не удастся достичь подобного, завтра подправите, и получится..!
Немного поясню по работе тестеров: примерные значения, на которые следует обратить взор, я подчеркнул, – в этом тестере-анализаторе нам потребуются именно они. А на скорость загрузки советую внимания не обращать – эта услуга частенько глючит.
На страничке же вглядитесь в информационные величины своего ресурса ( вес в кб вашего блога ВООБЩЕ – подчёркнуто вверху). Ну и на файлы стилей – style.css
И js
1.11.3 (если он у вас в работе, то вес js-документа в несжатом состоянии 95кб).
Запомните эти величины… для дальнейшего сравнения работы правильного gzip сжатия.
Всё! Далее серьёзно… Давайте вернёмся в файловый менеджер и сохраним новую редакцию .htaccess
(с кодом) и в админконсоли сохраним поставленную галочку в чекбоксе настроек плагина WP Super Cache.
Вновь вернёмся на странички анализаторов… Проверяем!
В некоторых случаях, вышеописанных регулировок по gzip-сжатию бывает достаточно, масса сайта значительно сокращается… а соответственно и сокращается же время скорости загрузки страниц блога.
Но, возможно, и так частенько бывает, что этого мало для достижения приличной скорости прогрузки. Исключительность хостинга и самого ресурса, знаете ли…
Тогда следует поступить так:
Усиливаем gzip-сжатие в документе .htaccess
Вновь открываем файл и дописываем следующие кодированные примеры:
включаем кэширование в браузере на стороне пользователя
# Перенаправление на gzip файлы
AddEncoding gzip .gz
<FilesMatch "\.js.gz$">
ForceType text/javascript
Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch "\.js$">
RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule (.*)\.js$ $1\.js.gz [L]
ForceType text/javascript
</FilesMatch>
<FilesMatch "\.css.gz$">
ForceType text/css
Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch "\.css$">
RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule (.*)\.css$ $1\.css.gz [L]
ForceType text/css
</FilesMatch>
# Перенаправление на gzip файлы
Включаем gzip кэш-компрессию в браузерах посетителей
# Включаем кэш в браузерах посетителей
<ifModule mod_headers.c>
# Отключаем кеширование php и других служебных файлов
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
# Включаем кэш в браузерах посетителей
# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>
# кеширование в браузере на стороне пользователя
Кстати сказать, этот пример у меня работает неплохо…
Строки от 4 – по 16 – время хранения форматов картинок: указан 1 год (возможно регулировать).
…далее время хранения и сброса кэша документации. Это если коротко (а вообще, все эти величины тема отдельной статьи).
А вот ещё один вариант: (новое решение)
# Настройка кэширования на медиа-файлов в течение 1 недели
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>
# Настройка кэширования на медиа-файлов в течение 1 недели
# Настройка 2 часа кэширование на часто обновляемых файлов
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>
# Настройка 2 часа кэширование на часто обновляемых файлов
Усиливаем выполненное кеширование в .htaccess
# Усиливаем кеширование
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
# Усиливаем кеширование
Сохраняйте редакции!
После этого кэширование и gzip-сжате файлов должны включиться в нормальный режим работы.
Поздравляю…
НО! Ввиду разности ресурсов и их отработки с определённым скриптом, вам всё же предстоит подстроить свой блог. Попробуйте исключать какие-то показанные выше коды (очень возможно, что в вашем случае какие-то кодированные элементы не понадобятся), и таким образом, настроить более оптимальную работу, ибо незачем перегружать файлы лишним скриптом.
Можете перейти ещё на одну страничку тестера и справиться о результатах там.
В последней строке показан процентный итог того, на сколь легче стал ваш блог или сайт. На картинке 75% сброшено, за счёт сжатия документации блога…
На этом занавес представления опускается… НО !!
Очень важно !!
Прописка кода в файл functions.php, это дело хорошее !! Однако не всё и вся стоит в него пихать – правильнее (и для скорости загрузки в том числе) сгруппировать некоторые циклы кода в оформленном плагине: легко, надёжно и правильно в плане создания сайта.
Все доказательства «ЗА» читать:
Вот ссылка – как сделать собственный плагин WordPress – добавочный файл my-functions.php.
...город веб мастеров Михалика.ru © - запросто с WordPress - ATs media squad
Как правильно закомментировать на время код HTML, CSS или PHP, JS
Как работать с условными тегами WP: пример на странице пагинации – закрываем в noindex,follow
mihalica.ru !
Перелопатил кучу сайтов, перепробовал 6-7 плагинов кеширования и минификации файлов. Ничего не сработало. Прочитал статью, накопировал код в htaccess – и тож ничего. Как было 36% – так и осталось. :(
Сижу сжимаю руками. Один единственный плагин, который хоть как то повлиял на этот % – Wp Super Cache. Отличный плагин, снизил скорость на 7%. По трем мануалам настраивал. Снес. Тлен.
Сергей, не знаю что и посоветовать, кроме банальной перепроверки настроек сайта, хостинга (в статье говорилось)… и, важно, перепроверять правильность (валидность) HTML… у Вас встречается много ошибок и дубликатов тегов (издержки магазов)).
Имейте в виду и дубли кода .htaccess С ПЛАГИНАМИ…
Вообще (если мало практических знаний) отлаживать настройки стоит постепенно! код за кодом и т.п. …и тестировать.
Я, обычно, когда настраиваю, первым делом в саппорт хоста (частенько там мудрят с сжатием gzip в режиме mod_deflate.) – и если всё ОК, то – остальное фигня)
Михаил, я так понял сначала стоит обратиться к хостинг провайдеру. Если они предоставляют услугу сжатия, то вставить их код, если нет, то твой?
Ну, в общем, нелишне обратиться к своему хостеру. Хотя, сейчас по умолчанию всякие сжатия подключают на хостах сразу же (на большинстве), однако – спрос всегда полезен…
А дальше методично тестить варианты кода! Дело в том, что подход к сайтам индивидуален…
Код в статье полностью рабочий… так что выбирать требуемое и тестить нужно)
Можно попросить о помощи. Навставляла кодов в .htaccess. Теперь заголовки н2 не прописываются, картинки и теги исчезают. Что делать-то?
Привет!!
Помогу, конечно же.
Пишите мне на почту (адрес будет в письме)… Вернем работоспособность вашего сайта…
Коды поудаляла. Все вернулось как прежде почти. Вот только что не вернулось. Зайдя в админпанель последняя размещенная запись почему-то отсутствует. Приходится кликать на вкладку “Опубликованные” и тогда попадаешь на запись и можно редактировать.А по вкладке Все записи – не вижу ее. Ужас, короче говоря…чтоб я еще раз кому-то поверила и эти коды начала внедрять) ни за что.
Коды нужно внедрять осторожно, но не все скопом… Настройка сайта сводится сутью к индивидуальности конкретного сайта, хостига…
В этой статье – в основном, скажем так, настройки кэширования (сжатия)… Всё это настраивается осторожно (в тексте статьи даны пояснения).
Если вы удалили все коды – то теперь требуется очистить кэш браузера и сайта..! У вас просто закэширована админпанель (бэкэнд).
p/s
тут всё дело не в верить/не верить – но в четком понимании того, что требуется и как решать…
Все нормально. Историю почистила, во вкладке “Все записи” все записи теперь отражаются как прежде.
Ну и замечательно!
Теперь тихонько (и спокойно) можно приступить к повторной настройке кэширования (ускорению сайта).
==
Вот из-за этого куска кода у вас кэшировалось:
Можете этот код убрать/закомментировать. ИЛИ в строке
html|htm|php
убрать|php
.