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

  • 05.05.2019

Здравствуйте, друзья!

Долго я не писал. И сегодня постараюсь выдать статью, которая перекроет несколько таких, которые я мог бы написать за все упущенное время.

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

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

И тут я узнал о плагине W3 Total Cache, который автоматическим образом может сделать те задачи, которые придется выполнять вручную либо же вообще не удастся. Я установил данное решение и удалось прибавить еще скорости сайту + увеличить оценку в глазах сервиса Google PageSpeed Insights. Конечно это не все 100%, но может у вас получится это сделать. Плагин вполне может помочь в этом.

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

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

Преимущества плагина W3 Total Cache

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

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

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

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

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

Что же же это за функционал?

  1. Во-первых, можно производить оптимизацию html, CSS и javascript файлов, которая включает в себя минимизацию и объединение всевозможных различных файлов в один. Таким образом можно значительно сократить скорость загрузки сайта + сделать код сайта более легким;
  2. Во-вторых, можно включать кэширование браузера на стороне клиента, кэширование запросов к базе данных, gzip сжатие и другие функции, которые требуют вмешательства в файлы сайта.

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

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

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

Теперь мы переходим к настройкам, которых достаточно много.

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

Приступим.

После установки и активации плагина, появится новый пункт в админ-панели сайта.

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

  • Purge from cache - удаляет из кэша ту страницу, на которой сейчас находимся;
  • Empty all caches - очистить весь кэш сайта;
  • Empty page cache - очистить кэш страниц;
  • Empty minify cache 0 очистить кэш элементов, которые были минимизированы (скрипты, стили, html код);
  • Empty database cache - очистить кэш sql запросов к базе данных;
  • Empty object cache - очистить объект кэша.

Итак, начнем с самого первого пункта настроек плагина (dashboard) и дойдем до последнего.

Пункт настроек Dashboard

Как и в любом другом плагине или программе на компьютере, на данной приборной (функциональной) панели можно видеть различную информацию о плагине и о его работе.

В данном случае мы видим несколько блоков, на которых можем:

  1. Смотреть прайс на подключение других возможностей плагина (платная поддержка);
  2. Поддержать плагин различными способами;
  3. Подключить плагин к работе совместно с системой хранения файлов MaxCDN, чтобы сделать загрузку более быстрой;
  4. Смотреть данные о скорости работы сайта;
  5. Отслеживать статистику о скорости работы сайта по данным сервиса Google Page Speed.

1 - варианты платной поддержки; 2 - поддержать плагин различными способами; 3 - подключить плагин к работе с MaxCDN; 4 - смотреть статистику производительности сайта; 5 - подключение сервиса Google pagespeed для просмотра производительности

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

Также можно смотреть информацию об установленных модулях плагина и о его совместимости (кнопка compatibility check).

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

General Settings (основные настройки)

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

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

Блок General

  • Toggle all caching types on or off (at once) - данный чек-бокс служит переключателем между активным и неактивным состоянием всех чек-боксов за каждый тип кэширования. Если необходимо включить все типы кэша, тогда ставим галочку и сохраняем настройки (Save all settings). Так же само и отключаются все типы кэша в пункте "General settings" - стоит снять чек-бокс и сохранить настройки. Я не рекомендую включать данную настройку, так как мы используем не все;
  • Preview mode - режим предварительного просмотра работы плагина. Если вы хотите сначала протестировать работу плагина, чтобы никто (кроме администратора) не мог видеть результаты его работы, то активируйте данный режим, нажав на кнопку "Enable". Если же вы хотите отдать работу плагина на всеобщее обозрение, тогда отключите данный режим (отключен по умолчанию).

Блок Page Cache

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

Так как основная функция плагина W3TC - кэширование, то функцию обязательно включаем (чек-бокс "Enable").


  • Page cache method - метод кэширования. По умолчанию стоит вариант "Disk: Enhanced", который подразумевает, что вы используете виртуальный хостинг. Данный вариант помечен, как лучший, поэтому его и используем.

Также вы можете выбрать вариант "Disk: Basic", если у вас недорогой слабый хостинг. Если заметили, что после выбора рекомендуемого варианта (Enhanced) сайт стал работать заметно медленней или какие-то функции тормозят, то установите вариант Basic.

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

Блок Minify

В данном блоке мы можем минимизировать файлы CSS, Javascript и html.


Настройку конечно же включаем, активировав чек-бокс "Enable" напротив пункта "Minify".

  • Minify mode - выбираем режим минимизации. По молчанию стоит вариант "Auto", который подразумевает, что вся минимизация файлов будет происходить в автоматическом режиме. Лучше данный вариант и оставить, если он работает нормально. В моем же случае имеются скрипты, которые подгружаются с других сервисов и, когда они минимизируются данным плагином, то происходят конфликты из-за чего перестают работать некоторые функции. Поэтому, как видите, я выбрал ручной вариант минимизации "Manual", который мы настроим чуть далее в пункте настроек плагина "Minify";
  • Minify cache method - выбираем метод кэширования для данной функции. Оставляем вариант по умолчанию "Disk";
  • HTML minifier, JS minifier, CSS minifier - данные пункты отвечают за выбор способа минимизации. Варианты по умолчанию хорошо справляются со своей задачей. Но, если вы видите, что какие-то функции работаю не так, например скрипт перестал работать или стили поехали, то попробуйте изменить способ минимизации к соответствующим файлам. Я оставил все по умолчанию.

После всех проделанных изменений не забываем сохранить настройки.

Блок Database Cache

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

  • Database Cache - включаем кэширование запросов к базе данных, активировав чек-бокс "Enable";
  • Database cache method - по аналогии с предыдущими методами кэширования оставляем вариант по умолчанию (Disk).

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


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

Касаемо метода кэширования, то ставим тот же самый "Disk".

Блок Browser Cache

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

Обязательно включаем данную настройку.


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

Это достаточно просто проверить. Можно воспользоваться все тем же сервисом Google PageSpeed Insights . Вводим адрес сайта на странице сервера и смотрим результат проверки.

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

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

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

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

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

  1. Проверяем сайт;
  2. Если кэш браузера отключен, тогда включаем его в плагине;
  3. Если после повторной проверки сервис все равно ругается и изменений вообще никаких нет, то обращаемся к поддержке хостинга, чтобы узнать, включено ли кэширование в браузере на стороне клиента. Если включено, то данную настройку можно не включать и показания сервиса Google PageSpeed Insights относительно этого пункта можем игнорировать. Если же нет, тогда просим включить вашего хостера кэш браузера, так как это одна из важнейших настроек для оптимизации скорости сайта.

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

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

Блок CDN

С помощью этого пункта настроек мы можем сделать загрузку статических файлов нашего сайта не с нашего хостинга, а с системы доставки контента. В данном случае это система MaxCDN (или ее аналоги, например Amazon S3). Она платная и я предполагаю, что вряд ли кто-то будет платить за нее, хоть и стоит она сущие копейки.

Если же все таки решились на этот шаг, тогда активируем чек-бокс "Enable" и выбираем предпочтительную для себя CDN. Рекомендую MaxCDN и Amazon S3.


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


Блок Monitoring

Можно включить мониторинг производительности сайта с системой New relic. Но тогда придется создать аккаунт в ней и получить ключ API, который следует ввести в данном блоке настроек плагина.

Блок Licensing

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


Блок Miscellaneous (разное)

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

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

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

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

Блок Debug (отладка)

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


Вот как это выглядит в исходном коде.


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

Блок Import/Export Settings

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

Также можно сбросить все настройки W3 total cache в исходное состояние, которое доступно сразу после установки и активации плагина.


  1. Импорт настроек из файла конфигураций;
  2. Экспорт настроек в файл конфигураций;
  3. Сброс настроек в исходное состояние.

Основные настройки мы рассмотрели. Переходим к следующему пункту.

Page Cache (кэш страницы)

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

Блок General

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

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

Блок Cache preload

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

Все чек-боксы включаем.

  • Automatically prime the page cache - автоматически создавать кэш страницы;
  • Preload the post cache upon publish events - предварительная загрузка страницы в кэщ сразу после момента ее публикации.
  • Update interval - интервал времени, один раз в который создается новая партия кэшированных страниц. Значение выставляем в секундах. Значение 604800 - одна неделя. Можете выставить более маленький интервал. Тут экспериментируйте и следите за нагрузкой своего сайта на хостинг. Сейчас я поставил стандартное значение в 900 секунд;
  • Pages per interval - количество страниц, которое будет кэшироваться в заданный ранее интервал времени. Я ничего не менял. По умолчанию стоит 10;
  • Sitemap URL - указываем путь к XML карте сайта. Из данной карты будут определяться приоритеты для разных типов страниц и в соответствии с ними будет происходить кэширование.

Блок Purge policy: Page cache

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

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

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

Блок Advanced (продвинутый)

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

Но все же я применил некоторые функции, что вам сейчас и объясню.

Первая настройка у меня не включается, поэтому включить ее я и не смог. Этого делать и не нужно, т.к. в описании к опции написано, что может увеличить время отклика сайта. А нам это ни к чему.

  • Compatibility mode - режим совместимости. Разработчики говорят, что включив эту опцию производительность сайта может упасть примерно на 20%, но взамен мы получим более высокую совместимость работы плагина с большинством хостинг провайдеров. Рекомендую включить данную настройку, что я и сделал;
  • Charset - настройка решает проблему с возможными проблемами в кодировке уже закэшированных страниц. Я включил;
  • Garbage collection interval - интервал очистки мусора (кэша, срок действия которого вышел). По умолчанию стоит значения 3600 секунд (1 час). То есть каждый час будет производится очистка того кэша, у которого истек срок действия его хранения. Кэш удалится и начнется создание нового. Для занятых сайтов (где мало места на хостинге, но много страниц, то есть в перспективе много кэша) рекомендуются небольшие значения. Я поставил значение 1го дня (86400 секунд) и пока все работает хорошо.

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

  • Accepted query strings - указываем строки с запросами и URL, на которых будут производиться данные запросы будут всегда кэшироваться;
  • Rejected user agents - вписываем те пользовательские агенты, которым никогда не будут даваться кэшированные страницы (агенты - по сути это те устройства, с которых сидит пользователь, например Apple 5 iphone);
  • Never cache pages that use the specified cookies - никогда не использовать кэш для страниц, которые используют специфические куки;
  • Never cache the following pages - никогда не кэшировать следующие страницы. Указываем те страницы, которые никогда не нужно заносить в кэш;
  • Cache exception list - список исключений кэша. Сюда указываем те страницы/директории, которые нужно кэшировать даже, если они добавлены в пункт ранее "Never cache the following pages";
  • Specify page headers - указываем заголовки страниц, отдаваемые сервером, которые также стоит кэшировать.

Minify (минимизация)

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

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

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

Блок General


  • Rewrite URL structure - данная опция у меня активна по умолчанию. Так ее и оставил. Отвечает за перезапись структуры URl адресов для CSS и Js файлов;
  • Disable minify for logged in users - деактивировать минимизацию для залогиненных пользователей. Если активируете данную настройку, то для вас, как администратора (вошедшего пользователя сайта в свой аккаунт), минимизация не будет применяться. А вот для остальных посетителей минимизация работать будет. Тут ставим на ваше усмотрение, но я не включал;
  • Minify error notification - уведомление об ошибках минимизации. Если вы хотите, чтобы вас плагин уведомлял об ошибках при минимизации, то в выпадающем списке справа выберите способ уведомлений. Существует 3 способа уведомлений: в админке (admin notification), на почту (email notification) и последний комбинированный вариант.

Блок минимизации HTML и XML


Напротив пункта " HTML minify settings" выставляем те параметры, в соответствии с которыми будет происходить минимизация HTML и XML на странице сайта.

  • Enable - включаем минимизацию;
  • Inline CSS minification - минимизировать CSS так, чтобы все было выстроено компактно в одну строку. Удаляются пробелы и отступы в тех местах, где их можно убрать. Таким образом код становится очень компактным без лишнего пустого места, что уменьшает его размер;
  • Inline JS minification - тоже самое, только для JS элементов (скриптов) на странице сайта;
  • Don"t minify feeds - не минизировать фид каналы. Я их минимизировал бы, поэтому опцию не активировал;
  • Line break removal - удалить разрывы строк в коде. Когда мы удалим все отступы и пустые места в HTML коде посредством 2й и 3й настроек, то код уже будет компактный, но могут быть переносы строк. Чтобы убрать эти переносы мы активируем последнюю настройку и код станет в одну строку. В браузере Google chrome вы не увидите одну строку в исходном коде страницы, а просто будет показан слитный код. Чтобы убедиться в наличии кода в одной строке проверьте исходный код в браузере Mozilla Firefox - он отображает так, как все есть на самом деле.

Ignored comment stems - игнорируем комментарии при минимизации кода страницы. При минимизации всегда удаляются комментарии в коде, так как они не несут никакой информации поисковому роботу. Но имеются такие комментарии, которые несут смысловую нагрузку. Это могут быть различные коды просто в валидном виде, что делает из них обычные комментарии, но по факту они работают.

По умолчанию в данное поле добавлены первые 2 исключения, которые часто находятся в коде в таком виде, что делает из них комментарии. Я также добавил 3й вариант - noindex. У меня в шаблоне достаточного много мест закрыто данным тегом. Но закрывал я их не в стандартном виде (), а в валидном варианте (<--noindex-->). Такой валидный вариант воспринимается, как комментарий в коде\

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

Блок минимизации JS (Javascript, скриптов)

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

В блоке настроек "Operations in areas" мы можем выбрать 2 вариант оптимизации скриптов:

  1. Либо их полная минимизация (minify);
  2. Либо только объединение (combine only).

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

Далее мы удаляем все комментарии из скриптов (Preserved comment removal) и переносы строк (Line break removal), чтобы скрипт выстроился в одну строку. Эти 2 опции не работают при варианте только с объединением скриптов (combine only).

Довольно интересным пунктом настроек в минимизации является опция " JS file management", которая позволяет управлять расположением скриптов в различных шаблонах файлов темы оформления.

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

Как пользоваться этой опцией? Сперва мы выбираем шаблон, с которым мы будем работать, и жмем на кнопку "Add script".


Появится поле для ввода адреса к файлу скриптов (1), для выбора шаблона вывода определенного типа страниц (2) и для выбора места размещения (3).

При выборе области размещения скрипта мы можем выбрать 3 варианта его локации:

  1. В секции шапки сайта (секция head). В данной области я рекомендую размещать только те скрипты, которые не работают в нижней области сайта (перед закрывающим тегом body);
  2. После открывающего тега body;
  3. Перед закрывающим тегом body. Именно это вариант я и рекомендую использовать, чтобы скрипты загружались в самую последнюю область.

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

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

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

Не забываем пользоваться кнопкой "Verify URL" для проверки правильности адреса к файлу скриптов.

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

Минимизация CSS файлов стилей

Тут все то же, что и в предыдущем блоке настроек, связанном с минимизацией скриптов. Делаем все точно так же. Единственное, что не могу вам ничего сказать про опцию "@import handling". Не разобрался я с тем, на что она влияет. Ее и не трогал. Вы поступите так же.

В остальном же ставим так, как на скриншоте ниже.


Настройки аналогичны блоку продвинутых опций в пункте настроек плагина "Page cache", который мы рассмотрели ранее. Только он немного сжат.

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

Остальные поля касаются исключений.

  • Never minify the following pages - никогда не минимизировать следующие страницы;
  • Never minify the following JS files - никогда не минимизировать следующие js файлы. Данным полем рекомендую пользоваться в том случае, если после минимизации скриптов у вас происходят конфликты. Возможно, что минимизация какого-то скрипта приводит к конфликтам и из-за этого все скрипты перестают работать. Для этого определяем проблемный скрипт и заносим его в исключения;
  • Never minify the following CSS files - никогда не минимизировать следующие CSS файлы;
  • Rejected user agents - указываем пользовательские агенты, которые никогда не будут получают минимизированные данные.

Database Cache (кэш базы данных)

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

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

Просто активируем кэширование запросов к базе данных в пункте "General setttings" настроек плагина и изымаем эффект.

Object Cache (кэширование объектов)

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

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

Browser Cache (кэш бразуера)

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

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

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

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

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

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

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

Я выбрал функцию "Set expires header", так как она является наиболее распространенной. Тоже самое можно сказать и про первый заголовок в списке этих пунктов. Его также можно выбирать.

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

Enable HTTP (gzip) compression - также важная настройка, которая опять же по умолчанию на большинстве хостингов активна. Она сжимает все данные и помещает их в архив сжатого формата gzip. Браузеры могут распознавать содержимое такого формата. Таким образом клиент не грузит всю информацию в полном размере, а только в сжатом, что значительно сокращает время загрузки страницы.

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


Если увидите точно такую же картину, тогда gzip сжатие включено и дополнительно его включать в настройках плагина нет смысла. Если же вместо "Yes" вы будете видеть "No", тогда настройку придется активировать.

Как видите, сжатие позволило уменьшить размер данных на 74.1%. Данный момент я выделил зеленой рамкой.

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

Кроме основного бока настроек в блоках настройки кэширования в браузере для конкретных типов элементов мы можем настроить срок жизни заголовков на стороне клиента. Возьмем в пример блок "CSS & JS".


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

User Agent Groups (группа пользовательских агентов)

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

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

Каждая группа имеет свои настройки редиректов.

Рассмотрим на примере стандартной группы, которая создана по умолчанию и имеет приритет "высокий" (hight).


Для активации ставим чек-бокс "Enable".

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

В пункте "Redirect users to" указываем тот домен, на который нужно перекинуть посетителя. Применение разумно в том же случае с мобильной версией сайта. Может быть полная версия сайта на основном домене, а на поддомене размещаться мобильная версия. Тогда в данном поле укажите поддомен и посетителя, зашедшего с одного из указанных пользовательских агентов, перенаправит на мобильную версию сайта.

Referrer Groups

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

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

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

Принцип настройки аналогичен предыдущему пункту.

CDN

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

Суть в том, что такие системы/сервисы позволяют значительно снизить нагрузку с хостинга и выдержать любые объемы трафика без проседания самого сайта. Поэтому, если сайт реально громадный и сильно грузиться, то это реально повод, чтобы задуматься либо о переезде на выделенный сервер, либо подключить одну из систем CDN (например, MaxCDN или Amazon S3).

По традиции настройки разбиты на несколько блоков.

Блок General

Тут выставляем галочки напротив тех типов файлов, которые будут обрабатываться CDN. Я выбрал тут все типы файлов за исключением последнего пункта, так как он отвечает не за тип файлов, а за пропись к ним некого заголовка "canonical". Судя по всему, это похоже на атрибут rel="canonical", который прописывается к главной странице. Но все же по умолчанию данная настройка отключена, поэтому я бы ее не трогал.

Блок Configuration

Также вы можете ввести тот хост (адрес сервера с CDN), который будет заменять адрес вашего домена в коде сайта. Куда нужно добавлять я пометил зеленой рамкой.

Нажав на кнопку "Add CNAME" снизу поля ввода, вы добавите еще некоторые поля, которые будут отвечать за замену адреса не во всех хостируемых элементах сайта на CDN, а за определенные, например за замену адреса в файлах скриптов, размещенных в секции Head сайта. Аналогично и для скриптов, размещенных перед закрывающим тегом body и так далее. Самое первое поле касается файлов стилей.

Блок Advanced (продвинутые настройки)

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

Добавляются они в формате "*.расширение", например "*.xls". Каждый тип записывается через точку с запятой (;).

  • В пункте "Custom file list" указаны директории и размещенные в них типы файлов, которые также стоит хостить на CDN. Тут указаны директории, отличны от папки с темой оформления и папки wp-includes, которые по умолчанию обрабатываются плагином (выделены красными рамками).
  • В поле "Rejected user agents" вводим названия пользовательских агентов, которые не должны получать данные с CDN. Будут им выдаваться оригинальные данные с хостинга.
  • Пункт "Rejected files" содержит директории с типами файлов, которые не стоит использовать совместно с CDN.

Monitoring (мониторинг)

Если мы включали систему мониторинга производительности сайта в пункте настроек "General settings", тогда тут можем произвести некоторые настройки. Хотя, я не рекомендовал бы их особо менять. Лучше оставить все как есть.

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

Настройки я не трогал бы.

Extensions (расширения)

В данном пункте мы можем настроить работу плагина с некоторыми расширениями. Я не видел бы смысла в данном пункте, если бы не наличие такого расширения, как "Wordpress seo by yoast".

Активировав его, мы можем настроить работу плагина W3 Total Cache в соответствии с рекомендациями плагина WordPress seo by yoast. Данный пункт и так можно активировать, но учитывая, что у меня и стоит этот плагин, то это более чем актуально.


FAQ (справка)

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

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

Install

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

About

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

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

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

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

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

До скорой.

С уважением, Константин Хмелев!

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

Чтобы ощутить все прелести этого плагина, давайте для начала протестируем существующую ситуацию. Я выбрал один из последних сайтов, который я сделал, добавил приложение в Firefox YSlow Addon for Firefox которое покажет время загрузки сайта, у меня на данный момент оно составляет 8,5 сек – я был в шоке!

Изменим эту ситуацию!

  1. Перед установкой плагина Вы должны убедится, что любые другие плагины кэширования полностью удалены, в противном случае плагин W3 Total Cache при активации выдаст ошибку.
  2. Если все в порядке устанавливайте плагин (не в курсе как устанавливать плагины в WordPress? — читайте ).
  3. Официальная страничка плагина в каталоге WordPress.
  4. После того как Вы активируете плагин в панели управления появится новый пункт «Perfomance», нажимая на который мы попадаем на страницу настроек и конфигурации плагина W3 Total Cache.

Настройки и конфигурация W3 Total Cache

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

Вкладка General

Первым делом на странице настроек мы попадаем в раздел основных настроек General. Сразу же отключаем режим просмотра (см. картинку) нажатием на кнопку disable (то есть плагин будет работать в режиме реального времени, а не в режиме просмотра).

Следующая опция в этом списке Page Cache. Эта раздел работает так же как в плагине WP Super Cache – создается кэш для статических страниц, включая эту опцию Вы значительно уменьшите время загрузки, рекомендуется использовать диск Enchanced.

После блока Page Cache идет блок Minify – позволяет минимизировать файлы.css, .js, .html также записи, страницы и RSS. Опции обязательно отметьте как на скриншоте. Принцип действия мимнимизирования заключается в том, что удаляются бесполезные расстояния между тегами кода такое действие ускоряет время загрузки сайта на 10%.

Следующий блок опций Database Cache. Обязательно должен быть разрешен, так как CMS WordPRess полностью работает на базе данных и часто высокие нагрузки запросов к БД являются причиной жесткого замедления сайта + если у Вас большой трафик, то это вообще катастрофа. Включение опции может ускорить Ваш сайт в 100х раз.

Не расслабляемся и двигаемся к блоку Object Cache. Галочка в этом блоке увеличивает производительность динамических сайтов использующих API кэша объектов. Окончательные настройки должны выглядеть как на скриншоте:

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

Следующий этап это CDN (Content Delivery Network), к сожалению плагин поддерживает только платные варианты CDN: MaxCDN, NetDNA, Amazon S3, Rackspace Cloud и Amazon Cloud. Если Вы не знаете что такое CDN или не планируете его использовать, то советую сразу же галочку снять.

Далее идет блок Varnish – еще один замут с кэшированием типа CDN и блок Network Perfomance & Security powered by CloudFlare. Ими можем не пользоваться, убираем галочку с Enable. Эти блоки целесобразно использовать, если Ваш ресурс мега посещаем от 1000 и более посетителей — эти CDN, бесплатны, но если у Вас будет такое количество посетителей на сайте не лишним будет раскошелится на 40$ и подключить систему доставки контена (CDN) MaxCDN — очень хорошая и с поддержкой, об них я чуть попозже напишу отдельную статью.

Блок настроек Miscellaneous галочки ставим как на скриншоте ниже и если у Вас есть Page Speed Online API от Google, что можете его здесь ввести.

В блоке настроек Debug не советуют вообще что-то отмечать галочками, послушно поверим

И последний блок это импорт и экспорт настроек, можно сохранить настройки нажав кнопочку download на компьютер, можно и импортировать уже существующие настройки, в общем ничего сложного

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

Вкладка Page Cache

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

В блоке Advanced мы можем выбрать время жизни странице в кэше, по умолчанию 3600 секунд, можете уменьшить (если Вы постоянно работаете над сайтом) или увеличить если изменения происходят редко. Далее можно задать не посылать кэш страницы Bot’у Google – не рекомендуется. Можем отметить страницы которые мы бы не хотели видеть в кэше. В настройках этого блока желательно придерживаться скриншота.

И последний блок настроек в этой вкладке Purge Policy – более определенный выбор страниц копии которых нужно создать в кэше.

Вкладка Minify

Более подробная минимизация (уменьшение размеров) файлов, в первом блоке настроек отмечаем галочкой перезаписывать структуру URL:

Следом настраиваем блок JS, можно добавить разные файлы скриптов для кэширования добавив их через кнопку «Add a script»

И в последнем блоке Advanced мы можем выбрать через какое время обновлять файлы шаблона

Вкладка Database Cache

Медленно, но уверено, главное до конца доползти. Блок настроек General как на скриншоте:

Блок настроек Advanced можете установить время жизни копии кэша

Вкладка Object Cache

Оставляем все здесь по умолчанию.

Вкладка Browser Cache

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

Так и последним шагом будет нажатие кнопочки «Empty page cache» — нужно очистить кэш, после этого Вы увидите зеленое слово «Enable», которое говорит о том, что плагин успешно функционирует.

Заключение

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

Удачи! Если возникли какие-то вопросы, задавайте их в комментариях.

Часто возникает вопрос: «Какой плагин круче W3 Total Cache или WP Super Cache?». Важно понимать, что все нужно проверять самому, одно скажу точно: «если не использовать CDN в W3 Total Cache и в WP Super Cache, то скорость загрузки примерно одинакова». Выбор за Вами, можете подробнее прочитать о плагине WP Super Cache.

Часто пользователи жалуются на то, что их сайты медленно загружаются. И любой из них хочет узнать секрет быстрой загрузки сайта на WordPress. Помимо хорошего веб-хостинга и корректно написанных плагинов, вам стоит убедиться в том, что вы используете, собственно, кеширование и CDN (content delivery network — сеть доставки контента). Для каждого нового сайта мы используем плагин под названием W3 Total Cache. В виду частых вопросов от пользователей мы решили написать пошаговую инструкцию о том, как установить и настроить W3 Total Cache для новичков.

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

Прежде, чем начать, мы рекомендуем проверить быстродействие вашего сайта с помощью инструментов Google Page Speed и Pingdom Tools . Таким образом вы сможете сравнить результаты ДО и ПОСЛЕ.

Ниже скриншот результатов Pingdom на примере домена WPBeginner:

Давайте приступим к настройке W3 Total Cache.

Что такое W3 Total Cache?

W3 Total Cache — это самый быстрый и наиболее функциональный плагин WordPress для оптимизации производительности. Им пользуются множество популярных сайтов, включая: AT&T, Mashable, Smashing Magazine, WPBeginner и миллионы других. W3 Total Cache улучшает юзабилити вашего сайта путем улучшения производительности вашего сервера, кеширует практически любой аспект вашего сайта, уменьшает скорость загрузки и предоставляет прозрачную интеграцию сетей доставки контента (CDN).

Устанавливаем W3 Total Cache в WordPress

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

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

Нажимаем на кнопку Установить сейчас, а затем активируем плагин.

Настройки и конфигурация W3 Total Cache

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

General Settings

Вы можете перейти в General Settings, кликнув на меню Performance в административной панели WordPress. Здесь мы будем настраивать плагин, и начнем с общих настроек. Убедитесь, что вы находитесь именно на странице General Settings, а не на рекламной странице Dashboard, которая есть у этого плагина.

Что такое Page Cache?

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

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

Для хостинга, которые используют большинство новичков, способ Disk:Enhanced крайне рекомендуется. Вам необходимо отметить галочку Enable Page Cache и сохранить все изменения.

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

Также мы пропустим Minify, Database Cache, и Object Cache. Причина этого заключается в том, что не все серверы обеспечат оптимальные результаты с этими настройками. Следующей опцией, которую вы увидите, будет Browser Cache.

Что такое Browser Cache?

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

Настройка Browser Cache в W3 Total Cache устанавливает лимит времени кеша браузера. Учитывая то, что вы не меняете свой логотип на сайте каждый день, наличие статических файлов типа этого, кешируемых на 24 часа, совершенно не повредят. Просто отметьте Enable рядом с настройкой Browser Cache и кликните на кнопку сохранения изменений. После этого давайте посетим страницу Performance » Browser Cache для более детальной настройки.

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

Что такое CDN?

CDN расшифровывается как Content Delivery Network (Сеть доставки контента) и позволяет вам распределять ваш статический контент по различным облачным сервисам, а не хранить его на вашем одном хостинге. Это позволяет снизить нагрузку на сервер и ускорить ваш сайт.

W3 Total Cache поддерживает MaxCDN , Amazon S3, Rackspace Cloud, и Amazon Cloud Front. Этот раздел применим только к тем сайтам, которые используют или планируют использовать CDN.

Мы пользуемся MaxCDN и расскажем, как настроить его на использование с плагином W3 Total Cache. Первое, что нужно сделать, это создать Pull Zone в вашем аккаунте MaxCDN. Войдите в свой профиль MaxCDN, кликните на Manage Zones , а затем нажмите на кнопку Create Pull Zone .

На следующей странице вас попросят указать детали для вашей pull zone.

  • Pull Zone Name: Просто задайте любое имя этой зоне, чтобы вы могли ее потом легко идентифицировать в своем аккаунте MaxCDN.
  • Origin Server URL: Введите адрес вашего сайта на WordPress, начиная с http:// и заканчивая слешем / в конце.
  • Custom CDN Domain: введите любой поддомен, например: cdn.сайт
  • Label: Укажите описание для этой pull zone.
  • Compression: Включение сжатия сохранит вам трафик и канал связи, поэтому крайне рекомендуется отметить эту галочку.

Скриншот того, как будет выглядеть все вышеуказанное, ниже:

Нажмите на кнопку Create и MaxCDN создаст Pull Zone. На следующей странице он отобразит вам URL вроде “wpb.wpincode.netdna-cdn.com”, который необходимо скопировать и вставить в текстовый файл, потому как он понадобится нам позже.

Теперь, когда мы создали Pull Zone, следующим шагом будет настройка зон контента. Это можно сделать, открыв вашу консоль MaxCDN. Нажмите на кнопку manage рядом с вашей только что созданной pull zone. На следующей странице кликните на вкладку Settings. Целью создания зон контента является добавление поддоменов, чтобы мы могли улучшить юзабилити путем постановки в очередь на загрузку контента с различных поддоменов в браузер пользователя. Для этого нажмите на кнопку Custom Domains и добавьте несколько поддоменов. Обратите внимание на скриншот ниже:

Следующим шагом будет указание записей CNAME для поддоменов. Большинство приличных хостинг-провайдеров предоставляют в распоряжение пользователей панель управления cPanel для настройки хостинга. Мы будем описывать как указать записи CNAME в cPanel.

Зайдите в панель управления хостингом cPanel и выберите Simple DNS Zone Editor под Domains.

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

cPanel автоматически заполнит целый домен. В поле CNAME введите ссылку, предоставленную MaxCDN, когда вы создавали pull zone. Эта та самая ссылка, которую мы просили вас сохранить в текстовый файл.

Повторите эту процедуру для всех ваших поддоменов, например cdn1, cdn2 и т.д. Запомните, что только меняться будет только поле названия, а поле CNAME всегда должно соответствовать ссылке, предоставленной вам MaxCDN для вашей pull zone. После того, как вы создадите записи CNAME для всех поддоменов, настанет время вернуться в WordPress и настроить MaxCDN для работы с W3 Total Cache.

Переходим в Performance » General Settings . Прокручиваем страницу до блока настроек CDN. Отмечаем галочкой Enable и выбираем MaxCDN из выпадающего списка CDN Type. Кликаем на кнопку Save All Settings .

После сохранения настроек вы увидите уведомление, сообщающее о том, что вам необходимо указать данные в полях “Authorization Key” и “Replace default hostname with”, а также выбрать pull zone. Кликните по ссылке “Specify it here” и W3 Total Cache перебросит вас на страницу CDN.

На этой странице кликните на кнопку Authorize. Данное действие перенаправит вас на сайт MaxCDN, где вам нужно сгенерировать authorization key. Скопируйте и вставьте этот ключ в W3 Total Cache. В “Replace site’s host name with” введите поддомен, который вы создали ранее.

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

будет заменен на:

Теперь, если какие-либо из статических файлов не загружаются с CDN, то, вероятно, это означает, что вам нужно указать их в списке произвольных типов файлов в W3 Total Cache. Нам, например, потребовалось это сделать для плагина OIO Publisher, который используется для управления рекламными блоками. Если вы перейдете на страницу настроек CDN, то увидите Advanced option:

Просто добавьте все файлы/папки, которые вы хотите включить в CDN. Также, если вы заметили, тут есть список для исключенных файлов. Если вы решите незначительно доработать дизайн сайта, ваш style.css обновится не сразу. Поэтому его можно поместить в указанный список файлов на время, пока вы проделываете изменения в дизайне. Если же вам нужно выполнить единоразовую очистку, это можно сделать из консоли MaxCDN.

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

Minify

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

Database Caching

Database caching (кеширование базы данных) уменьшает нагрузку на сервер путем кеширования SQL запросов. Это уменьшает время обработки запросов к базе данных (для небольших сайтов это время может быть совсем незначительным). Когда мы начали использовать этот тип кеширования, то сильно возросла нагрузка на сервер. Наш хостер порекомендовал нам отключить ее. Вместо этого, он активировал для нас встроенное SQL кеширование. Снова таки, эту настройку стоит использовать на свой страх и риск. Можно попробовать включить ее и посмотреть как сильно она влияет на загрузку сайта. Если же влияние незначительно, то лучше отключить. Большинство хостингов также рекомендуют не использовать ее.

Object Caching

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

Теперь, когда вы все настроили, лучше всего будет создать резервную копию вашей конфигурации W3 Total Cache. Не стоит терять наработанные конструкции. Для этого необходимо вернуться на страницу General Settings плагина W3 Total Cache. Здесь вы увидите раздел Import / Export Settings. Кликните на Download the settings file from your server.

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

Rating: 5.0/5 (3 votes cast)

В мы ознакомились с важностью использования кэширования для WordPress на примере плагина W3 Total Cache. А сегодня мы приступим к его настройке. Но для начала зайдите в меню Плагины - Добавить новый и установите плагин W3 Total Cache для своего сайта на WordPress.


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

  • Premium Services содержит информацию о платной поддержке по всем вопросам от команды.
  • В Spread The Word предоставлена ссылка на разработчиков плагина.
  • New Relic содержит статистический обзор о производительности сайта в соответствии с машиной сервера.
  • Страница Google Page Speed Report становится доступна после настройки плагина W3 Total Cache. В этом разделе будет отображаться информация о производительности сайта и отчет о скорости загрузки страницы.

Общие настройки

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

1. Preview Mode (режим просмотра)

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

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

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

2. Page Cache (кэш страницы)

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

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

Следующая опция - это Page Cache Method (метод кэширования страниц) и по умолчанию Disk: Enhanced . Эта опция зависит от типа сервера, который вы используете. Обычно опция Disk: Enhanced подходит для всех типов.

Pro Features: что это?

Shared Servers

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

Первые две опции - Disk: Basic и Dish: Enhanced - используются для виртуального хостинга (когда несколько сайтов разделяют один сервер).

  • Shared Server | Disk: Basic - идеально подходит для недорогого хостинга
  • Shared Server| Disk: Enhanced - рекомендуется для других хостингов

Нужно выбрать Disk: Enhanced . Если ваш сайт начинает работать медленно, а ваш хостинговый провайдер говорит о том, что он использует дополнительные ресурсы, то измените опцию на Disk: Basic или смените хостинг.

Dedicated / Virtual Server

Выделенный / виртуальный сервер.

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

Opcode: Alternative PHP Cache

Альтернативный PHP кэш. Это бесплатное Open Source PHP решение, которое кэширует PHP-код.

Opcode: eAccelerator

Ускоритель и оптимизатор PHP-кода.

Opcode: XCache

Это самый быстрый и стабильный кэш PHP Opcode, который полностью поддерживается как Linux, так и Windows.

Opcode: WinCache

Разработан специально для Windows, как Open Source-решение для кэширования PHP Opcode, кэширования файлов, уведомлений об изменениях файлов, кэш-сессии.

Multiple Server

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

3. Minify (минимизация)

Минимизация CSS- и JS-файлов и HTML-кода сокращает размер и количество файлов, которые в конечном итоге увеличивают скорость загрузки страниц.

Эту часть плагина W3TC нужно настраивать очень внимательно. Тут есть отдельные разделы в выпадающем меню для HTML, JavaScript и CSS. Необходимо протестировать каждую из этих опций одну за другой, а затем проверить сайт, чтоб выяснить, либо они работают корректно, либо нет.

Minify: включите опцию, поставив галочку

Minify Mode

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

Minify Cache Method

Вы можете еще раз просмотреть объяснение этой опции выше. Рекомендованная опция здесь - Disk .

HTML Minifier

Можно использовать стандартный (Default ) минимизатор для HTML. Если у вас возникнут какие-либо проблемы с сайтом, как например, искажение шаблона, то попробуйте использовать Tidy вместо Default. Хотя он вряд ли покажет ошибку для минимизации HTML.

JS Minifier

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

CSS Minifier

Опять же, в случае с CSS Minifier, можно продолжать использовать стандартные опции до возникновения каких-либо проблем.

Если возникают какие-либо трудности в функционировании сайта, как например, искажение шаблона, то причина может быть в неправильной работе CSS или JavaScript. Для устранения этих неполадок отключите опции минимизации. Часто серверы Lite Speed конфликтуют с минимизацией.

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

Следующая функция Cache Preload — это то, что мне особенно нравится в W3 Total Cache. Данная функция основываясь на данных файла sitemap.xml создает кэш заданного количества страниц через каждый заданный промежуток времени. Благодаря этому, ваш сайт полностью окажется в кэше через какое-то время(зависит от размера вашего сайта). В отличии от WP Super Cache, который так же предлагает такую функцию, она здесь действительно работает. Так как Super Cache при нескольких попытках заставить его закэшировать весь сайт(было испробовано на двух различных сайтах), только делал вид, что занят работой. На деле же кэш вообще не пополнялся.

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

Последний пункт называется Advanced и особо интересен он тем, что в нем можно настроить время жизни кэша, которое по умолчанию, если не ошибаюсь, установлено на уровне 5-10 минут, не помню уже. А еще он интересен тем, что первый же пункт, который судя по всему включает все это дело, не активен. Но все же потыкайтесь в пункт под названием Garbage collection interval и проверьте что будет, если из другого браузера(в режиме инкогнито будет еще лучше) зайти на закэшированную минут 10-15 назад страницу, после чего поглядеть комментарий в конце кода страницы с указанием время создания кэша. Если время обновилось и стало равным времени вашего посещения, то увы, плагин либо косячный, либо хочет деньги за свои услуги.

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

Проблемы с W3 Total Cache

Начнем наверное с того, что я опишу конфигурацию сервера, на котором стоит сайт под управлением W3 Total Cache и к которому был присобачен данный плагин. Это VPS под управлением ОС CentOS 6,5, где бэкэндом установлен тягучий Apache, а на фронтэнде уютно разместился быстрый и юркий Nginx. Кроме этого установлен eAccelerator, для кэширования запросов в БД, что в купе с не с самыми кривыми руками позволяет иметь необходимость только в первой и самой важной функции плагина W3 Total Cache. Отсюда хотелось бы сразу отрезать комментарии и высказывания по поводу того, что, возможно, W3 Total Cache работает в чем то хуже других аналогичных плагинов, так данный плагин(именно W3 Total Cache) может похвастаться полной совместимостью с Nginx, в то время как все остальные плагины добавят свои коды в файл.htaccess и с явным недоумением будут ждать, пока администратор перепишет эти реврайты на понятном для Nginx языке. Последнее, надо сказать, мне не удалось. Точнее мне не удалось найти рабочие реврайты, которые заставили бы дружить Super Cache и Nginx. Возможно он и к лучшему, так как сейчас я бы с радостью сменил Super Cache на данном блоге на W3 Total Cache. Но, в семье не без уродов, да и W3TC не такой уж и безобидный. Этим абзацем я заканчиваю монолог о том, что необходимо делать с сервером Nginx для кэширования страниц сайта.(Всегда рад услышать другие методы кэширования).

Итак, проблем в процессе знакомства W3 Total Cache с Nginx`ом, да и тем более с Apache ни у кого не должно возникнуть, а потому перейдем к решению проблемы с невозможностью сменить время жизни кэша, а так же с тем, что W3 Total Cache полностью отказывается слушать все внесенные настройки, такие как запрет на кэширование страниц с запросами(страницы поиска) и запрет на кэширование для пользователей. Если с последними двумя я так и не разобрался, хоть и добрался до ручной правки файла конфигурации(кстати, находится по адресу wp-content/w3tc-config/master.php), то с первым удалось совладать. Хотел бы сказать, что изменение внесенные в админке этого плагина, как правило, сохраняются в этом файле, но лучше перепроверить, благо каждая переменная имеет говорящее название. Из всех переменных меня заинтересовала переменная pgcache.late_init(скорее всего от Late initialization — тот самый пункт, который не активен), которой я сразу же выставил значение true, а так же параметр pgcache.cache.nginx_handle_xml, после выставления которому значения true, плагин наконец-то начал слушать то число, которое введено в поле про максимальное время жизни кэша. Проверка показала, что после данных изменений, на озвученном выше сервере, время жизни кэша действительно стала совпадать с указанным пользователем значением.

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

Вспомнив про мобильную версию сайта хотелось бы сказать, что плагин умеет кэшировать и данную версию, причем отдельно, что не может не радовать. Для этого необходимо перейти во вкладку User Agent Groups и поставить две галочки напротив пунктов Enable. В каждом из пунктов вы можете добавить свою юзер-агенты для каких-то новых устройств. Кэш мобильной версии сохраняется в той же папке страницы, что и кэш основной версии. Отличие только в добавлении постификсов high и low(так называют группы по умолчанию). Вы, кстати, можете добавить и свои группы. Единственный минус с мобильной версией состоит в том, что плагин не умеет самолично создавать кэш мобильной версии сайта, что означает что это будут делать только ваши пользователи(или Вы).

Следующей проблемой с W3 Total Cache стала то, что на данном сайте сразу после активации данного плагина и активации функции кэширования, весь сайт погряз в кракозябрах, что говорит о проблемах W3 Total Cache с кодировкой. На сайте используется кодировка UTF-8 и даже в настройках плагина мелькает эти символы. Однако как активация пункта Disable UTF-8 blog charset support, так и его деактивация, не принесла никаких плодов. Далее в недрах Интернета была найдена подсказка, что нужно добавить строку AddDefaultCharset UTF-8 в начало файла.htaccess, но и данный способ на смог помощь. А так как дальнейшие поиски не привели ни к чему стоящему и был установлен WP Super Cache(который по первому взгляду, не лишен некоторых вышеописанных проблем, но об этом возможно позже).

Кодировка W3 Total Cache, дружба W3 Total Cache с Nginx, мобильная версия сайта… Ну, вроде ничего не упустил из того, чего понабрался во время знакомства с этим инструментом, который, надо сказать, со своим делом справляется весьма неплохо. Если страницы вышеозвученного сайта, судя по статистике от Pingdom.com, грузились от 1-2 секунд, то сейчас этот показатель для закэшированной страницы составляет 0,5-0,7 секунд. Если же обратиться к Page Speed от уважаемого Google, то можно напороться только на предупреждения о том, что ресурсы, скрипты и прочий хлам которых загружаясь вместе с данной страницей, являются единственным отрицательным моментом в безупречной технической оптимизации сайта. И интересно то, что гугл ругается на скрипт JQuery, который загружается из репозитория … да, именно, с репозитория гугла. Им бы самим заняться этим вопросом.

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