5. Как понять, что кеш работает

На странице настроек есть четыре инструмента проверки. Они доступны во всех редакциях. Идите по порядку:

  1. Блок состояния: общий вывод одной фразой и один следующий шаг.
  2. «Проверка кеша»: проверяет реальную страницу вашего магазина.
  3. «Проверка конфигурации»: список проверок настроек и файлов.
  4. «Состояние SuperCache»: таблица диска, папок и очереди.

Блок состояния

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

Заголовок Что это значит Что делать
Кеш выключен Ни одна страница не кешируется: плагин ещё не включали или выключили в настройках Следующий шаг «Включить кеш» → быстрый старт
Требуется настройка Кеш включён, но способ подключения не выбран; либо найдена критическая проблема в проверках ниже; либо при способе «Через сервер» прямой серверный HIT ещё не подтверждён Нажмите кнопку следующего шага; прочитайте красные пункты в «Проверке конфигурации»
Включено через маршрутизацию, не проверено Кеш включён способом «Через роутинг», но никто не убедился, что он отдаёт HIT Запустите «Проверку кеша»
Работает через маршрутизацию «Проверка кеша» получила HIT через роутинг: сохранённую страницу отдаёт PHP Ничего. Можно настроить cron (см. ниже)
Прямой серверный HIT подтверждён «Проверка кеша» получила HIT в режиме «Через сервер»: веб-сервер отдаёт страницу без PHP Ничего. Но см. оговорку ниже
Состояние неизвестно Плагин не смог прочитать собственные проверки и ничего не предполагает Нажмите «Обновить», затем посмотрите wa-log/supercache.log

Если в блоке есть строка «(проверено при прежних настройках)», значит, после последнего теста вы меняли настройки: проверьте ещё раз.

Что значит и чего не значит «Прямой серверный HIT подтверждён». Значит: на момент проверки при текущих сохранённых настройках страница была отдана веб-сервером из файла, минуя PHP. Не значит: что так отдаются все страницы и всегда; что правила никто не менял с тех пор. Если вы позже вручную удалили правила из .htaccess, не меняя настройки плагина, статус сам не изменится до следующей проверки, поэтому после любых правок сервера запускайте «Проверку кеша».

Состояния блока (снимки 3.4.3, русский интерфейс):

Кеш выключен Требуется настройка Включено через маршрутизацию, не проверено Работает через маршрутизацию Через сервер: HIT ещё не подтверждён Прямой серверный HIT подтверждён

«Требуется настройка» при критической проблеме (здесь веб-серверу закрыт рабочий каталог; следующий шаг называет, что исправить) и блок «Состояние SuperCache» в этом случае:

Требуется настройка: критическая проблема Состояние SuperCache при критической проблеме

Состояние «Состояние неизвестно» на стенде вызвать не удалось (неправильные права на папки и подмена папки файлом дают другие состояния), снимка нет.

Проверка кеша (Cache Test)

Блок «Проверка кеша». Вы вводите адрес страницы (например, / или /catalog/, либо полный адрес магазина) и нажимаете «Проверить страницу». Сервер сам, как анонимный посетитель (без вашей сессии администратора), запрашивает страницу один или два раза и смотрит ответ.

Важно знать:

  • Побочный эффект. Первый запрос — обычный визит анонимного посетителя: разрешённая плагином страница будет закеширована, как после первого посещения. Ничего не очищается и не ломается.
  • Ограничения. Не чаще одной проверки в 5 секунд и не более 30 в час. Проверять можно только страницы магазина на доменах вашего магазина (чужие домены и IP-адреса отклоняются).
  • Страницы оформления заказа, личного кабинета, входа и заказов вообще не запрашиваются. Корзина запрашивается, и плагин отвечает BYPASS.
Ответ Что значит Что делать
Кешируется: MISS, затем HIT Первый запрос построил страницу и положил в кеш, второй был отдан из кеша. Всё хорошо Ничего
Кешируется: страница уже в кеше Первый запрос сразу HIT (страница была закеширована ранее) Ничего
Разрешено, но не сохраняется Плагин страницу допускает, но второй запрос снова MISS: копия не появилась Проверьте права на запись в папки кеша (блок «Состояние SuperCache»), работает ли cron, не меньше ли свободного места резерва. В Metadata v2 страница публикуется после полной сборки: повторите через минуту
Страница сохранена, но не отдаётся из кеша Копия лежит на диске, но запрос обработал PHP Проверьте способ подключения (в режиме «Через сервер» — вкладку «Правила сервера»)
Не кешируется (BYPASS) + причина Плагин намеренно не кеширует эту страницу Прочтите причину и подсказку «Смотрите …» (список причин ниже)
Адрес перенаправляет Адрес отвечает редиректом; тест за ним не идёт Введите адрес, на котором оказывается посетитель
Сервер не смог обратиться к витрине Не удалось найти адрес, соединиться, дождаться ответа или установить защищённое соединение. Это не ошибка плагина и не MISS Спросите у хостинга, разрешено ли серверу открывать собственный домен (файрвол, hairpin NAT). Проверьте сертификат домена
Не удалось определить Страница ответила, но без признаков SuperCache: не прошла через плагин. Возможно, тема не вызывает хук head, либо ответил CDN или другой кеш Проверьте страницу самого магазина; отключите CDN-кеш HTML на время проверки
Кеширование выключено В настройках кеш выключен Включите и сохраните
Слишком много проверок Лимит 1 проверка в 5 секунд / 30 в час Подождите
Проверка недоступна Рабочая папка плагина недоступна для записи Проверьте права папок

Пример для способа «Через роутинг» (снимок 3.4.3): Результат проверки кеша

Корзина: страница запрашивается, плагин отвечает BYPASS («Страница была запрошена как анонимный посетитель, плагин ответил BYPASS: ничего не сохранено»). Оформление заказа не запрашивается вообще (снимки 3.4.3):

Проверка кеша для корзины Проверка кеша для страницы оформления заказа

Проверка в браузере вручную

Если «Проверка кеша» недоступна (хостинг не пускает сервер на собственный адрес), проверьте так:

  1. Поле «Диагностический заголовок X-Supercache» → «Включен» находится на вкладке «Правила сервера», а она видна только при способе «Через сервер». Если у вас «Через роутинг», этой вкладки нет: проверяйте кеш блоком «Проверка кеша», ручная проверка заголовков вам не нужна. При «Через сервер» включите поле, сохраните и заново скопируйте правила в сервер 🔧.
  2. Откройте страницу товара или категории дважды в приватном окне браузера.
  3. В инструментах разработчика браузера (клавиша F12 → вкладка «Network»/«Сеть») выберите запрос страницы и найдите заголовок X-Supercache во второй загрузке. HIT — отдана из кеша; MISS или отсутствие заголовка — кеша нет или правила не применяются.
  4. Потом заголовок можно выключить.

Заголовок X-Supercache простыми словами

Включается в поле «Диагностический заголовок X-Supercache» (вкладка «Правила сервера»): «Выключен», «Включен», «Отладка (с причиной обхода кеша)».

Значение Что значит
X-Supercache: HIT Страница отдана из кеша
X-Supercache: MISS Страницу построил PHP, и её можно сохранить в кеш (следующий посетитель получит HIT)
X-Supercache: BYPASS Страницу построил PHP, и её нельзя кешировать: это нормально для корзины, личного кабинета и т. п.

В режиме «Отладка» к BYPASS добавляется X-Supercache-Reason с короткой причиной:

Код причины Простыми словами Где смотреть
sensitive Корзина, оформление заказа, личный кабинет, вход, регистрация, «забыли пароль», заказ: такие страницы не кешируются никогда Правило нельзя отключить
excluded Адрес в списке исключений «Исключения кеширования»
page-type Тип страницы исключён галочкой (⭐ Premium) «Исключить …» там же
bot Запрос от робота; по вашей политике для роботов кеш ему не создаётся/не отдаётся «Поисковые роботы» и соседние
admin, admin-bypass Администратор или включённый обход кеша для администратора «Не кешировать авторизованных», «Обход кеша для администратора»
auth-user Вошедший пользователь «Не кешировать авторизованных пользователей»
cart У посетителя в корзине есть товары Так и задумано
query В адресе есть параметры, которые настройки не разрешают кешировать «Как работать с query string»
language Язык запроса не совпадает с языком, заданным для кеша «Локализация»
device Стратегия кеширует только другой тип устройств «Стратегия кеширования»
method Не страница-GET (например, форма POST) Так и задумано
error-page Страница отвечает ошибкой (404, 5xx) Откройте адрес в браузере
not-frontend Это не страница витрины —
exists Копия уже есть Не причина проблемы
size-limit Достигнут лимит размера кеша (⭐ Premium) «Ограничение размера кеша»
disk-reserve Свободного места на диске меньше резерва: новые страницы не пишутся Освободите место или уменьшите резерв
opt-out У посетителя cookie supercache=no_cache (ставит интеграция с выбором города): ему кеш не отдаётся и его страница не сохраняется (с 3.4.3) Так и задумано
responsive-images Включена защита для «Адаптивные изображения PRO»: страница для посетителя с cookie разрешения не сохраняется Так и задумано
path Адрес нельзя сопоставить с папкой кеша —
other Прочее Включите «Отладку» и повторите

Проверка конфигурации

Блок «Проверка конфигурации» проверяется при открытии страницы: настройки и файлы плагина. В заголовке — число проблем и число «пунктов проверить вручную». Каждая строка имеет статус:

Статус Значение
ОК Всё в порядке
Примечание Информация
Предупреждение Что-то отличается от ожидаемого: прочитайте подсказку
Критично Плагин не сможет работать правильно (например, нет прав на запись, нет модуля mod_rewrite при способе «Через сервер»)
Проверить вручную Автоматически проверить нельзя; ниже даны шаги

Разделы (часть появляется только когда нужна): «Правила сервера» (Apache: найден ли блок, совпадает ли с текущими настройками; nginx: ручные пункты; профиль правил и Metadata v2; закрыты ли внутренние папки плагина), «Webasyst: маршруты, домены, путь кеша, права», «Стратегия мобильные / десктоп», «Images PRO и общий кеш».

Пример: строка Apache «Блок совпадает с правилами для текущих настроек» — это не доказательство, что Apache эти правила применяет, поэтому итоговый ответ даёт только «Проверка кеша».

Пример для Apache, способ «Через сервер» (снимок 3.4.3; в блоке «Правила сервера» есть пункты «Проверить вручную»): Проверка конфигурации

Для способа «Через роутинг» пункт про правила сервера краткий: «Через роутинг: правила веб-сервера не используются, поэтому не проверяются» (снимок 3.4.3): Проверка конфигурации, роутинг

Состояние SuperCache (Diagnostics Lite)

Блок «Состояние SuperCache»: «Проблем не найдено» либо список предупреждений (критично/предупреждение/примечание), затем таблица: включён ли кеш, движок («Классический (файловый кеш)» или «Metadata v2»), папки («Каталог кэша», «Рабочий каталог», «Каталог очереди заданий»: «Запись разрешена» или нет), «Замер объёма на диске», размер страниц кеша, временные файлы, корзина, очередь заданий, резерв свободного места и свободное место на диске. Показано свободное место раздела; хостинг может ограничивать аккаунт квотой, которая здесь не видна. Кнопка «Измерить диск сейчас» делает одну порцию замера немедленно (остальное делает cron).

Пример (снимок 3.4.3): Состояние SuperCache

Что делать с результатом

  • Всё зелёное, «Работает…» или «Подтверждён» → ничего.
  • «Требуется настройка» → нажмите кнопку следующего шага.
  • BYPASS на обычной странице → прочитайте причину.
  • Красные пункты «Проверки конфигурации» про права на папки → 🔧 поддержка хостинга должна дать веб-серверу право писать в wa-data/public/shop/supercache/ и wa-data/protected/shop/supercache/; cron должен работать от того же пользователя.
Просмотр изображения
Оригинал