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

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

(Последнее обновление: 18.02.2019)

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

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

Сегодняшний пост пишу прежде всего для себя, чтобы потом не рыскать по интернету в поисках нужной информации, а была уже под рукой. Надеюсь и вам пригодится. Обзор плагинов будут без инструкций по настройке, так как, я ещё не устанавливал их. NEW : Ссылка по настройке популярного модуля WP Super Cache будет ниже.

Друзья, если сайт стал тормозить, используйте кэширование . Эта тема часто поднимается в рунете и по данному поводу написано большое количество статей. В общих чертах, все сводится к следующему: при использовании CMS WordPress кэширование жизненно необходимо. Плюс к этому, поисковики не любят медленные сайты. А нам это надо?

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

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

Плагин WP Super Cache


Бесплатный плагин WP Super Cache

Плагин кэширования WP Super Cache наиболее популярен у пользователей , установили его уже более 6 401 830 раз, так как, модуль активно поддерживается разработчиками (Automattic). Принцип работы модуля заключается в создании вместо динамических php страниц WordPress, статических HTML станиц, которые, собственно и показываются посетителям, минуя базу данных. По настройкам WP Super Cache не так сложен, как следующий плагин кэширования W3 Total Cache, но по функционально очень хорош.

Читайте инструкцию по установке и настройке WP Super Cache на .


W3 Total Cache делает сайт реально быстрым, один из лучших плагинов для оптимизации WordPress. Данный плагин используют солидные и известные сайты mashable.com, smashingmagazine.com, yoast.com. Использование плагина W3 Total Cache на вашем веб - ресурсе повышает удобство для ваших посетителей за счет повышения производительности сервера, кэширования каждого элемента, сокращения времени загрузки страниц, выдавая пользователю нужный ему материал буквально молниеносно.

Плагин LiteSpeed Cache


Плагин для WordPress LiteSpeed Cache

LiteSpeed ​​Cache для WordPress (LSCWP) - это универсальный плагин для ускорения работы сайта, включающий эксклюзивный кэш на уровне сервера и набор функций оптимизации Вордпресс.


Тест плагинов для кэширования вордпресс

LSCWP поддерживает WordPress Multisite и совместим с большинством популярных плагинов, включая WooCommerce, bbPress и .

Основные характеристики плагина

  • Кэш объекта (Memcached / LSMCD / Redis);
  • Оптимизация изображения (Lossless / Lossy);
  • Сократите CSS, JavaScript и HTML;
  • Минимизировать встроенный CSS / JS;
  • Поддержка нескольких CDN;
  • Кэш браузера;
  • Очистить базу данных и оптимизатор;
  • Оптимизация оценки PageSpeed;
  • OPcode Cache;
  • HTTP / 2 Push для CSS / JS (на веб-серверах, которые его поддерживают);
  • DNS Prefetch;
  • Cloudflare API;
  • Поддержка одного сайта и нескольких сайтов (сети);
  • Импорт / Экспорт настроек;
  • Базовый / Расширенный вид настроек;
  • Привлекательный, понятный интерфейс;
  • Поддержка формата WebP.

Подавляющее большинство плагинов и тем/шаблонов совместимы с LSCache.

Плагин Hyper Cache


Плагин Hyper Cache

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

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

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

Модуль предназначен прежде всего для веб - мастеров, у которых сайты, блоги на хостинге с малой производительностью. Hyper Cache является гибким и простым в настройке системы кэширования для WordPress. Hyper Cache - это чисто PHP, он работает с любым блогом : никаких сложных настроек не требуется.

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

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

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

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

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

Инфографика

Явным победителем, судя по инфографике, является плагин W3 Total Cache.

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

Сравнивать будем плагины, которые по-моему мнению одни из лучших:

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

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


Испытание проводилось 3 раза для каждого плагина в отдельности с исходными настройками, кэширование на стороне клиента CDN отключены. Итоги ниже:

Эффективность плагинов кэширования
None HyperCache Quick Cache WP Super Cache W3 Total Cache
Сэкономлено времени 0 сек 1.05 сек 1.89 сек 2.00 сек 4.74 сек
Версия плагина н/у v2.9.1.2 v111203 v1.3.1 v0.9.2.9
Время загрузки 7.56 сек 6.51 сек 5.67 сек 5.56 сек 2.82 сек
Запросов 64 60 65 60 26
Байтов 330 KB 326 KB 331 KB 326 KB 268 KB

Все плагины справляются с задачей, но W3 Total Cache лучше справился со своей задачей. (на своем блоге разницу между плагинами HyperCache и W3 Total Cache явная, последний в 3 раза уменьшил кол-во запросов к БД)

Настройка плагина кэширования W3 Total Cache

Рассказать в одной статье про настройку всех 4 плагинов кэширования будет нудно, лучше расскажу про настройку W3 Total Cache .

1) Для начала скачиваем плагин . Появится 2 кнопки плагина в панели админки (в левом сайдбаре) и сверху (в нем нет настроек, только очистка всего кэша):

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

Откройте General Settings. В этом разделе основные настройки плагина, которые здесь активируем.

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

Page Cache — позволяет создавать кэш для статистических страниц. Благодаря этому увеличивается скорость загрузки сайта. В строке Page cache method:, если у вас виртуальный сервер, то выбирайте пункт Disk (enhanced). Рядом с кнопкой сохранения есть кнопка очистки кэша для данного пункта.

Minify данная опция позволяет уменьшить размер таких файлов с расширением: .css .js .html . Сделайте на всякий случай бекап перед включением данной опции. С помощью этой опции файлы с этим расширением уменьшаются в размере, за счет удаления пустых строк. НО, если ваш JS скрипты не валидны (Объясню: иногда не ставят в конце строк точку с запятой и браузер понимает, но, когда переносы строк будут убраны, строки сольются в одну, что приведет к ошибкам). Скорости сэкономите немного, зато проблем можете получить достаточно, поэтому можно отключить.

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

Object Cache — включение объекта кэширования. Содержит в себе различные объекты из БД. Может, как ускорить сайт, так и нет. Зависит от скорости диска — операций записи и чтения. Проверьте, если ускорит, то включайте.

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

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

Varnish или (Reverse Proxy) — опция включает HTTP-акселератор. Подходит для огромных проектов, для блога можно оставить выключенной данную опцию.

Network Performance & Security powered by CloudFlare — еще одна опция, похожая на предыдущую, по доставке контента из другого хранилища. Включать для не очень большого блога также нет необходимости.

Miscellaneous — доп. настройки. У меня отмечено: Verify rewrite rules — проверяет правила перезаписи на сервере, некоторые плагины могут сбить настройки плагина W3 Total Cache, данная опция скажет об ошибке. Enable Google Page Speed dashboard widget — будет составляться отчет о скорости работы сайта и его оптимизации при помощи Google Page Speed.

Debug Mode — не использую. Хотя, когда было отмечено (Page Cache, Database Cache, Object Cache) запросов к БД было чуть меньше.

Import / Export Settings — импорт и экспорт настроек. Можно сохранить настройки на компьютере. Download — сохранить настройки на компьютере. Upload — загрузить на сайт настройки. Restore Default Settings — восстановить настройки по умолчанию.

Вкладка Page Cache

Следующая вкладка, после General settings. Здесь можно более подробнее настроить параметры кэширования для опции Page Cache . Каждые следующие вкладки — более детальная настройка.

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

Cache Preload — включение предзагрузки кэша. Это позволит быть кэшу всегда быть готовым, готовясь уже в фоновом режиме. Что равномерно распределит нагрузку на сервере. Немного посчитаем: я использую интервал в 100 секунд для создания кэша для 10 страниц. В следующем пункте (Advanced ) я указываю цифру в 2500 секунд ≈ приближенно равно количеству моих страниц (250). Если же я укажу во вкладке Advanced цифру 1500, то будет подготовлено кэша только для 150 страниц. После отведенного времени кэш обнуляется и строится заново. Также укажите адрес к вашей карте сайта, на основе которой и будет готовиться кэш.

Purge Policy: Page Cache, Varnish — установка страниц, кэш которых будет сразу удален после выхода новой статьи. Те страницы, на которых будет показана новая статья будут сразу обновлены и актульны, если же не указать эту страницу, то она некоторое время будет старой, пока кэш не будет обновлен. Остальные страницы, редко используются, что могут быть немного устаревшими.

Advanced дополнительные настройки кэша. Здесь указываем сколько будет жить кэш, после чего он обновится. 3600 секунд — 1 час достаточно, но можно изменить время, все зависит от настроек в пункте Cache Preload . Также можно указать список User-Agent’ов, для которых страница не будет отдаваться из кэша. Очень важно, чтобы боты поисковых систем, индексировали актуальные страницы.

Compatibility mode (Режим совместимости) — снижает производительность на 20%, в обмен на повышение совместимости в работе. Рекомендуется включить для большинства сайтов.

Вкладка Minify

General общие настройки для уменьшения файлов. Устанавливаем: перезаписать структуру URL и отключить уменьшение файлов для зарегистрированных пользователей.

HTML & XML — уменьшение файлов формата HTML и XML. Отмечаем все, кроме Don’t minify feeds . Нижнее окошко нужно для того, чтобы указать какие комментарии оставить в файлах. (комментарии, которые в файлах, а не те, которые оставляют посетители).

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

CSS — уменьшение CSS файлов стилей. @import handling — позволяет применить правило @import , это позволяет импортировать содержимое 1 файла в другой. Выбираем Process.

Advanced — оставляем как есть. Можно изменить время жизни кэша и сборки мусора.

Вкладка Database Cache

General — общие настройки кэша БД. Ставим галочку перед Don’t cache queries for logged in users означает не кэшировать запросы для зарегистрированных.

Advanced — время жизни кэша, сбора мусора, а также страницы, которые не кэшировать и запросы, которые не кэшировать. Оставляем как есть.

Вкладка Browser Cache

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

General — ставим галочки, как на скриншоте.

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

Вывод: плагин W3 Total Cache очень хороший и отлично кэширует файлы, снижая нагрузку на сайт в несколько раз. Из всех плагинов, что я устанавливал, этот лучший.

Всем привет! В сегодняшнем посте я поделюсь с вами 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.