Плагин WP Super Cache

WP Super Cache

    Почему именно WP Super Cache выбран в качестве плагина кэширования?

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

Тестирование плагинов кэширования проводилось здесь: https://habrahabr.ru/company/regru/blog/263781/
Нет основания не доверять их выводам:

Итак, лучшими плагинами оказались WP Fastest Cache, WP Super Cache и WP Rocket Cache. Победитель — WP Super Cache с работой через мобильный девайс.

Настройка WP Super Cache

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

  • какой режим всё-таки лучше:
    • PHP
    • или mod_rewrite
  • нужно ли использовать общий кэш (WP-Super-Cache)

Судя по описанию наиболее простым является режим PHP (этот режим и рекомендуется в описании самого плагина).

Режим mod_rewrite немного быстрее, но и капризнее в реализации, так как затрагивает файл .htaccess.

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

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

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

Виртуальный хостинг (англ. shared hosting) — вид хостинга, при котором множество веб-сайтов расположено на одном веб-сервере. Это самый экономичный вид хостинга, подходящий для небольших проектов.

Тестирование

Нас интересуют конкретные цифры, поэтому классически делаем 7 измерении, два крайних показателя (самое большое и самое маленькое) исключаем и выводим среднее из оставшихся 5 показателей.
Измерения проводились с помощью http://tools.pingdom.com с интервалом примерно 3 минуты для исключения «волнообразной» нагрузки сервера.

 Режим  Load Time (s)  Load Time (s)
среднее
Без кэширования  3.43  2.13
 1.01
2.74
2.35
1.06
 1.06
 5.37
Режим PHP 1.81 1.47
 2.47
 1.76
 0.956
2.25
 0.592
 0.523
Режим PHP
+ общий кэш
0.570 1.35
 2.40
 2.21
 0.574
 2.04
 1.37
 0.548
Режим mod_rewrite  0.626 1.45
2.03
 2.37
 0.551
 3.68
 0.552
 1.66
Режим mod_rewrite
+ общий кэш
 2,01 1.33
 2.01
 0.554
 0.562
 1.51
 0.550
 2.62

Выводы

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

    Немного подробнее про общий кэш:

  • в поле «Обновлять общий кэш каждые» ставим «0», то есть не будем пересоздавать общий кэш по расписанию
  • но нажимаем кнопку «Создать общий кэш сейчас»

Ошибки WP Super Cache

Ошибок не так уж и много, всего три, да и те скорее можно отнести к разряду нюансов работы.

Страницы не совпадают

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

Проверка кэширования
В идеале должно быть сообщение «Временные штампы обоих вариантов страницы совпадают!«.

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

Единственный выход — деинсталлировать плагин и установить его заново «с нуля».

Mod_rewrite или Legacy caching отключены

Сообщение: Важно: Mod_rewrite или Legacy caching отключены. По умолчанию будет загружаться страница «Настройки».

mod_rewrite отключено
В оригинале данное сообщение звучит так: «Notice: Mod_rewrite or Legacy caching enabled. Showing Advanced Settings Page by default» и правильно переводится как «Режим Mod_rewrite включен (доступен)». Не стоит волноваться — трудности перевода.

Кэширование XML Sitemap

При кешировании карты сайта от Yoast — слетает форматирование стилей карты сайта, она видится как монолитный кусок текста без всякого форматирования.

Если без кеширования XML Sitemap выглядел так:
XML Sitemap без кеширования

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

Что впрочем впрочем не мешает ее правильному функционированию.

Результаты кэширования

Ну и собственно результаты спустя пару недель после установки плагина WP Super Cache:

Нагрузка-сайта

Нюансы работы

P.S. Долго мучил вопрос — включать или нет «Mobile device support».

Во всех русскоязычных обзорах плагина рекомендуется включить данную опцию. Но если ваша тема оформления поддерживает адаптивную вёрстку — уберите галочку с данного пункта настройки. Обсуждалось здесь: https://wordpress.org/support/topic/use-of-mobile-device-support-option-in-wp-super-cache (англ.). Не забудьте после этого «Обновить правила mod_rewrite», иначе в файле .htaccess будут «болтаться» строчки от мобильной настройки и вы рискуете получить страницы вида «m», «mob», которых в действительности нет.

P.P.S. По умолчанию рекомендуется включить «Сжимать файлы кэша чтобы ускорить работу.»

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

P.P.P.S. При комплексном анализе сайта выяснилось, что имеется дубль главной страницы вида …/index.php.

Что странно, так как тема WordPress коммерческая и при покупке проверил, что такого дубля не создаётся. Проверил код ответа сервера — действительно 200, то есть нет редиректа с …/index.php на основную страницу.
Дубль index.php код ответа сервера 200

При внимательном рассмотрении видно, что php страница отдаётся с WP Super Cache. Заходим в его настройки и убираем кэширование с home и front_page страниц:

Настройка index.php WP-Super-Cache
Ситуация кардинально меняется и тут же появляется редирект (код 301), то есть отсутствие дубля:
Редирект index.php код ответа сервера 301
И естественно пропадает дубль при SEO-аудите сайта.

Оцените, пожалуйста, статью, я старался :) (голосов: 6, оценка: 5,00 из 5)
Комментарии
  1. Здравствуйте!
    Получается так, если в общем кэшэ убрать время обновления и выставить 0, то его нужно будет обновлять вручную, при добавлении новых статей, они сами будут в общий кэш загоняться или их нужно будет вручную добавлять «Создать общий кэш сейчас»?

  2. Alex, если не делать «Создать общий кэш сейчас» и выставить 0 в «Обновлять общий кэш каждые», то WP Super Cache будет создавать кеш только той страницы, которую кто-то посетил.

  3. Спасибо за ответ!
    Я заметил такое, что общий кэш дополняется новыми записями, это их кто-то посещает или теперь каждая новая запись попадает в общей кэш при создании? Если нет, то как сделать так, чтобы каждая новая запись попадала в общий кэш, может быть вы знаете?
    Спасибо!

  4. Alex, чтобы новая запись попала в общий кэш есть три пути:
    1. просто подождать пока кто-то посетит эту страницу;
    2. нажать кнопку «Создать общий кэш сейчас»;
    3. выставить какое-то значение в поле «Обновлять общий кэш каждые».

  5. Если я правильно вас понимаю, чтобы новая запись попала в общий кэш, просто нужно нажать «Coздaть oбщий кэш ceйчac» и он просто дополниться, правильно?
    И еще, может есть возможность с помощью Cron нажимать на «Coздaть oбщий кэш ceйчac» и тем самым его дополнять?
    Заранее спасибо!

  6. Alex, я сперва удаляю кэш и только потом пересоздаю. Но делаю это после «допиливании», обновлении плагинов и т.д., а не после новой записи.
    Меня вполне устраивает режим когда кэш конкретной записи создается при ее посещении юзером.
    Через Cron не работал, не подскажу.

Задайте вопрос в комментариях

четыре × три =