1. Что такое SuperCache

Зачем нужен плагин

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

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

Что плагин не делает:

  • не гарантирует, что страница всегда свежая: он очищает кеш, когда замечает событие магазина (сохранение товара, отзыв и т. п.); изменения в обход Shop-Script (импорты, прямые правки базы, а в классическом кеше также правки категорий, валют и акций) сам не видит, и тогда кеш нужно очистить вручную (глава 6);
  • не кеширует корзину, оформление заказа, личный кабинет, вход и страницы заказов, и это правило нельзя отключить (почему и как это работает, в главе 7);
  • не ускоряет административную панель;
  • не гарантирует ускорение на вашем магазине, рост продаж или позиций в поисковиках;
  • не следит за содержимым сторонних тем и плагинов: если сторонний плагин кладёт персональные данные прямо в обычную страницу, эту страницу нужно исключить из кеша (см. главу 7).

Два способа подключения

Способ Что это простыми словами Что нужно Скорость
«Через роутинг» (в блоке подсказки — «Через маршрутизацию») Страницу из кеша отдаёт сам Webasyst: PHP запускается, но не собирает страницу заново Ничего. Достаточно включить в настройках Быстрее, чем без кеша; медленнее серверного режима
«Через сервер (самый быстрый вариант)» Страницу из кеша отдаёт веб-сервер (Apache или nginx) напрямую, PHP не запускается 🔧 Вставить правила в файл настроек веб-сервера. Плагин сам правила туда не пишет Самый быстрый

Начинайте с «Через роутинг». К серверному режиму можно перейти позже (глава 4).

Два движка кеша

Это внутреннее устройство хранения. Обычному владельцу его менять не нужно.

  • Классический файловый кеш (по умолчанию). Страницы лежат файлами в папке wa-data/public/shop/supercache/.
  • Metadata v2 (по умолчанию выключен, включается только командой администратора). Страницы ещё и учитываются в базе данных, что даёт точную очистку: при изменении товара удаляются только те страницы, где он встречается. Нужен строгий профиль правил сервера. Подробнее: глава 7.

База и Премиум

Плагин продаётся в двух редакциях. Базовые возможности (кеш, оба способа подключения, проверка кеша, диагностика, очистка всего кеша и одной страницы, резерв места на диске) есть у всех. Часть расширенных функций (динамические блоки, ограничение размера кеша, исключение страниц по типам, кеш только для выбранных параметров адреса) доступна только в Premium. Полная таблица: глава 9.

Что измерено, а что нет

Единственное измерение скорости в проекте (версия 3.4.2) выполнено на тестовом стенде (один компьютер с Docker, маленький тестовый магазин из 7 товаров, без сети и без HTTPS, классический кеш). Что из него следует:

  • при прямой отдаче веб-сервером PHP-процесс не запускался (12 000 запросов, ноль обращений к PHP);
  • на этом стенде страница из кеша отдавалась заметно быстрее, чем собираемая заново, причём «через сервер» быстрее, чем «через роутинг».

Чего из него не следует: конкретных миллисекунд и «в N раз» на вашем магазине. Время зависит от каталога, темы, плагинов, хостинга. Не проверялись: Metadata v2, Premium, динамические блоки, HTTPS и прокси, сравнение с другими плагинами кеша.

Словарь терминов

Термин Что значит
Кеш Сохранённые готовые копии страниц магазина
HIT (попадание) Страница отдана из кеша
MISS (промах) Страницы в кеше не было: её построил Webasyst, и она, возможно, сохранена для следующих посетителей
BYPASS (в обход) Страница намеренно не берётся из кеша и не сохраняется (например, корзина). Это нормально, а не ошибка
cron Планировщик заданий на сервере: запускает команду по расписанию. Настраивается в панели хостинга или у администратора
Правила сервера Несколько строк для Apache (файл .htaccess) или nginx (конфигурация сайта), которые заставляют веб-сервер самому отдавать файлы кеша
Apache / nginx Два самых распространённых веб-сервера. Какой у вас, покажет блок настроек «Веб-сервер» или подскажет хостинг
Движок Способ хранения кеша: классический файловый или Metadata v2
TTL Срок годности страницы в кеше; по его истечении страница пересоздаётся (работает только с Metadata v2 и cron)
Query string Часть адреса после знака «?», например ?utm_source=mail
Premium Платная редакция плагина с расширенными функциями

Что нужно для работы

  • Webasyst с приложением «Магазин» и установщиком версии 2.7.0 или новее.
  • PHP 8.2 или новее (проверялись 8.2–8.5). На PHP 7.4–8.1 версия 3.4.3 не работает.
  • Для режима «Через сервер»: Apache с модулем mod_rewrite (и mod_alias) или nginx; доступ к правке конфигурации. 🔧
  • Для обслуживания по расписанию: возможность добавить задание cron. 🔧
Просмотр изображения
Оригинал