Как настроить кэширование wordpress

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

Слишком долгая загрузка страницы негативно сказывается на вашем веб-сайте 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? По каким критериям оцениваете? Пишите свое мнение в комментариях внизу!

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

Что именно кэширует? Мы знаем, что это может ускорить работу наших сайтов, но есть ли еще больше? Как мы должны использовать кеширование для повышения производительности наших веб-сайтов? Есть ли какие-то конкретные соображения, которые нужно учитывать?

Эта статья ответит на все вышеперечисленные вопросы, связанные с кэшированием в WordPress:

В ажность кэширования в wordpress

Ч то такое кэширование?

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

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

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

П реимущества кэширования

Существуют различные преимущества кэширования в WordPress, такие как:

  • Прежде всего, это повышает скорость и производительность вашего сайта. Статические кэшированные файлы загружаются быстрее, чем запросы динамической базы данных, что приводит к более быстрой и лучшей производительности вашего сайта.
  • Кэширование также может помочь снизить нагрузку на ваш сервер хостинга. Это может сохранить память сервера и операции ввода-вывода. В результате кэширование быстро становится важной функцией, особенно для людей с ограниченными хостинговыми планами.
  • Более быстрые веб-сайты не просто загружаются быстро, но и получают выгодный ранг в поисковых системах. Это, очевидно, сильно зависит от других показателей, таких как качество вашего контента и настройки вашего SEO. Но при прочих равных условиях сайт, который загружается быстрее, получит более высокий рейтинг, чем более медленный. Google подтвердил, что он учитывает страницы страниц.
  • Кэшированные веб-сайты обеспечивают лучший пользовательский интерфейс в целом. Более быстрый сайт помогает пользователям лучше просматривать. Кроме того, кэшированный сайт означает, что полоса пропускания пользователя также сохраняется (хотя и с номинальной маржой), поскольку статические кэшированные страницы меньше с точки зрения размера файлов по сравнению с динамическими запросами. Чтобы это произошло, ваше кэширующее решение должно использовать комбинированный и мини-JavaScript, и CSS, кроме простого базового кэширования страниц.

Уже впечатлены? Но как включить кеширование в WordPress? Самый простой способ сделать это — с помощью плагинов. Существует несколько бесплатных плагинов WordPress, которые помогут вам включить кеширование на вашем веб-сайте. Мы рассмотрим некоторые из ключевых здесь:

П опулярные плагины для wordpress

WP Super Cache

WP Super Cache — это бесплатный плагин WordPress с более чем миллионом активных установок. Он создает статические HTML-файлы для вашего сайта. Таким образом, ваш сайт работает быстрее, чем не кэшированный сайт .

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

О бщий кэш w3

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

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

С амый быстрый кэш wp

WP Fastest Cache генерирует статические HTML-страницы вашего контента, чтобы ускорить загрузку страниц. В дополнение к кэшированию WordPress он также предлагает различные варианты оптимизации производительности, такие как возможность минимизации HTML и CSS и ускорение JS-скриптов.

WP Fastest Cache также поддерживает сжатие GZip, которое можно использовать для уменьшения размера файлов, отправленных с вашего сервера. Этот плагин является бесплатным, но поддерживается премиум-версией, которая поставляется с добавленными функциями, такими как возможность интеграции с службами CDN.

C ache enabler

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

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

Обратите внимание, что поскольку Cache Enabler — это новый плагин, он менее популярен, чем другие записи в этом списке.

К ометный кэш

Comet Cache предлагает такие функции кэширования, как создание статических HTML-страниц, а также функции оптимизации, такие как сжатие GZip. Он поддерживает кэширование и серверное кэширование. В настоящее время Comet Cache имеет более 30 000 активных установок.

Comet Cache также имеет версию Pro, которая позволяет вам делать такие вещи, как интеграция с службами CDN, запуск настраиваемого кода PHP, принудительное использование канонических URL-адресов и т.д. Интерфейс Comet Cache немного запутан, хотя и не такой чистый, как у других плагинов в этом списке. Возможно, вам понадобится некоторое время, прежде чем вы привыкнете к этому.

WP rocket

WP Rocket — это превосходное решение, но было доказано, что он обеспечивает лучшие результаты из всех инструментов кэширования WordPress на рынке. (Это, вероятно, плата за деньги).

WP Rocket легко настраивается, а также предлагает более индивидуальные функции по сравнению с другими плагинами в этом списке.

В ывод

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

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

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

Всем привет! В сегодняшнем посте я поделюсь с вами 17 способами, которые позволят вам ускорить блог. Мы поговорим про плагины кэширования для WordPress, а именно про hyper cache и его настройку.

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

Итак, все по порядку.

Проверка изначальной скорости загрузки сайта

Любые значения нужно фиксировать, чтобы потом можно было сравнить точку начальной скорости, а затем после всех изменений посмотреть какой скорость стала. Для этого я порекомендую несколько сервисов. Вовсе необязательно зацикливаться на каком-то одном. Лучше я дам вам побольше выбора. Начну с самого распространенного гугловского сервиса проверки скорости под названием Page Speed. Чтобы найти его в одноименном поисковике просто наберите такую фразу «google page speed test». Самый первый сайт и будет искомый. Вот ссылка на него — https://developers.google.com/speed/pagespeed/insights/

Вводим адрес нашего сайта и нажимаем «Анализировать» (Analyze)

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

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

Здесь уже чуточку получше – индекс 63%.

Теперь переключимся и посмотрим, какую информацию предоставляет сервис для десктопных устройств (результат тестирования для компьютеров).

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

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

Нажимаем на кнопку «Go» (Начать) и смотрим на результаты.

Данное исследование показало, что у меня скорость загрузки уровня B, хороший, но не лучший. Средний размер страницы 868Кб, время загрузки – 4.68 секунд. Я считаю, что это плохой показатель, который нужно улучшить. Следующая метрика это Yslow, которая отражает информацию по заголовкам, запросам, кукам, редиректам, яваскриптам, данным, в общем все, что может в техническом плане «съедать» скорость говорит этот показатель. Он вообще никудышный – 72%.

Вот, что показано в отчете:

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

  1. Все изображения должны иметь разрешение по ширине и высоте (Specify image dimension)

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

  1. Defer Parsing of JavaScript (Проверка на наличие скриптов и их нагрузка на сервере)

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

  1. Использование кэша браузера (Leverage Browser Caching)

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

Решение есть: необходимо установить следующий плагин — Leverage Browser Caching Ninja.

После его установки и активации у вас появится в блога его ссылка. Нажимаете на нее:

Все, что вам нужно будет сделать, это выбрать чекбокс Enable (Активировать) и нажать на Update (Обновить). На этом шаге все файлы должны будут закэшироваться и этот показатель должен быть в норме.

  1. Оптимизация порядка стилей и скриптов (Optimize the order of styles and scripts)

Здесь я вижу кучу файлов CSS, которые нужно оптимизировать и уменьшить. Совет здесь – используйте как можно меньше плагинов, поскольку каждый из них идет со своими стилями, а нужно использовать их как можно меньше, поскольку на подгрузку каждого затрачивается время.

Решение здесь следующее – установка и активация плагина GZip Ninja Speed Compression. С его помощью вы достигните максимальной компрессии всех ваших файлов и скриптов, в результате чего скорость станет значительно выше и показатели в поисковых рейтингах (Google в особенности) будут расти. С ним разбираться особо не нужно. Также устанавливаем и активируем, затем переходим в панель администратора вашего блога и нажимаем на одноименный раздел.

Интерфейс такой идентичный предыдущему, так как разработчик общий 🙂

5. Уменьшите редиректы (Minimize Redirect)

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

Правильный выбор хостинга

Это самый важный пункт, поскольку от работы хостера зависит успех или неуспех нашего проекта. Чем быстрее работает сервер хостинга, чем меньше он находится в дауне (не отвечает), тем лучше для нас и для многих показателей. Если это возможно, то используйте VPS серверы (виртуальные), они, как правило дорогие, но очень быстродейственные. Если не устраивает по цене то могу предложить несколько вариантов. Начну с зарубежных:

  • http://www.bluehost.com/wordpress цена символическая — 2.95 доллара в месяц (чуть больше 100 рублей) + специальные условия для пользователей WordPress
  • http://sweb.ru – рекомендую так как пользуюсь сам и использую его на веб сайтах своих клиентов

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

  • Удаляйте неиспользуемые темы

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

  • Не используйте в футере или в сайдбаре сайта

Говоря про это, я имею ввиду то, что подвал сайта и боковая панель является сквозными блоками и если на вашем блоге 1000 страниц, то это тоже самое как загрузить одновременно эти 1000 страниц по отдельности скрипт с картами, а они, как мы знаем, тяжелые и увеличивают время загрузки сайта. Может вместо этого есть смысл отдельно страницу с контактами?

Сделать это не сложно. Зайдите в админку, кликните на Настройки – Обсуждение и снимите галочку с чекбокса по середине «Разрешить оповещения с других блогов (уведомления и обратные ссылки)»

  • Уменьшите количество вызовов виджетов в сайдбаре

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

  • Постоянно обновляйтесь

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

  • Используйте облегченные темы

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

Можете использовать У меня есть подборка из 67 штук. Все это бесплатно.

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

! ^ http (s ) ? : //(www\.)?feeds2.feedburner.com/wpbeginner

RewriteRule \ . (jpg | jpeg | png | gif ) $ –[ NC , F , L ]

Вместо wpbeginner.com подставьте адрес своего сайта и сохраните изменения.

А сейчас давайте посмотрим, как изменилась скорость загрузки моего блога. Чтобы было с чем сравнить. Переходим снова в наш любимый сервис GTMetrix и нажмем на ссылку Re-Test

Класс! Теперь блог стал загружаться гораздо быстрее! Есть к чему стремиться. Этот показатель я еще увеличу, когда на блоге запустится адаптивная версия Bootstrap. Сейчас ее верстаю. Кстати, решил сравнить свой блог по производительности с блогом Дмитрия (ktonanovenkogo.ru). Его сайт очень популярен в интернете и у него бешенная посещалка. Результаты ниже:

На этом все дорогие друзья. Никогда еще за все время развития сайта я не писал такие очень подробные статьи – 3200 слов (22000 знаков). Я думаю, что теперь ваши сайты будут загружаться быстрее и вы, и ваша целевая аудитория останетесь довольными. Не забывайте ставить лайки и делать репосты.. Пока!

Кэширование данных в 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.

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

Польза кэширования

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

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

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

Детали теста по кэшированию

В самом начале планировалось использовать в тестах 2 темы – простейшую «twenty-fourteen» и более сложную (которая будет имитировать «реальный» сайт). Но во время тестов оказалось, что влияние кэширования на скорость загрузки темы «twenty-fourteen» настолько минимально, что им можно пренебречь. Важнее оказалась тонкая настройка сервера, но сегодня статья не об этом.

В итоге мы будем использовать только 1 тему (тема Novelty от Tesla Themes). Тестовая страница оформлена с применением графики и текста. Также присутствует сайдбар и несколько плагинов (новости, фид из Twitter/Instagram). Хостинг использовался от WP Dev Shed. В итоге мы получили страницу с относительно большим временем загрузки.

Т.к. сайт новый, то у него не было посещаемости (в том числе, во время тестирования, не было даже ботов ПС). Сервер работал в связке Apache+ Ngnix.

В тесте участвовали следующие плагины:

  1. AIO Cache
  2. WP Fast Cache
  3. WP-Cache.Com
  4. Alpha Cache
  5. Flexicache
  6. Bodi0’s Easy Cache
  7. Hyper Cache
  8. Hyper Cache Extended
  9. Cachify
  10. Lite Cache
  11. Next Level Cache
  12. Really Static
  13. Super Static Cache
  14. W3 Total Cache
  15. Gator Cache
  16. Wordfence Falcon
  17. WP Fastest Cache
  18. WP Rocket
  19. WP Super Cache
  20. Zen Cache (formerly Quick Cache)

За тестом остались:

Brutal Cache - не работал;

Batcache - плагин с зависимостью от Memcache, что не использовалось в текущем тесте.

Autoptimize и Widget Cache также остались за бортом, т.к. они являются не самостоятельными плагинами, а поддержкой для других.

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

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

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

Google PageSpeed Insights

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

GTMetrix и YSlow

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

Тайминг

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

ApacheBench

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

Очень известный сервис по мониторингу и тестированию сайтов. Проводилось 20 тестов с каждым плагином и с фиксацией наилучшего результата.

Простой, но полезный сервис, показывающий время полной загрузки страницы именно в вашем браузере. Это не серверный инструмент, а сервис, запускаемый локально. Мы выбрали способ загрузки через Ethernet, браузер Opera. Каждая страница была загружена 101 раз с фиксированием среднего времени загрузки.

Итак, приступим к тестам.

Google, GTMetrix и Yslow

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

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

Итак, лучшими плагинами оказались WP Super Cache, WP Fastest Cache, и WP Rocket Cache.

Тайминг

Оценочные баллы в основном показывают качество кода сайта. Это даёт понимание того, что можно сделать для ускорения сайта. При этом высокие оценки сайта не означает, что он загружается быстрее, чем другие. И в этом главная ошибка - оценочные инструменты дают обилие идей по улучшению сайта для снижения времени загрузки, но при этом само время загрузки практически не принимается во внимание. Ниже – наглядный пример (скриншот из Pingdom).

Страница заработала 96 из 100 баллов (это лучше, чем у 99% страниц любых сайтов). При этом, страница грузится около 35 секунд. Вот до чего может довести слепая оптимизация.

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

ApacheBench

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

Лучший результат показал WP Rocket. Второе и третье место поделили WP-Cache.com и WP Fastest Cache.

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

Безусловный лидер – опять WPRocket. Super Cache – второй, W3 Total Cache – третий.

Здесь мы решили вывести не только средний, но и медианный результат тестирования.

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

Ситуация аналогично предыдущему тесту. Тройка лидеров не изменилась – WPRocket, WPSuperCacheи W3 TotalCache.

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

Лидер все еще WP Rocket, но при этом практически неизвестный WP-Cache.com вновь показывает весьма неплохой результат.

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

Безусловно, не всё зависит только от кэширования. Свою роль играют выбор связки Apache+Nginx, верность настройки сервера и его тип (выделенный, VPS, шаред), количество и качество (оптимизация) изображений и многое другое.

Вывод

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

Какой же плагин для WordPress лучше кэширует?

На первом месте (с большим отрывом) - WP-Rocket. У него много плюсов, но есть одно НО (для многих это будет минусом) – он платный. Разработчики хотят за него $39 (причем обновления не life-time, а только год)

На втором месте (хотя учитывая бесплатность, его можно тоже поставить на первое) -WPSuperCache. Результаты почти, как и у лидера, но зато он абсолютно free!

На третьем - WP-cache.com. Смущает только то, что он последний раз обновлялся в 2014 году.

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