Блог Алексея Гончарова
Не пропустите новые статьи!

Новые статьи блога на Ваш e-mail:

Канал блога на YouTube
Где в мире читают блог
Архивы
Волшебная кнопка

Hyper Cache, плагин кэширования WordPress для снижения нагрузки на хостинг и ускорения сайта – установка и настройка.

Hyper Cache

Всем привет. *hi*  Эта статья будет про плагин кеширования Hyper Cache, его настройку, установку и разъяснение, зачем и почему он обязательно нужен на wordpress блоге. Если вы владеете своим сайтом или блогом, а хостинг ругается на чрезмерную нагрузку от вашего аккаунта на сервер, либо скорость загрузки сайта низкая, то вы попали куда надо. Эта статья вам, надеюсь, поможет. :aga:   Это я так решил размять пальцы и вспомнить, как писать статьи.  :-))

Как работает типичный wordpress сайт без кэширования на обычном хостинге.

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

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

Итак, типичный сайт на wordpress состоит из множества файлов, скриптов и прочей ереси, которая у вас и у меня на экране монитора отображается в структурированное, в понятном браузеру формате HTML, и, как-то оформленное нечто. В зависимости от бюджета и фантазии вебмастера более или, соответственно, менее красивое и навороченное в дизайне. Всё это снабжено неким смыслом в виде текстов, картинок, видео или даже аудио сопровождения.

И вот теперь, самое интересное: суть и смысл в виде всех текстов, ссылок и т.п. находится в одном месте вашего хостинга – в базе данных сайта MySQL. А всё остальное, как картинки, скрипты, стили, тема сайта, оболочка, сам движок wordpress и прочий файловый хлам «лежит» в другом месте – в файловом менеджере на жестких дисках сервера вашего аккаунта хостинга и работает на другом, непонятном для браузера языке PHP.  :wacko:

Конечно, в реальности, всё это расположено, где-то в одном месте, то есть под одной крышей, но если провести аналогию с компьютером, то тексты на диске C:, а файлы на диске D: и всё распихано по разным папкам и подпапкам, да ещё и в архивах – как-то так, наверное, для наглядности.

Но если вы уловили смысл этой наглядности, то теперь понимаете, почему для wordpress-а существуют определенные технические требования к хостингу – не каждый хостинг сможет его обслужить и не на каждом он сможет, вообще, работать.  *ne-a*

А теперь представим, что вы, или ваш посетитель открыл какую-то статью на вашем сайте. Что вы/он(а) видите и что происходит на самом деле?

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

Если же сказать более грамотно технически, то все файлы движка вордпресса работают на языке PHP, а браузер понимает только HTML. Вот и приходиться движку и серверу, выполняя запрос собирать пазл из кусков кода PHP и данных MySQL, переводя всё это в HTML формат, чтобы браузер мог его правильно отобразить. То есть готовая HTML страница каждый раз генерируется на сервере снова, снова и снова…   *bums* Даже при простом обновлении окна браузера с сайтом или переходе по какой-то ссылке.

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

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

А если к этому добавить ещё активность поисковых роботов, которые точно так же нагружают сервер своими запросами, да ещё и всяких «редисок», которые пытаются вломиться к вам на сайт ради забавы, или конкретной цели напакостить, то получается, что в один «прекрасный» момент вы получите сообщение о превышении допустимой нагрузки. Знакомая картина… :-(  И вот теперь после разъяснения сути проблемы мы и перейдем к её решению.

Что делает плагин кеширования Hyper Cache, как снижает нагрузку на хостинг и почему он нужен?

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

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

Суть кеширования очень проста, но от этого не менее действенна, плюс на глаз ни вы, ни ваш посетитель не заметите разницы. И вот в чем она.

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

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

Суть здесь в том, что в каждой такой страничке уже есть всё необходимое для её привычного отображения вместе с текстами и оформлением, и всё это отдаётся сервером уже не склеенное из кусочков пазла PHP+MySQL, а готовое целиком и полностью.

Для наглядности пара картинок, как работает сайт без кэширования

без кэширования

и как с включенным кэшированием.

кэширование

Думаю, разница очевидна – отпадает связка PHP+MySQL. А значит, отпадает существенная часть процессов, вызывающих ту самую нагрузку на сервер.  *fuh*

Единственный нюанс здесь в том, что при включении такого кеширования растет занимаемое дисковое пространство от сайта на сервере, так как для каждой страницы создается её статичная html копия. Но, например, для моего сайта размер кэша равен 30-45 Мб, что некритично для моего тарифа и дискового места.

Плагин кэширования Hyper Cache – как установить на Вордпресс блог, настроить и почему именно он?

Начну с последнего – почему именно Hyper Cache? Когда-то, давным-давно, я уже пробовал подобные ему плагины, но они вызвали больше проблем и конфликтов, чем пользы, поэтому я тогда от них отказался до недавнего времени (где-то до полугода) в пользу Hyper Cache, так как мой хостинг меня просто достал   *sick* своими напоминаниями с разводами на дорогие тарифы из-за нагрузки. Но про хостинг, это отдельная история и не сейчас – если интересно, то не пропустите,   ;) поделюсь своим горьким опытом.

Плагин Hyper Cache можно скачать с сайта его автора, либо из репозитария wordpress, либо прямо из админки найти по названию. Скачать, установить.

Прежде чем активировать, нужно включить кэширование в самом движке wordpress через добавление одной строчки кода в файл wp-config.php, который расположен в корневой папке сайта. Не меняйте в этом файле ничего лишнего   *punish*  , так как можете угробить сайт!  *scare*   Лучше сделайте резервную копию этого файла перед изменением!  *ok*

Надо добавить эту строку кода:

define(‘WP_CACHE’, true);

в любом месте до строки:

/** Абсолютный путь к каталогу WordPress. */

Я влепил сразу после:

/** Название базы данных WordPress */

И получилось так:

/** Название базы данных WordPress */

define(‘WP_CACHE’, true);

define(‘DB_NAME’, ‘noname’);

Далее возвращаемся в админку и активируем плагин. Если никаких «ругательств» в настройках плагина Настройки – Hyper Cache не появилось, значит все нормально и можно переходить дальше.

Если вылезло предупреждение, то, возможно, надо установить права на папку wp-content или wp-content/plugins/hyper-cache не ниже 700. Если такое случилось, то плагин просто не смог создать свою рабочую папку кэша wp-content/cache/hyper-cache из-за ограничения в правах. После создания рабочей папки с кэшем можно права вернуть на первоначальные, но не ниже 700 для папки кэша.

После активации крайне желательно плагин настроить под свои потребности, так как настройки по умолчанию тоже рабочие, но там есть много нюансов, на которых остановлюсь подробнее :aga:   .

Идём в раздел админки Настройки – Hyper Cache, где будет такая картина с моими настройками. Эта и все последующие картинки кликабельны и откроются в полном размере в новой вкладке.

Hyper Cache настройка

Вкладка Главные – это основные настройки плагина Hyper Cache.

Disable translations – если плохо владеете английским, то снимите здесь галочку – сможете видеть частичный кривоватый перевод настроек плагина.

Далее по пунктам:

Кэшированные страницы, будут действительны в течение (в оригинале Cached pages will be valid for) – 48 часов, это срок кеширования страниц в часах. Хотите дольше – ставьте больше, меньше – соответственно. Если поставите 0, то это включит кэш навсегда.

Включить сжатие (Enable compression) – ДА, но нужно проверить, чтобы не было «крокозяблов» на сайте. Если они появились, значит надо снять чекбокс.

Enable on-the-fly compression - сжатие налету, ДА. Если включено, то идет сжатие ещё не кэшированных страниц прямо налету.

Когда обновлена домашняя страница, обновятся остальные (When the home is refreshed, refresh even the) – у скольких последних записей очистится кэш при обновлении главной. У меня выставлен 0.

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

Когда записи отредактированы (When a post is edited) – отмечены пункты очистить кэш архивов, рубрик, тэгов, но не главной. Если запись изменилась, например вы присвоили ей новую рубрику, тэг, или дату, то логично всё обновить.

При написании комментария (When a post receives a comment) – здесь у меня очистится всё. Нужно экспериментировать, согласно частоте комментирования на вашем сайте. Если комментарии появляются часто, то постоянная очистка кэша создаст лишнюю нагрузку, поэтому экспериментируйте.  :unsure:

Папка кэша (Cache folder) – этот параметр я не трогал и вам не советую, если только вы наверняка не знаете, что делаете, так как можно полностью «грохнуть» сайт. *scare*  Об этом предупреждает надпись в графе этого пункта. Папка кэша, которую плагин создаст автоматически, будет по адресу wp-content/cache/hyper-cache. Если же вы сами решите создать свою папку и там окажутся рабочие файлы сайта или движка, то при перезаписи кэша они могут быть удалены плагином со всеми вытекающими печальными последствиями для сайта – учтите это!  *think*

Далее эта функция будет выполняться через (Next autoclean will run in) – самоочистка от устаревших файлов для меньшей потери дискового пространства, ДА. Здесь при включенном пункте будет виден остаток времени до следующего удаления просроченных файлов. Рекомендуется включить, чтобы не отдавать поисковым роботам документ с просроченным сроком годности. В противном случае они могут получить старый пост, а не его обновлённый вариант, например.

Разрешение кеширования браузерами (Allow browser caching) – ДА, 24 часа. Полезный пункт, который даёт разрешение на сохранение части сайта в кэше уже браузера посетителя, что также существенно снижает нагрузку на сервер и ускоряет загрузку страницы при последующих заходах. Здесь можно экспериментировать и выставлять время больше, но не сильно, так как при сильном завышении периода этого кеширования посетитель может не увидеть обновления сайта, а вы на это никак не сможете повлиять.

HTTPS – актуально, если вы используете безопасный протокол связи HTTPS. Поэтому у меня выставлен пункт про стандартный кэш. Если у вас протокол https, то, возможно, нужно выбрать другие настройки.

Use readfile() – НЕТ. Включение PHP функции отправки файла взамен стандартной. У меня пока всё работает и так, потом я хотел попробовать включить эту функцию, но забыл и оставил, как есть выключенную  *hi-hi*

Служит ботам со страницами с закончившимся сроком действия (Serve expired pages to bots) – НЕТ. Отдавать поисковикам просроченные старицы или нет. Рекомендуется отдавать актуальные страницы, поэтому я здесь галку снял.

Следующий раздел настроек на вкладке Исключения выглядит у меня так:

Hyper Cache установка

Здесь остановлюсь лишь на некоторых пунктах, так как на остальных есть понятные пояснения.

Не кэшируйте домашнюю страницу – НЕТ, то есть если снять галку, то главная кэшируется и наоборот. Для снижения нагрузки лучше снять, то есть кэшировать.

Не кэшировать “стр.404″ – НЕТ, то есть кэшировать. Здесь смысл в том, что часть взлома сайтов идёт через обращение именно к странице 404 «Не найдено». А поскольку таких обращений может быть очень много при атаках на сайт, то отключенное кеширование может создать большую нагрузку на движок и сервер, да и «редиска» сможет увидеть, что искало, поэтому пускай любуется на кэш.  :-P

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

Куки исключить – эта функция может пригодиться, когда при кешировании не сработает какой-то плагин или скрипт, например, опроса на сайте. Можно по имени куки отключить кэширование чего-то конкретного с ними связанного. У меня установлен плагин Заплати лайком в его «бесплатной» версии и я думал, что с кэшем он будет работать некорректно, но всё обошлось, и настройка не пригодилась.

Устройства (пользовательские) исключить – НЕТ. Настройка для исключения кэширования под конкретные устройства, заходящие на сайт. Идентификация происходит по User-agent и если он совпадет с указанным, то пользователь получит «живую» страницу. Возможно, этим есть смысл пользоваться для определенного количества трафика, например, с планшетов, или телевизоров, но только в том случае, если такой процент посетителей невысок, чтобы не вызвать лишней нагрузки.

Dont serve cached pages to comment authors – ДА, включить. Интересная и важная настройка, которая не переведена, но звучит примерно так: Не отдавать кэшированные страницы комментаторам.  Отвечает за включение и отключения кэшированной страницы для авторов комментариев.

Дело в том, что если комментатор оставил комментарий, который «Ожидает проверки», то при выключенной настройке он может не увидеть эту надпись. Правда, надпись у поля настройки говорит, что плагин Hyper Cache может работать с комментариями даже на кэшированной странице, благодаря маленькому скрипту, добавленному к такой странице, но я настройку включил. Попробуйте, может можно и наоборот, особенно, если у вас большой поток новых комментариев.  :scratch:

Третья вкладка настроек Мобильный под этот трафик выглядит так:

Hyper Cache плагин

Режим работы – здесь я выбрал стандартный кэш, хотя можно выбрать отдельное кеширование или отключить его вообще. Здесь есть смысл выбирать другое, отдельное кеширование, если у вас на сайте для мобильного трафика используется другая тема сайта и другой дизайн, например, плагин, генерирующий мобильный дизайн. Поскольку у меня дизайн отзывчивый и под мобильные устройства   *kruto* , то я не делал отдельного кеширования.

Мобильная тема – у меня настройка включена для активной темы сайта. Можно выбрать заведомо тему с отзывчивым адаптивным дизайном, которая есть в каждом сайте на вордпрессе – Twenty Fourteen, например. Подойдёт для тех ситуаций, когда основная тема не адаптивная, но нужно, чтобы для мобильных пользователей отдавался дизайн под их устройства. Но по тем же причинам, что указаны выше, я здесь ничего не трогал.

Тем более, что пару месяцев назад мой сайт таки прошел тест Google на совместимость с мобильными устройствами   :yahoo: , а совсем недавно, буквально за пару дней до написания этого опуса, меня осенило *yess*  и я довел «до ума» свой шаблона под мобилы, о чём собираюсь написать статью   *secret*   . Но, вы же знаете, как я собираюсь   *blush*   , поэтому – не пропустите, мало ли, вдруг пригодится.

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

В последней вкладке настроек CDN я ничего не указывал и включал, так как это мне не нужно.

Естественно, после каждого изменения настроек не забывайте нажимать синюю кнопку Сохранить, чтобы новые настройки вступили в силу.  *ku-patsak*

Также в настройках плагина есть важные синие кнопки:

Удалить весь кэш – полное стирание всего содержимого папки кэша. Может понадобиться для просмотра изменений где-то на сайте или простой очистке папки кэша.

Очистка архивов и домашней – будет очищен кэш главной страницы и архивов, если надо посмотреть что-то на «морде» сайта, не удаляя остальной кэш.

Вычисление размера кэша – по нажатию этой кнопки плагин вам выдаст размер папки со всем кэшем в мегабайтах.

Импортировать настройки – здесь можно загрузить уже сохраненные настройки поверх существующих. Удобно, когда надо использовать одинаковые настройки на нескольких своих сайтах, например. Нажал и в один клик всё настроено, как надо, но я этой кнопкой не пользовался.  *pardon*

После настройки останется лишь проверить работу плагина Hyper Cache, чтобы убедиться, что контент выдается уже из кэша. Для этого надо выйти из админки, либо открыть сайт в другом браузере, или в окне с режимом Инкогнито и посмотреть исходный код страницы, нажав Ctrl+U в любом браузере. Если в самом низу кода вы увидите строку вида:

<!– hyper cache gzip 2015-10-01 10:47:24 –>

то вас можно поздравить, так как плагин Hyper Cache работает, а эта строка говорит о том, что страница выдана уже из кэша.  *happy*

Но надо упомянуть об одном нюансе, который возник у меня и может возникнуть у вас   :shock: . Так у меня перестал работать редирект в плагине WP No External Links – внешние ссылки перестали открываться. Пришлось отключить редирект и оставить только оборачивание ссылок в noindex. Но в свете всякого «зоопарка» от поисковиков, отключение редиректа это только к лучшему. На этом косяки от работы кэширования у меня, вроде, закончились.

Выгода от установки и настройки плагина Hyper Cache очевидна – это снижение нагрузки на хостинг и увеличение скорости загрузки сайта, что стразу добавит вам несколько баллов в тесте Google на скорость загрузки сайта. А это уже в свою очередь положительно скажется на ранжировании сайта, так как поисковики любят быстрые сайты. Но самое главное, что хостинг перестал присылать свои гневно-навязчивые уведомления о превышении нагрузки *fuh*   .

На этом у меня всё, спасибо, что дочитали.  *spasibo*

P.S. Напоследок, вам для настроения, это эпичное видео про облака с моего второго канала. Приятного просмотра!  :)   :bye:

Пройдись по кнопочкам, расскажи о статье друзьям - это к деньгам!

Новые статьи блога на Ваш e-mail:

8 комментариев: Hyper Cache, плагин кэширования WordPress для снижения нагрузки на хостинг и ускорения сайта – установка и настройка.

  • Алексей, спасибо за статью. Но хотелось бы внести в нее уточнение. Вставлять строку в файл wp-config.php перед активацией плагина не нужно – плагин сам скажет куда и что надо вставлять. Например у меня в файле уже была та строчка и в том месте, где Вы указали. Поэтому я сразу активировала плагин. Но когда зашла в настройки этого плагина, то там было написано, что нужно вставить строку (ту, что Вы указали) в такое-то место (было указано после какой строки). Поэтому задача упрощается. :) Плагин сам все подскажет :)
    Еще раз спасибо :)

    • Ниччё не понял: вставлять не надо – плагин подскажет куда вставлять, и надо вставить… :wacko: :unsure: :scratch: :-))

      • Алексей, ну почитайте внимательно свою статью и мой комментарий. Я все предельно ясно написала. Вдумываться надо и сопоставлять со своими рекомендациями, а не просто читать коммент.

        • Вам надо – вот и вдумывайтесь! А я не хочу :-P

          • Мне не надо. Это в Вашей статье неточности. А у Вас теперь можно хамить посетителям?! Удаляйте мои комментарии, я больше не буду комментировать Ваши статьи! У Вас видимо ненависть ко всем россиянам из-за ситуации с вашей Украиной. А уж язык показывать в Вашем возрасте (даже в виде смайлика) – верх невоспитанности для человека любой национальности. *zloy* :negative:

            • Уууу куда мы дошли! Вот, оказывается, как вылазит роССийское “великодержавное” хамство и ненависть ко всем чужим и другим, кто мыслит иначе! Браво! Ватнегдетектед! *bravo* Да не вопрос, обойдусь без таких “драгоценных” комментариев и комментаторов! Закройте мой сайт и не открывайте никогда :bye:

  • Так уж получилось, что плагин Hyper Cache мне установил Александр Борисов и я, как дилетант, даже ни разу туда не заглядывала, считая, что специалист знал, что делал. А вот прочитала статью и решила разобраться. Сделала для себя открытие,начину по порядку:
    Disable translations – стоит галочка,
    Cached pages will be valid for – установлено 24 часа,
    Enable compression – стоит галочка,
    а больше ничего не отмечено.
    В исключениях отмечены галочками:
    Do not cache the “404 – Not found” page
    Do not cache the blog main feeds
    Don’t serve cached pages to comment authors
    и не кешировать страницы стоит 360 дней.
    По поводу адаптации под мобильные устройства, тут ничего не стоит, да и не адаптирован мой шаблон. Тут у меня ОЧЕНЬ большая загадка. Этот же шаблон на тестовом сайте прекрасно проходит проверку, а на основном … Разница в тестовом сайте и основном только в том, что здесь у меня проведена микроразметка. Я уже пробовала другие шаблоны, результат тот же. Короче, эта загадка не для моих мозгов!
    Вот такие дела, делишки! Теперь чешу затылок, как “чайник” со стажем: оставить все, как есть или воспользоваться вашими,Алексей, рекомендациями. :scratch:
    Буду признательна за дружеский совет! *hi*

    • Не знаю, Елена :unsure: Можете продолжать доверять “специалисту” *hi-hi* В статье я описал те настройки, которые сам потыкал и выбрал их такими, которые мне РЕАЛЬНО снизили нагрузку на хостинг и ускорили сайт *happy* А кому доверять, это уже выбор и дело каждого, я ничего не навязываю и не продаю, я лишь делюсь опытом :aga: ;)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

:) 
*hi* 
;) 
:-( 
:good: 
:aga: 
*blush* 
:negative: 
:yahoo: 
B-) 
*bravo* 
*klass* 
:shock: 
:-)) 
Больше смайлов!..
 
Обменник.ws » Автоматический обмен Webmoney