Кэширование в wordpress — выбираем лучший плагин для кэширования. Wp Fastest Cache — Плагин кэширования wordpress

Приветствую Всех читателей. Сегодня хочу поговорить об одном из пунктов оптимизации сайта на WordPress — ускорение загрузки страниц, ускорение работы сайта в целом. Одним из способов для выполнения поставленной задачи является кэширование. Плагинов для создания кэша предостаточно. Два популярных Hyper Cache и WP Super Cache. В этой статье выполнена настройка WordPress Hyper Cache.

Обо всём по порядку.

Работа WordPress, кэширование

CMS WordPress является отличной платформой для создания сайтов. Она лёгкая в настройке, удобная, с большим функционалом, множеством набором плагинов для реализации задачи любой сложности. В то же время нагрузка на сервер больше, чем при работе с статическими страницами.

Как работает Вордпресс? Вся информация, так же как и в Joomla и других CMS, хранится в различных частях шаблона и таблицах базы данных. Для каждого типа инфы своя таблица: записи, комментарии, данные об авторе, сайте и так далее.

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

Решить данную проблему призвано кэширование.

Принцип кэширования данных

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

Такой приём облегчает работу сервера и ускоряет загрузку сайта в браузере.

Кэш — это своеобразное хранилище данных, с быстрым доступом информации к ним.

База WordPress содержит огромное количество плагинов. Но есть группа так называемых обязательных плагинов, установить которые необходимо на каждом проекте. Такие как плагин сеооптимизации, к примеру, SEObyYoast, плагин для резервного копирования (WordPress Database Backup), плагин кэширования.

Особенности установки Hyper Cache

Плагин устанавливается стандартным способом. Здесь подробная , чтобы освежить в памяти. Есть одно маленькое отличие. Для работы Hyper Cache после активации запросит внести изменения в файл wp-config.php.

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

Корректировать wp-config можно непосредственно на хостинге . Я же для таких целей использую специализированную программу Notpade++.

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

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

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

  • Удалить весь кеш — плагин создаёт папку для хранения кэшированной информации. При нажатии на кнопку удаляются все данные. При глобальных изменениях следует воспользоваться.
  • Очистка архивов и домашней — при нажатии удаляется кэш обозначенные страницы, при этом записи и остальное остаётся сохранённым.
  • Вычисление размера КЕШа — информация о размере папки на сервере.

Настройки плагина состоят из четырех разделов: Главные, Исключения, Мобильный, CDN.

Главные настройки плагина Гипер Кэш

Приступим к полному разбору каждой функции.

Disable translations — отключить переводы. При включении опции и сохранении, настройки плагина будут отображаться на родном английском языке. Если Вы ас в знаниях языка — включайте.

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

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

Enable on-the-fly compression — включить сжатие на «лету». Происходит процесс сжатия вебстраниц отсутствующих в кэше. Активация ускорит загрузку страницы, но и увеличит нагрузку.

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

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

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

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

Разрешение кеширования браузерами . Наверняка Вы хоть раз при переходе на определенную страницу видели в браузере строку типа: «Вам будет показана сохранённая копия страницы». Это работа подобного плагина и данной функции. Суть её такова. При посещении Hyper Cache разрешает браузеру сохранять кэш страницы на стороне пользователя, то есть сохраняется в папке с кэшем на компьютере. При повторном обращении к этой вебстранице она будет показана с кэша компьютера, что быстрее, чем если бы показывалась со стороны сервера. Включаем данную пункт — мы же за скорость.

HTTPS . Надо активировать при использовании безопасного протокола соединения HTTPS.

Use readfile() . Опция чтения файла. Со слов разработчиков работает лучше, чем фактически используемая функция кэширования file_get_contents ().

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

Сохраняем главные настройки и переходим к следующему разделу.

Настройка исключения плагина Hyper Cache

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

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

Не кэшировать «стр.404» . Активируем.

Не кешировать ленту комментариев . Создавать кеш комментариев не стоит. Посетители должны видеть оставленные новые комментарии. Моё мнение.

Не кешировать ленту RSS комментариев . То же.

Do not cache pages with URIs — Не кэшировать страницы с URL. Можно задать конкретные страницы не подлежащие кешированию. Прописывайте каждый URL с новой строки.

Do not cache pages with URIs starting with — Не кэшировать страницы с URL, начиная с. Используется для исключения целого раздела из функции кэш. Например, сайт с постоянно обновляющимся разделом новостей, посещаемый форум.

Bypass the cache for readers with cookies — Обход кеша для читателей с помощью файлов cookie.

Bypass the cache for readers with devices (user agents) — Обход кеша для считывателей с помощью устройств. Подразумеваются приложения, осуществляющие доступ к сайтам. Например, браузер.

Bypass the cache for readers which are commenters — Обход кеша для читателей, которые являются комментаторами. При включении опции посетитель, оставивший комментарий тут же увидит его. В случае если они не модерируются администратором. Иначе будет сообщение с таким смыслом: «Ваш комментарий ожидает модерацию». Читателю становится понятно, что коммент дошел до цели, а не затерялся.

Do not cache posts older than — Не кэшируйте сообщения старше, чем. После отметки количества дней статьи переходят в разряд старых и плагин перестаёт кэшировать. Стоит включить в случае когда старые посты перестают лить трафик.

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

Немного отступил от темы поста. Продолжаем настраивать Гипер Кеш.

Настройки плагина Hyper Cache для мобильных устройств

Плагин позволяет выполнить настройки отдельно для мобильного трафика и настольных ПК. Воспользуемся предоставляемой возможностью.

For mobile devices — Для мобильных устройств. В этом пункте три варианта для выбора. При использовании на ресурсе адаптивного дизайна оставляйте настройки: Использовать основной кеш . В этом случае разницы просмотра страницы для пользователя ПК и с мобильного не будет.

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

Пару слов по поводу адаптивного шаблона. Всё больше людей приобретают и используют для выхода в интернет мобильные гаджеты. Смартфоны и планшеты. Трафик с этих устройств постепенно увеличивается. По статистике Яндекс Метрике на этот сайт процент посетителей с мобильных составляет в среднем 20-25%. В некоторых нишах, например, в сфере услуг, этот вид трафика является основным. Поисковые системы в аккаунтах для вебмастера при отсутствии мобильной версии сайта отмечают как замечание и советуют исправить.

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

Мобильная тема . Этот пункт связан с первым. При выборе отдельного шаблона выше, здесь указываете его. Иначе, оставляете по умолчанию использование активной темы сайта.

Мобильные агенты пользователей . По умолчанию указаны user-agent считающиеся как пользователи с мобильного. Есть что добавить, добавляйте.

Настойка CDN HyperCache

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

После всех настроек логично проверить, может «WordPress Hyper Cache не работает?» Делается очень просто. Откройте сайт в другом браузере. Это необходимо сделать потому, что администратору ресурса всегда показывается актуальная информация. Просмотрите исходный код, который открывается сочетанием клавиш CTRL + U. В самом низу должен появится следующий код.

Если его нет, обновите страницу и просмотрите ещё раз.

Настройка WordPress Hyper Cache на этом заканчивается. С этого момента нагрузка на сервер уменьшится и сократится время отклика вебсайта. Кеширование является только одним из пунктов оптимизации сайта. В одной из следующих статей напишу обзор способов оптимизации изображений. Здесь можете почитать как с помощью Photoshop.

Какими плагинами кеширования пользуетесь Вы на данной момент, и думаете ли использовать Hyper Cache если у Вас активирован другой.

Желаю Всем удачи и быстрых сайтов!

Всем привет! Хочу поведать вам одну историю о своей невнимательности, которая и побудила меня к написанию данной статьи. Около недели назад мой хост-провайдер проводил профилактические работы , время было оговорено и было предупреждение о том, что сайт будет лежать 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. По одному на строку.

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

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

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

Небольшая ремарка о кэшировании


Google недавно объявил, что все mobile-friendly сайты (а скорость - это путь к тому, чтобы быть «friendly») получают существенное преимущество в поисковой выдаче , начиная с 21 апреля. Возможно, вы уже видели тег «mobile friendly» в поисковой выдаче. И в Google Page Insights первая же панель адаптирована под мобильные устройства, а не под десктопы. Намерения Google ясны, и звучат громко для любого SEO-специалиста или вебмастера. Сейчас важно работать над производительностью как десктопной, так и мобильной версии сайта, что мы и попробовали отобразить в бенчмаркинге.

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

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

Подробности теста

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

Для того, чтобы сделать тестируемый пустой сайт максимально приближенным к реальности, использовалась тема Novelty от Tesla Themes. Тестируемую страницу сайта оформили с использованием графики и текста, был добавлен сайдбар и некоторые плагины (вывод новостей, фид из Twitter/Instagram). Теперь у нас страница, загрузка которой занимает относительно много времени. Да, в качестве хостинга использовался вот этот WordPress хостинг .

Плагины, которые тестировались:

  • AIO Cache
  • Alpha Cache
  • Bodi0’s Easy Cache
  • Cachify
  • Flexicache
  • Gator Cache
  • Hyper Cache
  • Hyper Cache Extended
  • Lite Cache
  • Next Level Cache
  • Really Static
  • Super Static Cache
  • W3 Total Cache
  • Wordfence Falcon
  • WP Fast Cache
  • WP Fastest Cache
  • WP Rocket
  • WP Super Cache
  • WP-Cache.Com
  • Zen Cache (formerly Quick Cache)
Остались ещё:

Brutal Cache - просто не работал;Batcache - плагин с зависимостью от Memcache, что не использовалось в текущем тесте.Autoptimize и Widget Cache также остались за бортом, поскольку они являются поддержкой для других плагинов, это не совсем самостоятельные плагины.

Хостинг и инструменты бенчмаркинга


Во время проведения тестов мы работали с аккаунтом на шаред-хостинге, схожим с большинством других вариантов. Таким образом, мы получаем скорость загрузки, достижимую для «бюджетных» пользователей. У тестируемого сайта не было посещаемости, на него не заходили поисковые боты во время тестирования. Сервер работал с Ngnix в качестве прокси, а не с чистым Apache.

В качестве инструментов использовались сервисы, предлагаемые Google, GTMetrix и Yahoo. Благодаря этому стало возможным тестировать не только скорость загрузки страниц, но и другие факторы, среди которых:

  • оптимизация изображений;
  • временная задержка сервера;
  • минификация и оптимизация js- и css-кода;
  • использование кэширования в браузере;
  • размещение скриптов;
  • использование CDN, распараллеливания/доменного шардинга;
  • использование Gzip-сжатия;
  • количество HTTP-запросов.

Google PageSpeed Insights

Сервис PageSpeed Insight проверяет сайт как с точки зрения десктопного ПК, так и со стороны мобильного устройства, выдавая оценку по 100-балльной шкале. Page Speed Insights прост в использовании, но предоставляет относительно сырой результат, который не даёт полного понимания того, что может быть улучшено. Даже несмотря на то, что инструмент даёт представление о некоторых вещах, которые Google может находить важными, информация, предоставляемая GTMetrix и Yahoo, намного полнее.

При этом Google во время оценки не принимает во внимание CDN, поэтому в некоторых случаях оценка занижена.

GTMetrix и YSlow

GTMetrix и YSlow основаны на руководстве по повышению производительности ресурса от Yahoo , оценка также выводится по 100-балльной шкале. Эти инструменты гораздо более изощрены в плане проведения измерений. PageSpeed Insight даёт всего несколько подсказок о том, что может быть улучшено, в то время как GTMetrix YSlow работают с не менее чем 50 различными метриками. GTMetrix также предлагает диаграмму-водопад, препарируя процесс загрузки, а также весьма продвинутую историю загрузки. Если вы хотите понять, как повысить производительность вашего ресурса, это один из лучших инструментов.

Тайминг

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

ApacheBench

ApacheBench - отличный инструмент, который помогает определить, сколько запросов в секунду способен выдержать сайт с использованием различных плагинов. Выполнение теста проводилось с отправкой 1000 запросов по 10 различным потокам. Тест выполнялся 10 раз с фиксированием лучшего результата по каждому из плагинов.

Стоит отметить, что использование Nginx несколько снижает различие между работой сайта с плагинами/без плагинов. По этому поводу можно спорить, но в случае использования Nginx зафиксирована двукратная разница по сравнению с Apache.

Pingdom

Pingdom - хорошо известный сервис для мониторинга и тестирования. С каждым плагином проводилось 20 тестов, с фиксацией лучшего результата. Отметим, что сервер был расположен в Швеции (Стокгольм), а сервер Pingdom - в Нидерландах (Амстердам).

Webwait

Webwait - простой, но очень полезный инструмент. Основная задача сервиса - показать, за какое время полностью загрузится страница именно в вашем браузере. Таким образом, это не серверный инструмент, сервис запускается локально. Webwait загружает страницу снова и снова, а затем показывает средний результат. В нашем случае был выбран способ загрузки через Ethernet, браузер Opera. Каждая страница загружалась 101 раз с получением среднего и медианного времени загрузки.

Итак, с описанием всё, теперь приступим непосредственно к тестам.

Google, GTMetrix и Yslow

Страницы сайта тестировались с использованием указанных сервисов, вот результат:


Как видим, некоторые плагины здесь просто никак не проявились - оценка такая же или очень близка к оценке, когда кэширование вообще не используется. Google дал лучшую оценку Supercache как для десктопа, так и для мобильного устройства. В GTmetrix и Yslow мы видим, что Fastest Cache Rocket впереди планеты всей. Мы склонны оценивать последние значения как более важные, поскольку Google Page Insight для оценки использует меньше факторов.

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

Тайминг

Как уже говорилось выше, оценочные баллы являются в большей мере показателем качества кода сайта. Они дают понимание того, что можно сделать для ускорения сайта, хотя более высокая оценка у сайта вовсе не значит, что он загружается быстрее, чем другие ресурсы. И в этом ошибка - оценочные инструменты дают идеи по улучшению сайта для снижения времени загрузки, но время загрузки не принимается во внимание в достаточной степени. Вы поймете это, взглянув на скриншот из Pingdom.
Как видите, тестируемая страница получила 96 из 100 баллов, что, вероятно, лучше, чем у 99% страниц любых сайтов. Тем не менее эта страница загружается почти 35 секунд. Корректен ли результат? Сделайте вывод сами:)

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

ApacheBench

Итак, тестируем наш сервер на его способность поддерживать выполнение большого количества запросов. Чем больше показатель числа запросов за секунду, тем лучше.


Без кэширования сервер показывает результат в 18 запросов за секунду. Это довольно неплохой результат, который стал возможным благодаря использованию Nginx. На каждый запрос уходит примерно 1/500 с.

Здесь мы видим, что Hyper Cache Ext, WP Fastest Cache, WP-Cache.com и WP Rocket улучшают результат на 300% по сравнению с работой без кэширования. WP Rocket - самый быстрый и WP-Cache.com занимает второе место.

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

Pingdom

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

Webwait

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

Среднее время загрузки

Медианное время загрузки


Как видим, практически неизвестный WP-Cache.com работает весьма неплохо.

Не кэшированием единым

Конечно же, далеко не всё зависит от кэширования. Важную роль играют и такие факторы, как выбор Apache, Nginx и т. п., корректность настройки, тип сервера (выделенный, VPS, шаред), количество изображений и их оптимизация, HTTP-запросы. Собственно, об этих факторах на «Хабре» знают практически все, поэтому останавливаться на них мы не будем.

Вывод

У всех плагинов, которые здесь представлены, разная функциональность. Некоторые очень просты, в то время как другие можно сравнить со швейцарским ножом. Super Cache, W3 и прочие плагины зачастую используют профи, которые знакомы с CDN и прочими премудростями. Другие пользователи предпочитают работать с более простыми плагинами вроде Lite Cache и WP-Cache.com. Кстати, WP-Cache.com, как говорилось выше, малоизвестный плагин, который показал отличные результаты.

Кто победитель?

На первом месте - WP-Rocket , платный плагин, над которым работает целая команда специалистов. За установку разработчики просят $39, а за безлимитку - $199.

На втором месте - WP Super Cache . Здесь результаты почти такие же, как и у лидера.

На третьем месте - WP-cache.com , заслуженный призёр. Похоже на то, что над созданием этого плагина работали ничуть не менее способные разработчики, чем над WP-Rocket. Этот плагин очень прост в настройке, так что, если у вас нет желания заморачиваться с конфигурацией, рекомендуем именно его.

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

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

Рассмотрим пример кэширования SQL запроса.

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

Function myfunc() { return $wpdb->get_results("SELECT ..."); } myfunc(); // SQL запрос myfunc(); // SQL запрос myfunc(); // SQL запрос

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

Function myfunc() { // пробуем получить кэш и вернем его если он есть $cache_key = "my_cache_key"; if($cache = wp_cache_get($cache_key)) return $cache; $value = $wpdb->get_results("SELECT ..."); wp_cache_set($cache_key, $value); // добавим данные в кэш return $value; } myfunc(); // SQL запрос myfunc(); // Кэш myfunc(); // Кэш

Функции объектного кэша

wp_cache_get($key, $group, $force, $found) Получает данные из кэша по указанным ключу и группе. wp_cache_add($key, $data, $group, $expire) Добавляет данные в кэш, если кэша с указанным ключом еще нет. wp_cache_set($key, $data, $group, $expire) Добавляет данные в кэш объектов. Перезапишет кэш, если он существует. wp_cache_replace($key, $data, $group, $expire) Устанавливает/заменяет/обновляет данные указанного кэша, только если кэш уже существует, в противном случает ничего не делает (вернет false). wp_cache_delete($key, $group) Удаляет кэш по указанному ключу и группе. wp_cache_flush() Полностью очищает объектный кэш. Удаляет все элементы объектного кэша. wp_cache_add_global_groups($groups) Добавляет указанную группу объектного кэша в список глобальных групп. Нужно для мультисайта. wp_cache_add_non_persistent_groups($groups) Помечает указанную группу/группы как непостоянный кэш, т.е. который не нужно сохранять для межсессионного использования. wp_suspend_cache_addition($suspend) Временно приостанавливает добавление объектов в объектный кэш.

Где в WordPress используется объектное кэширование?

В WP такое кэширование используется практически везде: в опциях, записях, терминах, у пользователей, метаданных и т.д.

Кэширование объектов в опциях WordPress

Для примера, рассмотрим как работает кэширование объектов в опциях WordPress. Функция get_option() не создает дополнительных запросов в базу данных при множественном вызове, как раз благодаря такому кэшу.

К таким группам относится кэш, который является уникальным для всей сети сайтов.

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

По умолчанию глобальными группами являются:

Users userlogins usermeta user_meta useremail userslugs site-transient site-options blog-lookup blog-details site-details rss global-posts blog-id-cache networks sites themes

В список глобальных групп можно добавить свою группу, см. функцию wp_cache_add_global_groups("my-global-group") .

Непостоянные группы

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

Иногда надо, чтобы кэш не сохранялся на постоянной основе, а работал как и прежде (только во время генерации страницы). Чтобы добиться этого, можно указать группу для создаваемого кэша объектов и пометить эту группу как «Непостоянная». Делается это с помощью функции wp_cache_add_non_persistent_groups("my-group") .

Так при сохранении кэша в группе «my-group», значение будет сохранено только в локальный кэш (в оперативную память) и не будет сохраняться в хранилище кэширующего плагина, например на сервер Memcached.

Обычно к непостоянным группам относятся группы:

Counts plugins themes

Отключение кэша объектов

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

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

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

Давайте сначала разберемся, что такое кэширование.

Заметка о кэшировании

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

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

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

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

Наша методика тестирования

Мы решили протестировать реальную тему для WordPress от WPExplorer - Total . Тестируемый веб-сайт на этой теме Color Awesome - это установка WordPress, которая была специально создана для имитации реального веб-сайта.

На этом веб-сайте были установлены все типичные плагины для WordPress, включая Contact Form 7 , Slider Revolution , Visual Composer , Formidable Forms , WooCommerce , и Yoast SEO . Color Awesome имеет демо-данные и интегрированный интернет магазин. Размер тестируемого сайта близок к размеру реального.

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

Хостинг-провайдер и тарифный план

Согласно с веб-сайтом Bluehost :

Bluehost и WordPress с 2005 года совместно работали над созданием хостинг-площадки, подходящей для обеспечения работы веб-сайтов WordPress.

Веб-сайт Color Awesome размещен в хостинге Bluehost Shared. Мы специально выбрали этого хостинг-провайдера и хостинг-план, поскольку Bluehost является одним из лучших рекомендованных хостингов для сайтов WordPress.

Инструменты тестирования для анализа

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

1. Site Grading Tools

Эти инструменты созданы для тестирования определенного веб-сайта по разным критериям, кроме скорости. Они учитывают такие факторы как оптимизация изображений, кэширование браузеров, минификаторы Javascript, сжатие GZIP и огромное количество HTTPS запросов. Для оценки мы использовали GTMetrix и Google PageSpeed Insights.

GTMetrix

GTMetrix основан на принципах работы Yahoo и представляет более детальный отчет по сравнению с Google PageSpeed Insights. С помощью этого инструмента пользователи получают подробное описание всего, что замедляет процесс загрузки страницы.

Google PageSpeed Insights

Особенностью Google PageSpeed Insights является то, что он тестирует сайт с позиции и компьютера, и мобильного устройства, а потом ставит балл от 1 до 100. Хотя этот инструмент и не дает глубокого понимания работы алгоритма ранжирования Google или факторов, которые важны для Google, но он всё еще широко используется для оценки сайта, поскольку предоставляет консультацию для каждого сайта.

2. Timing Tools

С помощью этих инструментов засекают время загрузки веб-сайтов из разных местоположений серверов. Помимо скорости загрузки сайта, этот инструмент также определяет, насколько эффективно работает сайт при нагрузках. Для этого мы используем Pingdom.

Pingdom - это, по сути, сервис для тестирования и контроля серверов. Хотя у него тоже есть встроенный модуль для оценивания сайта, мы использовали его как модуль для замера времени, записали время загрузки страницы для теста кэширования каждого плагина с постоянным сервером.

Плагины кэширования

Мы успели обсудить стратегию тестирования, определились с инструментами, давайте просмотрим выборку плагинов для кэширования. Кроме WP Rocket, мы нашли все плагины для кэширования в директории плагинов WordPress:

  • WP Rocket
  • WP Super Cache
  • W3 Total Cache
  • WP Fastest Cache
  • Zen Cache
  • Hyper Cache
  • Cachify
  • Hyper Cache Extended
  • Lite Cache
  • Gator Cache

Мы выбрали 10 лучших WordPress плагинов для кэширования согласно их популярности и количества активных установок.

Результаты по GTMetrix и PageSpeed Insights

После проверки каждого плагина для кэширования с помощью инструментов GTMetrix и PageSpeed Insights мы получили такие результаты:

Анализ результатов

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

С помощью Google PageSpeed Insights мы выяснили, что WP Super Cache и Hyper Extended Cache получили наивысшую оценку как для компьютеров, так и для мобильных устройств, 52 и 45 баллов соответственно.

В категории GTMetrix WP Fastest Cache занял первое место с наивысшей скоростью загрузки страницы и получил 83 балла, от него отстает на 2 балла WP Rocket . Очень впечатляет!

Наш вердикт

Согласно результатам тестирования сайта мы приходим к заключению, что лучшие плагины для кэширования - WP Rocket , WP Fastest Cache , WP Super Cache и Hyper Extended Cache .

Результаты по Pingdom

После завершения оценки тестирования сайта мы приступаем к замеру времени загрузки страницы при использовании каждого из плагинов. Итоги:

Анализ результатов

Перед тестированием плагинов мы замеряли время загрузки страницы нашего сайта на Pingdom. Без кэширования сайт загружается за 9,45 секунд (не судите!) После записи времени загрузки страницы с каждым плагином мы вычислили разницу от начальной скорости (без кэширования - 9,45 секунд), и насколько плагин ускорил загрузку.

И снова идёт следующим с результатом – 5,29 секунд, а W3 Total Cache занял третье место с 6,02 секунд.

Наш вердикт

Согласно результатам замера времени загрузки страницы нашего сайта с каждым плагином, можно с уверенностью сказать, что лучшими плагинами стали WP Rocket , WP Super Cache , и W3 Total Cache .

Победители

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

WP Super Cache получил серебренную медаль за потрясающее время загрузки страницы и наивысший балл в Google PageSpeed Insights для компьютеров и мобильных устройств. Плагин очень легко установить и настроить. Он отлично подойдёт для тех, кто не хочет тратить много денег.

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

Итоги

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

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

А какие плагины для кэширования вы используете на вашем сайте WordPress? По каким критериям оцениваете? Пишите свое мнение в комментариях внизу!