Кэширование в WordPress — выбираем лучший плагин для кэширования. Hyper Cache — включаем плагин кэширования в Вордпресс для оптимизации WP блога и снижения его нагрузки на сервер хостинга

Тема избитая, есть много постов про кэширование WordPress, но столкнувшись с этим вопросом, я не смог найти ни одной статьи, которая бы однозначно ответила на вопрос «Какой плагин лучше использовать для кэширования WordPress?». И тогда я решил сам разобраться и ответить на этот вопрос. И как думаете, ответил?)

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

Начал делать несколько небольших тематических сеток сателлитов на WordPress. Для этого взял несколько недорогих хостингов, которые позволяют разместить 5-10 сайтов. Я понимаю, если поставить на такие хостинги 5-10 WordPress в «голом виде», то даже при небольшой посещаемости, они будут превышать установленные для аккаунта нагрузки на сервер и меня попросят съехать. Именно это и подтолкнуло меня разобраться с темой кэширования и постараться максимально оптимизировать WordPress в плане нагрузки на сервер.

На некоторых блогах, которые я читаю, мне попадались отзывы о скрипте для кэширования WordPress — maxcahe. Поэтому когда я начал искать плагин для кэширования, я вспомнил именно про maxcahe. Нашёл страничку плагина, но когда начал читать, выяснилось, что этот скрипт платный. Цена 30$ не так высока и можно было купить, но этот скрипт можно использовать на ограниченном количестве сайтов. Чтобы увеличить количество сайтов, на котором можно использовать скрипт, нужно доплатить за каждый новый домен. То есть чтобы установить скрипт на дополнительный сателлит, нужно связаться с автором, оплатить дополнительный домен… в общем этот вариант мне не понравился. Учитывая то, что за обзор и хороший отзыв о скрипте, автор материально поощряет оставивших такой отзыв, то ценность таких отзывов снижается. Да и зачем платить, если есть аналогичное и бесплатное. В общем, решил пока разобраться и найти бесплатный аналог, которых, как оказалось, не так мало.

Пересмотрел описание и отзывы о популярных плагинах для кэширования WordPress, но ответа на вопрос “Какой плагин стоит использовать?”, я так и не нашёл. Кто-то использует один, кто-то другой. Каждый плагин имеет свои плюсы и минусы. Если какой-то плагин выигрывает в уменьшении нагрузки на сервер, то проигрывает в чём-то другом. Поэтому здесь я просто собрал названия и описания всех популярных плагинов для кэширования WordPress, собрал полезные ссылки на статьи с подробным описанием, настройкой и сравнением плагинов.

Существующие плагины для кэширования WordPress

WP-Cache Плагин кэширования страниц, который ускорит работу вашего блога на WordPress и уменьшит нагрузку на сервер. Плагин делает из динамических страниц – статистические, сохраняя их на сервере. При следующем обращении пользователей к определённой странице, ему уже отдаётся сохранённая копия страницы. Это значительно снижает нагрузку на сервер и ускоряет загрузку страниц. Плагин довольно старый, если судить по упоминаниям о нём в сети.

WP Super Cache Этот плагин аналогичен WP-Cache. WP Super Cache, при обращении пользователя к конкретной странице блога, сохраняет статистическую копию страницы на сервере. При следующем обращении пользователей к содержимому этой же страницы, загружается сохранённая копия страницы.

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

DB Cache Этот плагин отличается от предыдущих. Он не сохраняет страницы, а сохраняет запросы к базе данных.

1 Blog Cacher Ещё один плагин для кэширования. 1 Blog Cacher аналогичен WP-Cache. Он сохраняет ответы на запросы к сайту в отдельные локальные файлы, помещая их в директории, которые соответствуют структуре ссылок вашего сайта.

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

w3 Total Cache Ещё один плагин для кэширования WordPress. Плагин кэширует данные, создавая статистические страницы. Отличительная особенность этого плагина в том, что он поддерживает сжатие скриптов, CSS, кэш для базы данных.

WP File Cache Плагин для кэширования WordPress, который позволяет производить долгосрочное кэширование на уровне запросов, сессионное кэширование часто изменяющихся объектов. Подробное описание плагины Вы найдёте на странице плагина на блоге автора по ссылке ниже.

WP Simple Cache Ещё один плагин для кэширования. По отзывам, от аналогов отличается простотой настройки и использования.

MaxCache Платный скрипт для кэширования WordPress. По словам автора и по отзывам, MaxCache превосходит на голову все плагины WordPress для кэширования. на английском.

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

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

Что такое кэш?

Кэшем называется такое место в компьютерной памяти, где хранятся данные для будущего использования. Например, вместо того, чтобы полностью выполнять процесс по загрузке сайта часть данных подкачивается из кэша. Когда посетитель щелкает по вашему сайту, то они запрашивают данные от вашего хостинга. Если быть точнее, то они запрашивают изображения, Javascript и CSS вашего сайта, чтобы он был в читабельных файлах HTML и доставлялся прямо в браузер. К сожалению, этот процесс требует определенных ресурсов и занимает время. Однако нет никакой нужды в том, что пользователям сайта было нужно каждый раз запускать этот процесс. Особенно, когда речь заходит о статичном контенте вашего сайта. Например, опубликованных постах, которые навряд ли кто-то будет уже редактировать.

Именно поэтому кэширование контента вашего сайта так полезно:

— быстро предоставляйте доступ к данным сайта, которые редко меняются

— ускорьте весь процесс загрузки сайта

— предоставьте более качественный пользовательский опыт для всех посетителей своего сайта

— продвиньтесь в позициях выдачи поисковиков, благодаря более высоким показателям загрузки

— приберегите серверные ресурсы и снизьте кол-во крахов

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

Лучшие плагины для кэширования WordPress

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

Всем привет! Хочу поведать вам одну историю о своей невнимательности, которая и побудила меня к написанию данной статьи. Около недели назад мой хост-провайдер проводил профилактические работы , время было оговорено и было предупреждение о том, что сайт будет лежать 15-30 минут. Я подумал, что это не так много и особо не волновался по этому поводу и ушел по своим делам.

Во время профилактики сайт действительно лежал, но время я особо не засекал. К моему удивлению, после окончания работ доступа к сайту так и не было — на нем висела ошибка 403 (про коды ошибок и ответа сервера прочитайте ), которая означает недостаток прав клиента . Примерно в то же время было написано письмо в службу поддержки провайдера. Ответили довольно быстро.

Причина блокировки аккаунта была в огромной нагрузке на хостинг . Работник саппорта привел логи сервера. в то время была небольшой — около 300 человек в сутки, поэтому вопрос о смене тарифа сразу отпал. Сайт мне включили, правда после 5-ти часовой проверки на вирусы и возможные причины перегрузки. Кстати, в общей сложности сайт лежал около суток, и это сказалось на позициях — блог вылетел из топ-10 по некоторым запросам в .

Перед отключением сайта я повесил баннер от seohammera (про системы автоматического продвижения вы можете прочесть ), поэтому подозрение пало на него. Баннер был убран и все вроде бы стало хорошо. Также был направлен вопрос в техподдержку о степени нагрузки — ответили, что все в порядке. Но на этом я не остановился и начал искать пути сокращения нагрузки на хостинг .

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

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

Установка плагина Hyper Cache

В появившейся странице вписываем имя плагина — Hyper Cache, должен оказаться на первом месте. Устанавливаем плагин (от вас потребуется ввод данных ftp аккаунта). Также можно загрузить архив с плагином с официального сайта, затем через админку загрузить и установить. В общем, устанавливайте любым удобным для вас способом .

Готово, плагин установлен. Для того, чтобы активировать поддержку использования кэшированных страниц , необходимо добавить вот эту строку:

Define("WP_CACHE", true);

в файл wp-config.php . Вставить строчку можно в любое место файла, главное чтобы она находилась в теге

теперь необходимо на папку wp-content выставить права 777 (сделать это можно через ftp-клиент, например Filezila). Это требуется для того, чтобы плагин создал папку для хранения файлов кэшированных страни ц. Папка называется cache . После того, как он ее создаст, можете поменять права на wp-content обратно на 755, а вот на папку cache (у меня находится в папке wp-content , также может быть в папке с плагином, поищите) устанавливаются права 777, чтобы плагин мог записывать туда файлы.

Теперь коротко и по пунктам :

  1. Устанавливаем плагин
  2. Добавляем строчку в файл wp-config
  3. Устанавливаем права доступа 777 на папку wp-content
  4. Ищем папку cache и также ставим права 777
  5. Возвращаем папке wp-content права 755

Готово. Плагин установлен, желательно проверить работает ли он. Запомните — плагин создает отдельный файл для каждой кэшируемой страницы , но только при посещении ее пользователем. Т.е. человек зашел, страница загрузилась, добавилась в кэш. Также учтите, что для вас будет всегда показана свежая версия страница, а не из кэша (если вы войдете на сайт под своим логином). Для проверки делаем следующие действия:

  1. Загляните в параметры плагина . Если сверху нет никаких предупреждений, то все в порядке.
  2. Если у вас на сайте уже есть материалы и посетители, то гляньте в строку «Файлы в кэше (актуальные и устаревшие)» — там должно быть число больше 1.
  3. Зайдите на сайт незалогинившись (с другого браузера например) и посмотрите код. В конце должна быть строчка вида
  4. Зайдите в папку cache на сервере (мы на нее еще права 777 ставили). если в ней есть непустые файлы — плагин работает корректно.

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

Настройка плагина Hyper Cache

Итак, входим в меню «Параметры — Hyper Cache»

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

Конфигурация — основные параметры плагина:

  • Таймаут кэшированных страниц — время, через которое будут удалены все страницы в кэше. По умолчанию стоит значение 1440 — сутки, вполне нормально для блогов, которые не слишком часто обновляются.
  • Режим аннулирования кэша — указывает условие, при котором система будет удалять страницу из кэша. Оптимальный вариант — при изменении записи.
  • Отключить кэш для комментаторов — функция, при включении которой пользователь, оставивший комментарий, увидит свежую версию страницы, а не сохраненную (кэшированную). Человек сразу увидит, отправлен ли комментарий на модерацию или размещен сразу (в зависимости от ваших )
  • Кэширование RSS — просто кэширование новостной ленты блога. Возможно, при включению будут небольшие задержки в рассылке
  • Allow browser caching — включает возможность сохранение страницы на жестком диске пользователя, еще больше снижает нагрузку на хосттинг

Конфигурация для мобильный устройств

Используется, если у вас есть мобильная версия сайта, созданная посредством плагина WordPress Mobile Pack, то можете включить данную опцию. Плагин Hyper Cache будет создавать отдельные кешированные файлы под другими именами для мобильных устройств (в соответствии настройкам вашей мобильной темы) и перенаправлять посетителей на созданные страницы.У меня мобильной версии нет, поэтому галочки не стаил

Плагин оптимизирует текст (на стороне сервера) и передает пользователю. Ускоряет загрузку страниц сайта.

  • Store compressed pages — собственно, включение самой функции.
  • Send compressed pages — позволяет сохранить пропускную способность при сжатии страницы, если это возможно.
  • On-the-fly compression — опять же помогает увеличить скорость загрузки сайта при возможности.

  • Перевод — отключает русскую версию страницы настройки плагина.
  • Disable Last-Modified header — отключает в заголовке страницы время ее последнего изменения.
  • Кэширование Домашней — отключает кеширование домашней страницы (помогает, если главная страница сайта часто обновляется).
  • Кэширование перенаправлений — кэширует все редиректы wordpress блога, снижая время на их обработку.
  • Page not found caching (HTTP 404) — включает кеширование страницы ошибки 404.
  • Strip query string — позволяет кешировать URL с дополнитльными запросами (адреса с?, =, & и т.д.) как URL без них
  • URL с параметрами — включает кеширование запросов со знаком вопроса. При включенном ЧПУ можно не использовать, хотя при активации опции снижается нагрузка (некоторые роботы отправляют запросы с?).
  • Allow browser to bypass cache — позволяет браузеру обойти кеширование. Например, при перезагрузке страницы.

Фильтры

  • Исключаемые URL — страницы, которые вы хотите исключить из кэширования. По одному на строку.
  • Исключаемые агенты — юзер-агенты (например, поисковые роботы), для которых вы хотите всегда показывать свежую версию страницы.
  • Совпадение Cookies — отменяет кеширование при совпадении cookies. По одному на строку.

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

Если вы все сделали правильно, то плагин начнет работать и . О других способах ее понижения я расскажу в следующих статьях. тема очень актуальна, поскольку поисковики, особенно , обращают внимание на скорость загрузки страницы. До скорых встреч на страницах блога МонетаВИнтернете!

Кэширование данных в WordPress позволяет ускорить работу вашего сайта и существенно снизить нагрузку на ваш сервер. В ядре существует три основных вида кэширования — кэширование страниц, кэширование объектов и транзитное кэширование. В этой статье мы коротко расскажем о всех трёх видах, а так же рассмотрим некоторые популярные плагины для кэширования в WordPress.

Что такое кэш?

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

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

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

Кэширование в WordPress

В WordPress существует три основных типа кэширования:

  • Кэширование страниц — позволяет сохранять страницы целиком в кэш, и выдавать их из кэша при последующих запросах
  • Кэширование объектов — позволяет кэшировать данные произвольного типа
  • Транзитное кэширование — очень похоже на кэширование объектов, позволяет сохранять данные на определённый промежуток времени

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

Кэширование страниц в WordPress

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

Кэширование страниц (page cache) позволяет сохранить результат выдачи всей страницы целиком. При последующем запросе по этому же адресу выдаётся эта же страница, но уже из кэша, соответственно гораздо быстрее и с меньшей нагрузкой на сервер.

При изменении содержания записи или странцы, кэш страницы сбрасывается, и при последующем запросе кэшируется уже новая страница с обновлёнными данными.

В самом ядре WordPress кэширование страниц не реализовано, но есть все необходимые функции для реализации этого на уровне плагинов. Два самых популярных плагина для кэширования страниц — WP Super Cache и W3 Total Cache, хотя существуют и другие.

Плагин WP Super Cache

WP Super Cache — самый популярный плагин для кэширования страниц в WordPress. Он позволяет создавать и выдавать статические HTML файлы для ваших страниц, а при определённой конфигурации, вы можете настрить выдачу этих страниц напрямую вашим веб-сервером (Apache или nginx), минуя при этом обработку PHP файлов в целом.

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

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

Плагин W3 Total Cache более молодой, чем WP Super Cache, но не уступает ему по функционалу. Он очень быстро набирает популярность, и на сегодняшний день насчитывает более 2 миллионов скачиваний из директории WordPress.org.

W3 Total Cache позволяет хранить закэшированные страницы как на жёстком диске, так и в памяти. Он не сохраняет структуру кэша, как делает это WP Super Cache, поэтому настроить выдачу без использования PHP невозможно, но в отличии от WP Super Cache использование внешнего хранилища позволяет легко работать в многосерверной архитектуре.

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

На момент написания данной статьи, плагин Batcache скачали всего около десяти тысяч раз из директории WordPress.org, но в данном случае это не является показателем его эффективности. По производительности он не уступает ни WP Super Cache, ни W3 Total Cache.

У плагина Batcache функция всего одна — кэширование страниц, но делает он это безупречно. Batcache использует внешнее кэширование объектов для хранения данных, что позволяет легко его исопльзовать в многосерверной архитектуре. Этот плагин используется в крупной сети WordPress.com, с более 40 млн сайтов, более 2000 серверов и более 10 млрд просмотренных страниц каждый месяц.

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

Кэширование объектов в WordPress

Объектное кэширование (object cache) реализовано в самом ядре WordPress. Этот механизм позволяет хранить объекты произвольного типа в памяти и полезен в основном разработчикам тем и плагинов для WordPress.

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

Подобное кэширование в ядре реализовано для многих объектов, в том числе: опции, записи (страницы, и произвольные типы), мета-данные записей, термины и таксономии. Именно поэтому, разработчикам WordPress не следует боятся пользоваться такими функциями как get_option и get_post , т.к. подобные обращения не вызывают лишних запросов в базу данных.

Кэширование объектов в WordPress производится с помощью ряда внутренних функций, в том числе: wp_cache_add , wp_cache_set , wp_cache_get .

Постоянное кэширование объектов

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

На первый взгляд это совершенно не выгодно, но если посчитать сколько раз WordPress вызывает функцию get_option для обработки одного запроса (около 500 раз), то выгода от кэширования объектов становится очевидной.

Тем не менее, постоянное кэширование объектов (или внешнее кэшированое) в WordPress легко реализуется с помощью сторонних плагинов, например Memcached Object Cache или APC Object Cache . Оба плагина позволяют использовать оперативную память сервера для хранения объектов WordPress, при этом объекты не пропадают при окончании запроса. Такой подход существенно снижает нагрузку на базу данных MySQL.

Стоит так же отметить, что при включённом кэшировании страниц, до работы с сохранёнными объектами чаще всего время так и не доходит, поскольку страница целиком выдаётся из кэша. Это не является поводом для отключения кэширования объектов, особенно при работе с пользователями которые выполнили вход, а некоторые плагины (например Batcache) вообще используют кэширование объектов для хранения страниц.

Транзитное кэширование в WordPress

Для пользователей данный метод кэширования совершенно прозрачен. Транзитное кэширование (transient cache) позволяет разработчикам сохранять данные на определённый промежуток времени. Этот метод реализован в WordPress с помощью функций get_transient , set_transient и delete_transient .

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

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

В отличии от кэширования объектов, транзитное кэширование является постоянным по умолчанию в WordPress, и хранит все данные в базе данных. Но важно отметить, что при использовании плагина для внешнего кэширования объектов (например Memcached или APC), транзитное кэширование будет пользоваться этим плагином для хранения данных.

Кэширование объектов или транзитное кэширование?

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

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

Заключение

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

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

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

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

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

02.07.2013 05.11.2013

Сооснователь журнала WP Magazine и первой конференции WordCamp в России. Разработчик в компании Automattic , принимает активное участие в развитии ядра WordPress. Любимый язык программирования: Python.

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

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

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

Кэширование в WordPress и как при этом работает блог

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

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

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

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

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

Выход из этой ситуации состоит в использовании кэша . Как работает кэширование в WordPress? Довольно просто. Каждый раз, когда по требованию посетителя на сервере генерится страничка в формате HTML, то она не только передается браузеру пользователя нажавшего по ссылке, но и сохраняется в соответствующей папке вашего сайта.

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

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

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

Герой сегодняшней публикации (плагин Hyper Cache) кэширует странички целиком и хранит их HTML версии в своей папке с кэшем. Что примечательно, кэширование работает только для незарегистрированных посетителей вашего блога. Т.к. у большинства блогеров регистрация не используется, то единственным зарегистрированным пользователем в этом случае будет лишь администратор, т.е. вы.

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

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

У которого тоже было включено кэширование, при этом не работал, жалуясь на недоступность базы данных. Время жизни HTML копий вебстраниц в кэше у меня стояло 1440 минут (одни сутки), и это оказалось больше, чем время, в течении которого на хостинге была неактивной база данных (несколько часов).

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

Установка плагина Hyper Cache на Вордпресс

Скачать Hyper Cache вы можете с официальной страницы . Далее осуществляем стандартные действия по установке. Распакуйте архив hyper-cache.zip , используя ftp-менеджер () подключитесь к вашему сайту и загрузите папку hyper-cache в папку с плагинами wp-content/plugins/ на удаленном хосте.

Дальше нужно будет включить кэширование в самом движке WordPress. Для этого нам потребуется открыть на редактирование файл конфигурации wp-config.php , который вы сможете найти в корневой папке на сервере вашего сайта. Вам нужно будет добавить в него всего одну строчку кода:

Define("WP_CACHE", true);

Вставить ее можно в любое место до строки:

/** Абсолютный путь к директории WordPress. */ if (!defined("ABSPATH")) define("ABSPATH", dirname(__FILE__) . "/");

Я, например, вставил в область, где идет задание параметров для базы данных:

/** Имя базы данных для WordPress */ define("WP_CACHE", true); define("DB_NAME", "wm1604_ox823");

Войдите в админку Вордпресса, выберете вкладку «Плагины»- «Inactive», найдите строку с этим плагином и активируйте его. Далее выберете из левого меню Параметры -> Hyper Cache. Если в окне с настройками никаких предупреждающих сообщений не появилось, то все готово к работе.

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

Это нужно для того, чтобы данный плагин мог создать в WordPress папку для хранения кэшированных вебстраниц под названием cache . После того, как он ее создаст, вы можете вернуть права доступа () на папку wp-content и папку wp-content/plugins/hyper-cache обратно на 755, а уже папке cache , которая у меня находится в wp-content/plugins/hyper-cache/cache , назначить права 777, чтобы Hyper Cache имел возможность записывать в нее и стирать HTML-файлы с кэшем.

Настройки Hyper Cache для снижения нагрузки на сервер

В первом поле настроек (в левом меню выбрать Параметры — Хипер Кеш) под названием «Файлы в кэше» вы можете видеть, сколько вебстраниц вашего блога в данный момент сохранено в кэше.

В этом же поле имеется очень важная кнопка «Clear cache» , которая позволяет сбросить кэш, т.е. удалить из отведенной для этой цели папки все имеющиеся там файлы. Эта кнопка вам может понадобиться в том случае, если вы, например, внесли изменения в дизайн и хотите, чтобы их увидели ваши посетители как можно быстрее. Потому как в противном случае, им будет по-прежнему доступна только кэшированные версии вебстраниц.

В области «Конфигурация» сосредоточены основные настройки.

В поле «Таймаут кэшированных страниц» вы можете выставить время жизни кэша в WordPress. В течении этого времени в папке cache будут храниться HTML копии вебстраниц вашего блога и все пользователи, запрашивающие их, будут получать именно эти копии.

Но как только заданное в этом поле время для какой-то вебстраницы истечет, при очередном обращении к ней посетителя, она будет открыта уже не из кэша, а стандартным образом. При этом она будет заново закэширована плагином и помещена в папку cache. Если время жизни поставить слишком маленьким, то Hyper Cache вместо разгрузки сервера будет давать на него повышенную нагрузку, связанную с постоянным записыванием кешированных вебстраниц.

В поле «Режим аннулирования кэша» задается способ очистки кэша при добавлении новых материалов на ваш блог или обновлении уже существующих статей (в том числе и при добавлении комментариев). Если из выпадающего списка выбрать «Все кешированные страницы», то при добавлении новой записи или обновлении существующей будет обновлен (очищен) весь кэш в WordPress. При выборе «Ничего» кеш останется без изменений.

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

В поле «Отключить кэш для комментаторов» можно поставить галочку. В этом случае пользователи смогут видеть добавленные ими комментарии не дожидаясь истечения времени жизни кэша для данной вебстраницы. Это делает кеширование в Вордпрессе менее эффективным, но сам блог более удобным. Галочка в поле «Кэширование RSS» позволит кэшировать RSS ленту.

В области «Сжатие», поставив галочку в приведенных полях, вы можете страниц находящихся в кеше. Это позволит немного ускорить загрузку страниц вашего блога.

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

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

В поле «Кэширование Домашней» вы можете поставить галочку для отключения кеширования главной страницы. Это может понадобиться, если она интенсивно обновляется и включение ее кэширования может вызывать дополнительную нагрузку за счет постоянной перезаписи файла.

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

Откройте любую страницу блога и посмотрите ее исходный код. Для этого нужно щелкнуть правой кнопкой мыши по странице в вашем браузере и выбрать пункт контекстного меню «Исходный код» (), либо «Исходный код страницы» (Firefox), либо «Просмотр кода страницы» (Google Chrome), либо «Просмотр HTML-кода» (IE).

Если вы увидите в самом низу окна с исходным кодом что-то вроде

то это будет означать, что Hyper Cache работает и при следующем запросе эта страница будет открываться им из кэша.

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Снижение потребляемой в WordPress памяти при создании страниц - плагин WPLANG Lite для подмены файла локализации Как в плагине Yet Another Related Posts убрать прозрачный пиксель http://yarpp.org/pixels и изменить надпись Похожие материалы
Simple Counters и Category and Page Icons - красивые счетчики RSS и Twitter, а так же иконки для категорий и страниц в WordPress
Как обновить WordPress вручную и автоматически, а так же плагин Database Backup для резервного копирования
Оптимизация темы (шаблона) WordPress для снижения его нагрузки на сервер хостинга, плагин WP Tuner и число запросов к БД Как отключить комментарии в WordPress для отдельных статей или всего блога, а так же убрать или наоборот подключить их в шаблоне