Кеш WordPress


Содержание материала:

Лучшие плагины кэширования для WordPress

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

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

Что такое кэш?

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

Именно поэтому кэширование вашего сайта необходимо, если вы хотите:

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

Как вы видите, есть уйма преимуществ в том, чтобы кэшировать ваш сайт на WordPress.

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

  • кэширование для мобильных пользователей
  • уменьшение размеров файлов и сжатие GZIP
  • настройка расписания очистки кэша
  • поддержка HTTPS/SSL

Лучшие плагины для кэширования WordPress

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

WP Super Cache

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

Особенности WP Super Cache

  • поддержка CDN
  • кастомные хуки
  • управляйте удалением кэша и расписаниями рекэширования
  • опции Mod_Rewrite, PHP, и Legacy Caching
  • увеличьте также скорость загрузки других плагинов

W3 Total Cache

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

Особенности W3 Total Cache

  • поддержка CDN
  • широкий выбор настроек для кастомного кэширования
  • встроенные фичи безопасности

WP Rocket

WP Rocket относится к разряду премиальных плагинов для кэширования. Это простой плагин без каких-либо надстроек, его достаточно просто активировать, чтобы пошел процесс кэширования, но в нем есть масса фич, которые улучшат ваш сайт в самых разных вопросах. Например, премиальной поддержкой, легкой интеграцией с CloudFlare и CDN, и даже используйте этот плагин на мультисайтной (multisite) установке WordPress.

Особенности WP Rocket

  • поддержка CDN
  • широкий выбор настроек для кастомного кэширования
  • поддержка lazy load для отложенной загрузки изображений

Цена: 39 долларов

WP Fastest Cache

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

Особенности WP Fastest Cache

  • автоматическое удаление кэша на странице или в посте
  • поддержка CDN

Comet Cache

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

Особенности Comet Cache

  • кэширование 404-редиректов для уменьшения влияния
  • кэширование RSS, RDF и Atom Feed

Hyper Cache

Hyper Cache это последний в сегодняшнем списке плагинов кэширования WordPress. Он работает как на низкобюджетных (shared) серверах, так и на самых крутых выделенных серверах. Он написан на PHP, работает с любым WordPress блогом и не требует настроек. В дополнение ко всему перечисленному у него имеется двойной кэш для десктопа и мобильной версий сайта. Он также управляет сжатием GZIP.

Особенности Hyper Cache

  • поддержка CDN
  • интеграция bbPress для форумного кэширования
  • исключает папку кэша из бэкапов сайта

В качестве резюме

Если вложить немного времени в улучшение скорости работы своего WordPress-сайта, то можно пожать очень сочные плоды. Вообще, если по чесноку, то установка кэширующего WordPress плагина это то, что должен делать КАЖДЫЙ владелец сайта. Если вы ищите хороший способ улучшить результаты поисковой выдачи, удержать посетителей на своем сайте чуточку подольше и сделать так, чтобы сайт работал и загружался быстрее, то обязательно испробуйте кэширующий плагин и посмотрите на результаты. Уверены, они вас приятно удивят.

Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected] , +371 29394520

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

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

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

Итак. Вот список 10 лучших кэш-плагинов для сайтов на WordPress .

DB Cache Reloaded Fix

Этот плагин — переработанная версия DB cache reloaded , которая работает на WordPress версий 3.1 и выше. Плагин кэширует SQL-запросы посетителей, присваивая им определенный срок жизни, с целью оптимизации работы сайта.

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

WP Super Cache

Работа этого плагина заключается в том, что он преобразует динамически построенный блог WordPress в статические HTML-файлы, которые используют сравнительно немного оперативной памяти.

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

Заранее сгенерированные HTML-страницы предназначаются для:

  • пользователей, не прошедших процедуру авторизации на сайте;
  • пользователей, не оставляющих комментарии;
  • пользователей, не просматривающих посты, защищенные паролем.

WP Total Cache

Еще один плагин, который ускорит работу вашего сайта на WordPress методом очистки кэша блога. Он имеет в своем арсенале следующие функции:

  • совместим с различными типами хостинга: виртуальным хостингом, VPS и выделенным сервером;
  • совместим с мобильными платформами;
  • кэширует ленты новостей, результаты поиска, объекты баз данных на диске и в памяти;
  • сжимает и оптимизирует ленты новостей, записи, страницы, Java-скрипты и т.д.

Заявлено, что возможно увеличение скорости загрузки блога в 10 раз. Плагин предоставляет множество средств оптимизации, таких как минимизация кода и интеграция с CDN (Content Delivery Network, Сеть доставки контента).

Hyper Cache Extended

Этот плагин является обновленной версией Hyper Cache , предоставляющей качественно выполненный функционал:

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

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

WP fastest cache

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

Ниже приведены некоторые из особенностей этого плагина:

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

Quick Cache

Этот плагин довольно компактен и имеет дружественный интерфейс. Каждая опция снабжена детальным описанием.

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

WP fast Cache

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

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

Ниже перечислены самые основные функции плагина:

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

Hyper Cache

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

Отметим некоторые функциональные возможности этого плагина:

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

FlexiCache

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

WP File Cache

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

Он не будет эффективно работать со статическими страницами.

Данная публикация представляет собой перевод статьи « Top 10 Essential WordPress Cache plugins to Expedite your Website » , подготовленной дружной командой проекта Интернет-технологии.ру

Объектный кэш в WordPress

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

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

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

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

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

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

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

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

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

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

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

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

Так например, этот код вызванный в файле темы не сделает ни одно запроса к БД:

Кэширование метаданных

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

Кэширование объектов между запросами

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

В WordPress есть возможность включить внешнее хранилище для кэша объектов и сделать кэширование постоянным. Так данные из кэша будут доступны между запросами.

Для включения постоянного объектного кэша (persistent object cache) нужно установить плагин. Таких плагинов много, потому что вариантов где и как хранить такой кэш также много, вот некоторые из них:

Для того, чтобы определить используется ли внешний плагин объектного кэширования, в WordPress есть специальная функция wp_using_ext_object_cache(). Она пригодится, когда надо выполнять разные действия при наличии или отсутствии плагина кэширования.

Например, сохраним значение в кэш объектов, только если кэш является постоянным, в противном случае сохраним значение в опцию:

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

Параметр $group у функций кэширования позволяет использовать одинаковые ключи кэша.

Группа — это префикс к ключу. Такой префикс используется:

  • при работе с WordPress мультисайт («глобальные» и «не глобальные» группы).
  • при использовании плагинов объектного кэширования («постоянные» и «непостоянные» группы).

В ядре WordPress существуют следующие названия групп:

Название группы Описание
(taxonomy)_relationships массив term_id
count хранит счетчики
category
posts хранит записи (посты)
comment группа кэша для комментариев.
default группа кэша по умолчанию.
options группа кэша для хранения опций.
themes группы кэша для хранения тем.
plugins группы кэша для хранения плагинов.
users группа кэша для хранения информации о юзерах.
userlogins
useremail
userslugs
transient хранит временные опции — set_transient()
networks
blog-details
site-options
sites найденные сайты
site-transient хранит временные опции — set_site_transient()
customize_changeset_post
oembed_cache_post
timeinfo
calendar

меню

Глобальные группы (для мультисайта)

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

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

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

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

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

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

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

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

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

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

С помощью функции wp_suspend_cache_addition() можно временно отключить работу объектного кэша.

Дебаг объектного кэша

Чтобы посмотреть как используется кэш можно установить плагин «Debug Bar». В нём можно посмотреть статистику обращений в кэш объектов и потребляемую память (сколько весит элемент кэша).

Если установлен плагин кэширования объектов, Debug Bar покажет данные по внешнему серверу.

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

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

  • Браузерный, то есть файлы сайт загружаются на компьютер и при повторном заходе грузятся с жёсткого диска
  • Внутренний у wordpress, он формируется посредством работы плагинов, если нет, то страница собирается из нескольких файлов, например, footer.php, header.php и им подобные. На составление из всех частей уходит время. Они самостоятельно делают HTML код уже готового ресурса и его составляющих, что в разы увеличивает скорость

Разберём все приёмы и решим проблемы полностью.

Обнуление контента горячими клавишами

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

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

  1. Нажимаем на три точки в правом углу
  2. Выбираем пункт “история”
  3. Нажимаем удалить

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

Сбросить внутренний кэш wordpres

Файлы созданные плагинами wordpress кэширования применяются для серверного ускорения. Простое обновление не поможет отобразить изменённое содержимое. Давайте разберём на примере hyper cache.

Удаление через административную панель wordpress

После установки и полной активизации переходим в настойки.

  • Clean the whole cache стереть кэш полность, то есть для записей и рубрик
  • Clean home and archives сбросить только главную и архивы (полезно когда изменяете только home page)

Частые стирания кеша в wordpress провоцируют большую нагрузку на базу данных, поэтому если планируется большая работа с изменением функционала блога (дизайн, начинка), то лучше на время отключить кэширование и пользоваться CNTRL+F5.

Удаление через FTP, стираем css и html шаблоны

Сбросить движок и кеш можно через FTP соединение. Обычно плагины создают свою папку на сервере, в них располагаются созданные копии. Чтобы их удалить заходим в папку cache и удаляем всё содержимое. У отсальных по другому, но принцип один, ищите в wp-content.

Остальные инструменты

В любом из инструментов внутреннего копирования предусмотрена кнопка очистки, разберём где она находится в панели:

  • WP Super Cache в панели есть заметная белая кнопка на русском языке
  • W3 Total Cache нажатие на верхней части страницы кнопки empty all
  • WP Fastest, выбираем таб Delete Cache и такая же кнопка ниже

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

Как очистить кэш сайта на WordPress

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

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

Что такое кеш?

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

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

Три типа кэша для сайтов:

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

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

Очистка кеша в браузере

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

  • Google Chrome: зайдите в Настройки (три вертикальные точки) -> Дополнительные инструменты -> Очистить данные просмотра (или нажмите сочетание клавиш Ctrl+Shift+Delete ).
  • Firefox: зайдите в Меню (гамбургер) -> Параметры -> Дополнительно -> Сеть -> Кэшированный веб-контент -> Очистить сейчас.
  • Safari: зайдите в Параметры -> Сбросить Safari -> Удалить все данные веб-сайта.
  • Edge: зайдите в Параметры (три горизонтальные точки) -> Настройки -> Очистить данные просмотра.

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

Очистка данных плагинов кэша

Если проблема обновления присутствует на других браузерах или компьютерах, вам следует очистить данные плагинов для кеша. Плагины кэша отдают кэшированные данные браузерам, поэтому браузерам не нужно каждый раз загружать файлы с сервера. Для WordPress наиболее популярными плагинами кеша являются W3 Total Cache, WP Super Cache и Autoptimize.

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

Очистка кеша на сервере

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

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

Контроль над кэшированием на стороне сервера зависит от вашего хостинг-провайдера. Одни позволяют управлять таким кешем, а другие нет. Кеш на стороне сервера не управляется через WordPress. Иногда этими настройками можно управлять с помощью файла .htaccess. Некоторые серверы предоставляют простое обходное решение для целей тестирования, для этого нужно добавить /?nocache=1 в конец URL нужной страницы сайта. На каждом хостинге свои правила, поэтому ознакомьтесь с их документацией.

Обратный прокси (Reverse Proxy)

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

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

Сеть доставки контента (CDN)

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

Краткий итог

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

WordPress.org

Русский

WP Super Cache

Описание

This plugin generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.

The static html files will be served to the vast majority of your users:

  • Users who are not logged in.
  • Users who have not left a comment on your blog.
  • Or users who have not viewed a password protected post.

99% of your visitors will be served static html files. One cached file can be served thousands of times. Other visitors will be served custom cached files tailored to their visit. If they are logged in, or have left comments those details will be displayed and cached for them.

The plugin serves cached files in 3 ways (ranked by speed):

  1. Expert. The fastest method is by using Apache mod_rewrite (or whatever similar module your web server supports) to serve «supercached» static html files. This completely bypasses PHP and is extremely quick. If your server is hit by a deluge of traffic it is more likely to cope as the requests are «lighter». This does require the Apache mod_rewrite module (which is probably installed if you have custom permalinks) and a modification of your .htaccess file which is risky and may take down your site if modified incorrectly.
  2. Simple. Supercached static files can be served by PHP and this is the recommended way of using the plugin. The plugin will serve a «supercached» file if it exists and it’s almost as fast as the mod_rewrite method. It’s easier to configure as the .htaccess file doesn’t need to be changed. You still need a custom permalink. You can keep portions of your page dynamic in this caching mode.
  3. WP-Cache caching. This is mainly used to cache pages for known users, URLs with parameters and feeds. Known users are logged in users, visitors who leave comments or those who should be shown custom per-user data. It’s the most flexible caching method and slightly slower. WP-Cache caching will also cache visits by unknown users if supercaching is disabled. You can have dynamic parts to your page in this mode too. This mode is always enabled but you can disable caching for known users, URLs with parameters, or feeds separately. Set the constant «DISABLE_SUPERCACHE» to 1 in your wp-config.php if you want to only use WP-Cache caching.

If you’re not comfortable with editing PHP files then use simple mode. It’s easy to set up and very fast.

Recommended Settings

  1. Простое кеширование.
  2. Compress pages.
  3. Don’t cache pages for known users.
  4. Cache rebuild.
  5. CDN support.
  6. Extra homepage checks.

Garbage collection is the act of cleaning up cache files that are out of date and stale. There’s no correct value for the expiry time but a good starting point is 1800 seconds.

Consider deleting the contents of the «Rejected User Agents» text box and allow search engines to cache files for you.

Preload as many posts as you can and enable «Preload Mode». Garbage collection of old cached files will be disabled. If you don’t care about sidebar widgets updating often set the preload interval to 2880 minutes (2 days) so all your posts aren’t recached very often. When the preload occurs the cache files for the post being refreshed is deleted and then regenerated. Afterwards a garbage collection of all old files is performed to clean out stale cache files.
Even with preload mode enabled cached files will still be deleted when posts are modified or comments made.

Разработка

  • Активная разработка этого плагина происходит на GitHub.
  • Перевод плагина на разные языки осуществляется на страницe перевода.

Документация

If you need more information than the following, you can have a look at the Developer documentation.

Предзагрузка

You can generate cached files for the posts, categories and tags of your site by preloading. Preloading will visit each page of your site generating a cached page as it goes along, just like any other visitor to the site. Due to the sequential nature of this function, it can take some time to preload a complete site if there are many posts.
To make preloading more effective it can be useful to disable garbage collection so that older cache files are not deleted. This is done by enabling «Preload Mode» in the settings. Be aware however, that pages will go out of date eventually but that updates by submitting comments or editing posts will clear portions of the cache.

Garbage Collection

Your cache directory fills up over time, which takes up space on your server. If space is limited or billed by capacity, or if you worry that the cached pages of your site will go stale then garbage collection has to be done. Garbage collection happens on a regular basis and deletes old files in the cache directory. On the advanced settings page you can specify:
1. Cache timeout. How long cache files are considered fresh for. After this time they are stale and can be deleted.
2. Scheduler. Setup how often garbage collection should be done.
3. Notification emails. You can be informed on garbage collection job progress.
There’s no right or wrong settings for garbage collection. It depends on your own site.
If your site gets regular updates, or comments then set the timeout to 1800 seconds, and set the timer to 600 seconds.
If your site is mostly static you can disable garbage collection by entering 0 as the timeout, or use a really large timeout value.

The cache directory, usually wp-content/cache/ is only for temporary files. Do not ever put important files or symlinks to important files or directories in that directory. They will be deleted if the plugin has write access to them.

A Content Delivery Network (CDN) is usually a network of computers situated around the world that will serve the content of your website faster by using servers close to you. Static files like images, Javascript and CSS files can be served through these networks to speed up how fast your site loads. You can also create a «poor man’s CDN» by using a sub domain of your domain to serve static files too.

OSSDL CDN off-linker has been integrated into WP Super Cache to provide basic CDN support. It works by rewriting the URLs of files (excluding .php files) in wp-content and wp-includes on your server so they point at a different hostname. Many CDNs support origin pull. This means the CDN will download the file automatically from your server when it’s first requested, and will continue to serve it for a configurable length of time before downloading it again from your server.

Configure this on the «CDN» tab of the plugin settings page. This is an advanced technique and requires a basic understanding of how your webserver or CDNs work. Please be sure to clear the file cache after you configure the CDN.

REST API

There are now REST API endpoints for accessing the settings of this plugin. You’ll need to be authenticated as an admin user with permission to view the settings page to use it. This has not been documented yet but you can find all the code that deals with this in the «rest» directory.

Custom Caching


It is now possible to hook into the caching process using the add_cacheaction() function.

Three hooks are available:

  1. ‘wp_cache_get_cookies_values’ — modify the key used by WP Cache.
  2. ‘add_cacheaction’ — runs in phase2. Allows a plugin to add WordPress hooks.
  3. ‘cache_admin_page’ — runs in the admin page. Use it to modify that page, perhaps by adding new configuration options.

There is one regular WordPress filter too. Use the «do_createsupercache» filter
to customize the checks made before caching. The filter accepts one parameter.
The output of WP-Cache’s wp_cache_get_cookies_values() function.

WP Super Cache has it’s own plugin system. This code is loaded when WP Super Cache loads and can be used to change how caching is done. This is before most of WordPress loads so some functionality will not be available. Plugins can be located anywhere that PHP can load them. Add your own plugin by calling wpsc_add_plugin( $name ) where $name is the full filename and path to the plugin. You only need to call that function once to add it. Use wpsc_delete_plugin( $name ) to remove it from the list of loaded plugins.

The cookies WP Super Cache uses to identify «known users» can be modified now by adding the names of those cookies to a list in the plugin configuration. Use wpsc_add_cookie( $name ) to add a new cookie, and wpsc_delete_cookie( $name ) to remove it. The cookie names also modify the mod_rewrite rules used by the plugin but I recommend using Simple mode caching to avoid complications with updating the .htaccess file.
The cookie name and value are used to differenciate users so you can have one cookie, but different values for each type of user on your site for example. They’ll be served different cache files.

Решение проблем

If things don’t work when you installed the plugin here are a few things to check:

  1. Is wp-content writable by the web server?
  2. Is there a wp-content/wp-cache-config.php ? If not, copy the file wp-super-cache/wp-cache-config-sample.php to wp-content/wp-cache-config.php and make sure WPCACHEHOME points at the right place.
  3. Is there a wp-content/advanced-cache.php ? If not, then you must copy wp-super-cache/advanced-cache.php into wp-content/. You must edit the file and change the path so it points at the wp-super-cache folder.
  4. If pages are not cached at all, remove wp-content/advanced-cache.php and recreate it, following the advice above.

Make sure the following line is in wp-config.php and it is ABOVE the «require_once(ABSPATH.’wp-settings.php’);» line:

Garbage collection of old cache files won’t work if WordPress can’t find wp-cron.php. If your hostname resolves to 127.0.0.1 it could be preventing the garbage collection from working. Check your access_logs for wp-cron.php entries. Do they return a 404 (file not found) or 200 code? If it’s 404 or you don’t see wp-cron.php anywhere WordPress may be looking for that script in the wrong place. You should speak to your server administator to correct this or edit /etc/hosts on Unix servers and remove the following line. Your hostname must resolve to the external IP address other servers on the network/Internet use. See http://yoast.com/wp-cron-issues/ for more. A line like «127.0.0.1 localhost localhost.localdomain» is ok.

If supercache cache files are generated but not served, check the permissions on all your wp-content/cache/supercache folders (and each of wp-content cache and supercache folders) and wp-content/cache/.htaccess. If your PHP runs as a different user to Apache and permissions are strict Apache may not be able to read the PHP generated cache files. To fix you must add the following line to your wp-config.php (Add it above the WP_CACHE define.) Then clear your cache.

If you see garbage in your browser after enabling compression in the plugin, compression may already be enabled in your web server. In Apache you must disable mod_deflate, or in PHP zlib compression may be enabled. You can disable that in three ways. If you have root access, edit your php.ini and find the zlib.output_compression setting and make sure it’s «Off» or add this line to your .htaccess:

Если это работает, добавьте такую строку в ваш wp-config.php:

If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the ‘Encoding for pages and feeds’ value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, ‘UTF-8’)

  • Use Cron View to help diagnose garbage collection and preload problems. Use the plugin to make sure jobs are scheduled and for what time. Look for the wp_cache_gc and wp_cache_full_preload_hook jobs.
  • The error message, «WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory.» appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you’ll likely need the full path to that file (so it’s easier to let the settings page fix it). If it is not correct the caching engine will not load.
  • If your server is running into trouble because of the number of semaphores used by the plugin it’s because your users are using file locking which is not recommended (but is needed by a small number of users). You can globally disable file locking by defining the constant WPSC_DISABLE_LOCKING, or defining the constant WPSC_REMOVE_SEMAPHORE so that sem_remove() is called after every page is cached but that seems to cause problems for other processes requesting the same semaphore. Best to disable it.
  • Set the variable $htaccess_path in wp-config.php or wp-cache-config.php to the path of your global .htaccess if the plugin is looking for that file in the wrong directory. This might happen if you have WordPress installed in an unusual way.
  • Установка

    Install like any other plugin, directly from your plugins page but make sure you have custom permalinks enabled. Go to the plugin settings page at Settings->WP Super Cache and enable caching.

    How to uninstall WP Super Cache

    Almost all you have to do is deactivate the plugin on the plugins page. The plugin should clean up most of the files it created and modified, but it doesn’t as yet remove the mod_rewrite rules from the .htaccess file. Look for the section in that file marked by SuperCache BEGIN and END tags. The plugin doesn’t remove those because some people add the WordPress rules in that block too.

    To manually uninstall:

    1. Turn off caching on the plugin settings page and clear the cache.
    2. Deactivate the plugin on the plugins page.
    3. Remove the WP_CACHE define from wp-config.php. It looks like define( ‘WP_CACHE’, true );
    4. Remove the Super Cache mod_rewrite rules from your .htaccess file.
    5. Remove the files wp-content/advanced-cache.php and wp-content/wp-cache-config.php
    6. Remove the directory wp-content/cache/
    7. Remove the directory wp-super-cache from your plugins directory.

    If all else fails and your site is broken

    1. Remove the WP_CACHE define from wp-config.php. It looks like define( ‘WP_CACHE’, true );
    2. Remove the rules (see above) that the plugin wrote to the .htaccess file in your root directory.
    3. Delete the wp-super-cache folder in the plugins folder.
    4. Optionally delete advanced-cache.php, wp-cache-config.php and the cache folder in wp-content/.

    Часто задаваемые вопросы

    Go to Settings -> WP Super Cache and look for the «Cache Tester» form on the easy settings page. Click «Test Cache» and the plugin will request the front page of the site twice, comparing a timestamp on each to make sure they match.

    If you want to do it manually, enable debugging in the plugin settings page and load the log file in a new browser tab. Then view your blog while logged in and logged out. You should see activity in the log. View the source of any page on your site. When a page is first created, you’ll see the text «Dynamic page generated in XXXX seconds.» and «Cached page generated by WP-Super-Cache on YYYY-MM-DD HH:MM:SS» at the end of the source code. On reload, a cached page will show the same timestamp so wait a few seconds before checking.
    If Supercaching is disabled and you have compression enabled, the text «Compression = gzip» will be added. If compression is disabled and the page is served as a static html file, the text «super cache» will be added. The only other way to check if your cached file was served by PHP script or from the static cache is by looking at the HTTP headers. PHP cached pages will have the header «WP-Super-Cache: Served supercache file from PHP». WPCache cached files will have the header, «WP-Super-Cache: Served WPCache cache file». You should also check your cache directory in wp-content/cache/supercache/hostname/ for static cache files.
    If the plugin rules are missing from your .htaccess file, the plugin will attempt to serve the super cached page if it’s found. The header «WP-Super-Cache: Served supercache file from PHP» if this happens.
    The pagespeed module for Apache may cause problems when testing. Disable it if you notice any problems running the cache tester.

    Как отключить суперкеширование?

    If you only want to use the WP-Cache engine then edit your wp-config.php or create an mu-plugin that sets the constant ‘DISABLE_SUPERCACHE’ to 1.

    WP-Cache vs Supercache files

    All cache files are stored in wp-content/cache/supercache/HOSTNAME/ where HOSTNANE is your domain name. The files are stored in directories matching your site’s permalink structure. Supercache files are index.html or some variant of that, depending on what type of visitor hit the blog. Other files are named wp-cache-XXXXXXXXXXXXXXXXX.php. Associated meta filesnames start with «meta». Those files contain information about the cached file. These files are generated by the «WPCache caching» engine in the plugin.

    Будут ли комментарии и другие динамические части сайта обновляться немедленно?

    Comments will show as soon as they are moderated, depending on the comment policy of the blog owner. Other dynamic elements on a page may not update unless they are written in Javascript, Flash, Java or another client side browser language. The plugin really produces static html pages. No PHP is executed when those pages are served. «Popularity Contest» is one such plugin that will not work.

    Will the Super Cache compression slow down my server?

    No, it will do the opposite. Super Cache files are compressed and stored that way so the heavy compression is done only once. These files are generally much smaller and are sent to a visitor’s browser much more quickly than uncompressed html. As a result, your server spends less time talking over the network which saves CPU time and bandwidth, and can also serve the next request much more quickly.

    How do I make certain parts of the page stay dynamic?

    Note: this functionality is disabled by default. You will have to enable it on the Advanced Settings page.

    There are 2 ways of doing this. You can use Javascript to draw the part of the page you want to keep dynamic. That’s what Google Adsense and many widgets from external sites do and is the recommended way. Or you can use a WP Super Cache filter to do the job but you can’t use mod_rewrite mode caching. You have to use the «simple» delivery method or disable supercaching.

    WP Super Cache 1.4 introduced a cacheaction filter called wpsc_cachedata. The cached page to be displayed goes through this filter and allows modification of the page. If the page contains a placeholder tag the filter can be used to replace that tag with your dynamically generated html.
    The function that hooks on to the wpsc_cachedata filter should be put in a file in the WP Super Cache plugins folder unless you use the late_init feature. An example plugin is included. Edit dynamic-cache-test.php to see the example code.
    There are two example functions there. There’s a simple function that replaces a string (or tag) you define when the cached page is served. The other example function uses an output buffer to generate the dynamic content. Due to a limitation in how PHP works the output buffer code MUST run before the wpsc_cachedata filter is hit, at least for when a page is cached. It doesn’t matter when serving cached pages. See this post for a more technical and longer explanation.
    To execute WordPress functions you must enable the ‘Late init’ feature on the advanced settings page.

    Как отложить кеширование до того, как сработает хук init?

    Cached files are served before almost all of WordPress is loaded. While that’s great for performance it’s a pain when you want to extend the plugin using a core part of WordPress. Enable ‘Late init’ mode on the Advanced settings page and cached files will be served when «init» fires. WordPress and it’s plugins will be loaded now.

    Why don’t WP UserOnline, Popularity Contest, WP Postratings or plugin X not work or update on my blog now?

    This plugin caches entire pages but some plugins think they can run PHP code every time a page loads. To fix this, the plugin needs to use Javascript/AJAX methods or the wpsc_cachedata filter described in the previous answer to update or display dynamic information.

    Why do my WP Super Cache plugins disappear when I upgrade the plugin?

    WordPress deletes the plugin folder when it updates a plugin. This is the same with WP Super Cache so any modified files in wp-super-cache/plugins/ will be deleted. You can put your custom plugins in a different directory in a number of ways. You can define the variable $wp_cache_plugins_dir in wp-config.php or wp-content/wp-cache-config.php and point it at a directory outside of the wp-super-cache folder. The plugin will look there for it’s plugins. Or if you distribute a plugin that needs to load early you can use the function wpsc_add_plugin( $filename ) to add a new plugin wherever it may be. Use wpsc_delete_plugin( $filename ) to remove the plugin file. See #574 or this post on writing WP Super Cache plugins.

    What does the Cache Rebuild feature do?

    When a visitor leaves a comment the cached file for that page is deleted and the next visitor recreates the cached page. A page takes time to load so what happens if it receives 100 visitors during this time? There won’t be a cached page so WordPress will serve a fresh page for each user and the plugin will try to create a cached page for each of those 100 visitors causing a huge load on your server. This feature stops this happening. The cached page is not cleared when a comment is left. It is marked for rebuilding instead. The next visitor within the next 10 seconds will regenerate the cached page while the old page is served to the other 99 visitors. The page is eventually loaded by the first visitor and the cached page updated. See this post for more.

    Why doesn’t the plugin cache requests by search engine bots by default?

    Those bots usually only visit each page once and if the page is not popular there’s no point creating a cache file that will sit idle on your server. However you can allow these visits to be cached by removing the list of bots from «Rejected User Agents» on the Advanced settings page.

    A category page is showing instead of my homepage

    A tiny proportion of websites will have problems with the following configuration:

    1. Uses a static page for the front page.
    2. Uses /%category%/%postname%/ permalink structure.

    Sometimes a category page is cached as the homepage of the site instead of the static page. I can’t replicate the problem but a simple solution is to use the «Simple» mode. You can also enable «Extra homepage checks» on the Advanced Settings page.

    Why do I get warnings about caching from http://ismyblogworking.com/

    «Your blog doesn’t support client caching (no 304 response to If-modified-since).»
    «Your feed doesn’t support caching (no 304 response to If-modified-since)»

    Supercache doesn’t support 304 header checks in Expert mode but does support it in Simple mode. This is caching done by your browser, not the server. It is a check your browser does to ask the server if an updated version of the current page is available. If not, it doesn’t download the old version again. The page is still cached by your server, just not by your visitors’ browsers.
    Try the Cacheability Engine at http://www.ircache.net/cgi-bin/cacheability.py or https://redbot.org/ for further analysis.

    How should I best use the utm_source tracking tools in Google Analytics with this plugin?

    That tracking adds a query string to each url linked from various sources like Twitter and feedreaders. Unfortunately it stops pages being supercached. See Joost’s comment here for how to turn it into an anchor tag which can be supercached.

    The plugin complains that wp-content is writable! htdocs is writable!

    It’s not good when the web server can write to these directories but sometimes shared hosting accounts are set up in this way to make administration easier. Use chmod 755 directory to fix the permissions or find the permissions section of your ftp client. This Google search will lead you to more information on this topic and there’s also this codex page too. Unfortunately some hosts require that those directories be writable. If that’s the case just ignore this warning.

    How do I delete the WP_CACHE define from wp-config.php?

    Load your desktop ftp client and connect to your site. Navigate to the root (or the directory below it) of your site where you’ll find wp-config.php. Download that file and edit it in a text editor. Delete the line define( ‘WP_CACHE’, true ); and save the file. Now upload it, overwriting the wp-config.php on your server.

    How do I delete the Super Cache rules from the .htaccess file?

    Load your desktop ftp client and connect to your site. You may need to enable «Show hidden files» in the preferences of the ftp client. Navigate to the root of your site where you’ll find the .htaccess file. Download that file and edit it in a text editor. Delete the lines between «# BEGIN WPSuperCache» and «# END WPSuperCache» and save the file. Now upload it, overwriting the .htaccess file on your server.

    How do I change file permissions?

    This page on the WordPress Codex explains everything you need to know about file permissions on your server and various ways of changing them.

    Why do I get load spikes when new posts are made?

    You may have the «clear all cached files when new posts are made» option set. Clearing those files can take time plus your visitors will now be visiting uncached pages. Are you using Google Analytics campaign tracking with utm_source in the url? Those pages aren’t cached. See the question, «How should I best use the utm_source tracking tools in Google Analytics with this plugin» above for how to use them properly.
    Cached pages have to be refreshed when posts are made. Perhaps your server just isn’t up to the job of serving the amount of traffic you get. Enable the «cache rebuild» feature as that may help.

    How many pages can I cache?

    The only real limit are limits defined by your server. For example, EXT2 and EXT3 allow a maximum of 31,999 sub directories so if you have a flat permalink structure (like /%POSTNAME%/) and more than 32,000 posts you may run into problems. Likewise, if you run a multisite network and have more than 31,999 sites (blogs) you won’t be able to cache all of them. Realistically if you had that many active sites you wouldn’t be running on one server.

    I can see that the www version of my site is cached separately. How do I stop that?

    WordPress should redirect to the canonical URL of your site but if it doesn’t, add this to your .htaccess above the Supercache and WordPress rules. Change example.com to your own hostname.
    RewriteCond % www.example.com$ [NC]
    RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

    How do I serve cached mobile pages to clients on small screens like phones and tablets?

    Your theme is probably responsive which means it resizes the page to suit whatever device is displaying the page. If it’s not responsive, you’ll have to use a separate mobile plugin to render a page formatted for those visitors. The following plugins have been tested but YMMV depending on mobile client. You’ll have to enable mobile browser support as well on the Advanced settings page.

    Как почистить кеш в WordPress?

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

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

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

    Основные типы кеширования

    Как уже писалось выше, существует несколько типов кеширования сайтов.

    1. Специальные плагины. Это плагины, которые вы устанавливаете сами на свой движок, чтобы ускорить загрузку и работу вашего сайта. Наиболее популярными являются WP Super Cache и W3 Total Cache.
    2. Браузер. Некоторые браузеры также делают свое кеширование страниц, которые его пользователь посещает. Так, их разработчики, делают работу своего браузера, казалось бы, более быстрой.
    3. Сервер. Некоторые хостинг провайдеры также делают собственные кеширования вашего сайта, чтобы также ускорить работу при использовании их серверов.

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

    Процесс очистки кешированных данных

    Шаг 1. Очищаем кеш браузера

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

    Мы покажем процесс очистки кеша браузера, на примере Google Chrome.

    Сначала вам нужно щелкнуть по значку меню, а затем выбрать «Другие инструменты» —> «Удаления данных о просмотренных страницах».

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

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

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

    Шаг 2. Очищаем кеш в плагине для кеширования WordPress

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

    Как очистить кеш в WP Super Cache?

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

    Для этого нужно посетить страницу «Настройки» —> «WP Super Cache» и нажать кнопку «Удалить весь кэш».

    Вот и все, WP Super Cache теперь удалит все кешированные файлы с вашего сайта.

    Как очистить кеш в W3 Total Cache?

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

    Перейдите на страницу «Performance» —> «Dashboard» и нажмите кнопку «empty all caches».

    И W3 Total Cache удалит весь кешированный контент для вашего сайта.

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

    Кэширование WordPress — Решения и Ваш Выбор (Руководство)

    Здравствуйте, уважаемые друзья и гости блога Pribylwm.ru! Сейчас Вы сможете узнать о том для чего нужно кэширование WordPress и как это важно для повышения скорости загрузки вашего сайта. Соответственно это также важно для SEO оптимизации ресурса и его продвижения в поисковых системах. Ну, а подробности Вы сможете узнать дальше. Поехали …

    Руководство по выбору решения кэширования WordPress

    Узнайте о лучших решениях для кеширования, доступных для вашего сайта WordPress.

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

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

    Роль кеширования

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

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

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

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

    Кеширование WordPress сайта — Преимущества

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

    Отличный пользовательский опыт

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

    Улучшенный SEO

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

    Увеличенная скорость

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

    Что нужно учитывать при выборе кэширующего плагина / решения

    Прежде чем выбрать плагин для кеширования WordPress для своего веб-сайта, необходимо рассмотреть некоторые вещи.

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

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

    Обновления

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

    Ключевая особенность

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

    Служба поддержки

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

    Выход

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

    Лучшие плагины для кэширования для вашего сайта WordPress

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

    WP Rocket

    WP Rocket — это плагин для кеширования премиум-класса с его удобными функциями для владельцев веб-сайтов. Это плагин plug-n-play, который не нуждается в настройке, но он будет работать сразу после активации. Люди, ожидающие расширенного кэширующего решения, могут перейти к своим опциям для пользовательских настроек. Некоторые функции WP Rocket включают в себя:

    Прост в использовании и быстр

    • Немедленное кэширование
    • Он уменьшает HTTP-запросы из Google Fonts Optimization
    • Легкий доступ к CloudFlare
    • Страница загружается эффективно, а файлы JavaScript заблокированы

    Кэш LiteSpeed

    LiteSpeed Cache — один из лучших плагинов кеширования для владельцев веб-сайтов. Которые одновременно нацелены на определенную аудиторию. Этот инструмент был специально разработан пользователями Apache. Данный плагин хранит ресурсы на веб-сайте и обеспечивает быструю загрузку, безопасность и производительность для сайта.

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

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

    WP Fastest Cache плагин считается лучшим и простейшим инструментом, созданным когда-либо.

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

    Некоторые ключевые особенности WP Fastest Cache заключаются в следующем:

    • Может интегрировать SSL и CDN
    • Настраиваемые параметры кеша для удаленных пользователей
    • Включить / отключить кеш для определенных страниц или сообщений
    • Mod_Rewrite обеспечивает быстрое время обработки

    Comet Cache — Кэширование WordPress легко и просто!

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

    Некоторые особенности Comet Cache заключаются в следующем:

    • Автоматическое истечение срока действия
    • Индивидуальное решение для кеширования
    • Параметры исключения ссылок HTTP

    Заключение

    Это были одни из лучших решений / плагинов для кеширования WordPress. Они наиболее доступны для вашего сайта на движке WordPress.

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

    Всем удачи и благополучия! До новых встреч!

    Какой плагин кеширования в Вордпрессе лучше других?

    Ох, опять эта тема 🙂

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

    Далее, давайте мухи отдельно и котлеты отдельно. Есть object cache — у него свои задачи. Есть fragment cache — у него свои. Есть full page cache — это отдельная кухня. Есть кеширование на уровне сервера (nginx fastcgi_cache), все тот же full page cache но «навыворот». А еще Nginx умеет разговаривать с Memcached напрямую. И даже если сравнивать решения, которые делают одно и то же (например, тот же full page cache), разница в «эффекте» на разных серверах и даже на разных сайтах на одном сервере будет. Часто — существенная. Плюс, есть кеширование на многих уровнях на самом сервере — файловая система, кеши БД и тд. И все эти настройки будут влиять на поведение плагинов кеширования. Часто — существенно. Кеширование на стороне клиента — отдельная кухня, начиная с server push, prefetch и тд, выдача поддерживаемых форматов (brotli/gzip, woff/woff2/ttf, webp/jpg/png и тому подобное).

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

    А еще надо понимать, что ваш медленный DNS может убить всю экономию на PHP runtime. Или криво установленный SSL-сертификат. Или кеширование SSL-сессий, некорректно настроенное под специфику трафика конкретного проекта. Или канал на выходе перегруженный. Или далеко не оптимальный конфиг пула PHP. Или вообще Apache. Или I/O wait зашкаливает.

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

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

    Очень важная составляющая в этой связке это MariaDB, так как по сравнению с mySQL innoDB в разы быстрее работает.

    lamer350, Начнем с того, что в MySQL 8 меняется формат хранения метаданных (internal data dictionary), в MariaDB — нет. С этого, вполне возможно, может начаться то, что они более не будут полностью совместимы. Раньше или позже это произойдет, это просто надо держать в голове. Далее, кроме Oracle еще есть Percona, которая очень и очень хороша.

    Далее, дефолтные конфиги, равно как и дефолтная производительность на разных ОС у них разные. Плюс надо учитывать версии и брать полное соответствие. Включая весь фарш, который идет с конкретной сборкой. Какие версии вы тестировали? Дело в том, что MariaDB 10 до версии 10.2 включительно построена на базе MySQL 5.6/5.7. Версии 10.3 и 10.4 являются эволюцией 10.2 (а значит тоже построены на MySQL 5.7), но уже содержат тележку уникальных фич, которых нет в MySQL. Но ни одна из этих фич не используется в WordPress, поэтому можем об этом забыть.

    Теперь что касается «в 2 раза быстрее» в целом. Мария в целом действительно немного шустрее, там достаточно много оптимизаций по сравнению с MySQL. Но это прирост в небольших процентах, точечно. Дает ли это ощутимый результат? Да, на больших данных. Да, на высонагруженных проектах. Есть ли заметный прирост в стоке на локальной машине на голой базе? Нет, и быть его не может. Если он у вас есть — значит вопрос в дефолтной конфигурации, не более.

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

    А обосновать вброс можете? Я вот искренне интересуюсь, что идиотского в этой связке?

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

    nginx + php 7.3 + OPcache + MariaDB? — почему не апач+муСКЛ?

    Потому что MariaDB это drop-in замена MySQL от Oracle, которая полностью бесплатная и разрабатывается веселее чем MySQL под руководством Oracle, разрабатывается с учетом ожиданий и потребностей более широкой аудитории веб-разработчиков, чем все тот же Oracle MySQL, целевой аудиторией которого является (очень крупный) Enterprise.

    Почему не апач? Потому что если у вас не shared хостинг, где нужно дать возможность в каждой папке иметь свой автономный конфиг, то не существует ни одной другой причины использовать Apache для более-менее стандартного use case. Nginx, в первую очередь, быстрее и использует меньше памяти. Если углубляться, то есть еще тележка фич.

    Почему за такие ответы не банят.?

    EvgenyMorozov, Если кратко:
    — спутаны между собой разные уровни кеширования, мухи и котлеты в одну кашу, про некоторые вообще ни слова
    — используются не совсем корректные параметры замера (нечетко определенные Page load time вместо стандартных индексов TTI, TTFB и тп)
    — Ударение на конкатенацию скриптов и стилей, ни слова об HTTP/2 (а тут уже HTTP/3 на подходе), мультиплексировании, server-push и тд
    — Apache
    — Результаты вообще не наглядны, какие-то проценты и условные циферки, сложно натянуть на real world scenario
    — Многие плагины из списка не являются заменителями и сравнивать их в принципе некорректно вообще

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

    lukoie, статья смешивает совершенно разные понятия и дает на выходе циферки, по которым ничего не понятно. «Простому пользователю с бложиком» она не очень-то понятна. Продвинутому разрабу — тем более.

    Совсем кратко, без каких-либо статей с кучей непонятных тестов — самое быстрое кеширование для статического сайта — full page cache. В идеале — чтобы PHP даже не поднимался на запрос (то есть статика HTML), и в этом плане самый быстрый nginx fastcgi_cache. Есть user-friendly решения. Если этот метод не катит — используем Batcache, который реализует full page cache в памяти (memcached / redis). Если и это не вариант — тогда WP Super Cache или WP Rocket, а еще лучше — CloudFlare между пользователем и сайтом или адекватный специализированный хостинг типа Kinsta, где все это уже есть из коробки. Минимум настроек и головной боли, максимум эффекта. Все остальное можно не трогать и не экспериментировать.

    Breeze, by default, supports Varnish. It has been tested to be fully compatible with Cloudways Servers that come with Varnish pre-installed.

    Исключения, кстати, в конфиг Varnish придется вручную вносить, из админки они не будут применяться.
    Далее, они делают «оптимизацию базы данных» (на самом деле — контроль/очистку ревизий, спам-комментариев, удаление протухших transients). Плагин кеширования не должен этого делать, от слова совсем.
    Еще — они впилили активную поддержку CDN из коробки, но при этом поддерживают только 3 провайдера -MaxCDN, KeyCDN и Amazon Cloudfront. Поддержки Push CDN — нету, только Pull CDN. Настройка CloudFlare требует определенного опыта, которого у нашего предполагаемого блоггера нет.
    Плагин гзипит контент, и как я понял (не рылся уже глубоко в коде) — с помощью PHP. Это минус по производительности на этапе генерации кеша, к тому же при некоторых (думаю многих) конфигурациях nginx у нас будет двойной gzip. Бред. То же самое по минификации — она делается с помощью PHP, что есть не ок.
    Код плагина, кстати, начался как форк WP Speed Of Light.

    2. WP Speed of Light. Лично для меня плагин, который тащит в админку WP какой-то левый интерфейс со своими цветастыми градиентами, шрифтами и прочей мишурой — сразу в корзину и в черный список. Но закроем на это глаза и посмотрим на него по существу.
    Те же проблемы с минификацией и gzip. Это не должно делаться с помощью PHP, тем более в runtime.
    Опять «оптимизация» базы данных. Не более чем маркетинг. И это не должен делать плагин кеширования. Плюс, «оптимизация» transients часто может иметь нежелательные побочные эффекты, когда закешированы будут неактуальные данные или вообще данных не будет.
    Вредный совет Remove Query strings — да, Google PageSpeed обрадуется, пользователи — наоборот. Привет, жалобам от посетителей клиенту, а дальше клиента разработчику (или если клиент сам ставил — в поддержку плагина). Классика жанра — «у меня все ок», а у тысяч людей по всем миру — старый код. Добавьте сверху еще CDN и привет полный.
    Option to disable the WordPress REST API — серьезно? Ничего, что WP постепенно мигрирует с Ajax на REST, и отключать его не нужно? Да и «оптимизации» в этом ровно ноль. При чем здесь это вообще в плагине кеширования? И да, он вообще-то врет и совсем не дизейблит REST API — все что он делает это убирает ссылку на API из головы документа. Сама апишка как была, так и остается.
    Option to disable the WordPress RSS feeds — при чем RSS фиды к кешированию?
    Cache external resources such as scripts served from Google (served locally) — о, привет жалобам из отдела маркетинга, сломанным трекерам и ретаргетингу, нестыковкам в статистике и отчетах. Добавляем поверх этого Remove query strings и CDN — и полный привет.
    Плагин весит 4.5Мб. Четыре с половиной мегабайта! Код — так себе. К примеру, используют свой собственный механизм переводов поверх нативного. В папочке js — jQuery UI который и так включен в WP.
    В общем, это каша из категории «премиум-тем-1000-в-1». В топку.

    3. LiteSpeed Cache — замечание по поводу кастомного дизайна внутри админки WP все то же. Сразу в бан. Но копнем все-таки плагин, для интереса. По перечню фич и подходу к реализации из этих 3х плагинов он, пожалуй, наиболее адекватен. Но:
    Во-первых, полноценно может использоваться только с сервером LiteSpeed. Большой минус сразу. Наш среднестатистический блогер 100% впервые слышит что-либо кроме Apache, максимум Nginx.
    Пытается оптимизировать картинки. Это не его задача.
    Минификация и конкатенация скриптов и стилей. Опять же, во-первых не задача плагина кеширования. Во-вторых, не надо делать это на уровне PHP runtime.
    Тулит свой Lazyload в нескольких вариациях. Если у нашего условного блоггера «премиум»-тема (а это скорее всего так), то там будет свой LL js, значит конфликты практически неизбежны.
    Опять же, обещает чистить базу. Не его задача и пускать его туда нельзя.
    Обещает еще «OPcode Cache». Это как?
    Обещает HTTP/2 Push for CSS/JS, но делает его криво — пушит всегда, а не первый раз. К тому же, HTTP/2 фичи доступны только на коммерческом LiteSpeed, так что нашему блогеру это не светит все равно.
    Есть глюки с корзинами WooCommerce (фиксится, но те кто не вчитывается во все доки просто пропустят этот нюанс и через некоторое время будут в панике искать фрилансера на апворке чтобы ему пофиксили неработающую корзину).
    Исключения из кеша, работа с nonce, и много других фич требуют ковыряться в коде, пусть даже и минимально. Делать это после заполнения дюжины длиннющих форм в админке — ад.
    Достаточно много конфликтов с другими плагинами.

    Вердикт — все 3 плагина являются аналогом «премиум»-тем 1000-в-1 — пытаются делать ВСЕ, в результате не делают хорошо ничего. Миллион настроек, кастомный «интерфейс» с говнодизайном, который кричит и выскакивает из интерфейса WP, требует использования сторонних ресурсов (LiteSpeed, ограничение по 3м CDN-провайдерам, Varnish итд), сомнительные фичи которые создают видимость оптимизации но абсолютно бесполезны (отключение RSS и REST API, якобы оптимизация базы данных итд), минификация-конкатенация на стороне PHP в runtime. Итого, что они делают? Много обещают. Дают какую-то оптимизацию если Cache HIT. Заметно замедляют, если Cache Miss. Вопрос — зачем их использовать, если есть проверенные, быстрые, эффективные плагины без всего этого мусора?

    WP Magazine

    Про WordPress на русском языке

    Основы кэширования в WordPress

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

    Что такое кэш?

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

    • Запрос нашего последнего сообщения из сети Twitter
    • Запрос и вывод погоды со стороннего сервиса
    • Запрос последних записей из базы данных
    • Запрос названия сайта из базы данных

    Каждый из данных запросов можно ускорить с помощью кэширования. Например, если мы выводим наше последнее сообщение из сети 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

    Новые версии плагина WP Super Cache имеют некотоыре дополнительные функции, например настройку CDN, поддержку мобильной версии сайта и прочее, но основая суть данного плагина — кэширование страниц.

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

    Плагин W3 Total Cache

    Плагин W3 Total Cache более молодой, чем WP Super Cache, но не уступает ему по функционалу. Он очень быстро набирает популярность, и на сегодняшний день насчитывает более 2 миллионов скачиваний из директории WordPress.org.

    Плагин W3 Total Cache

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

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

    Плагин Batcache

    На момент написания данной статьи, плагин Batcache скачали всего около десяти тысяч раз из директории WordPress.org, но в данном случае это не является показателем его эффективности. По производительности он не уступает ни WP Super Cache, ни W3 Total Cache.

    У плагина Batcache функция всего одна — кэширование страниц, но делает он это безупречно. Batcache использует внешнее кэширование объектов для хранения данных, что позволяет легко его исопльзовать в многосерверной архитектуре. Этот плагин используется в крупной сети WordPress.com, с более 40 млн сайтов, более 2000 серверов и более 10 млрд просмотренных страниц каждый месяц.

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

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

    Топ-пост этого месяца:  11 способов убить текстами SEO + 20 лайфхаков текстовой оптимизации и форматирования для попадания
    Добавить комментарий