Разделы документации

Кэширование (!)

Важно: множество обращений о некорректной работе плагина WT Geotargeting связано с кэшированием страниц — как на стороне браузера, так и на стороне сервера.

Настройка геотаргетинга предполагает динамическую подстановку геозависимого контента (города, телефоны, адреса, тексты для региона и т.п.) на стороне backend — ещё до отправки HTML в браузер пользователя.

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


Разрешено

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

Запрещено

  • Полностью кэшировать HTML-страницы, где меняется город и другой геозависимый контент (если страница одна для всех регионов)
  • Кэшировать блоки шаблона, содержащие вызовы функций или шорткодов WT Geotargeting

Кэширование при использовании региональных ссылок

Если геотаргетинг реализован через региональные ссылки (поддомены или директории в URL), в ряде случаев допустимо полное кэширование HTML-страниц.

Это возможно, если плагин кэширования сохраняет кэш с привязкой к полному URL, а не к ID записи/страницы в WordPress.

В этом случае каждая региональная страница (например, city1.domain.ru/pagename/ и city2.domain.ru/pagename/ или /city1/pagename/ и /city2/pagename/) получает свой собственный HTML-кэш, и геозависимый контент не «смешивается» между регионами.

W3 Total Cache корректно кэширует страницы с региональными ссылками, формируя отдельный кэш для каждого уникального URL.

При использовании других плагинов кэширования проверьте в их документации:

  • как формируется ключ кэша (по URL, по ID записи, по домену/поддомену)
  • поддерживается ли раздельный кэш для региональных поддоменов и директорий

Совместная работа с W3 Total Cache

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

Рекомендуется:

  1. Изучить разделы Page Cache, Fragment Cache и исключения из кэширования
  2. Кэшировать только то, что не зависит от геолокации; блоки с геозависимым контентом выводить динамически

Пример шаблона для совместной работы с W3 Total Cache — Примеры шаблонов.


Взаимодействие с другими плагинами кэширования

Настройки кэширования (время жизни, исключения по URL, кукам, типам устройств и т.п.) уточняйте в документации конкретного плагина.

Для каждого плагина (W3 Total Cache, WP Fastest Cache, LiteSpeed Cache и т.п.) — свои механизмы формирования ключа кэша и исключения страниц/блоков.

Общие рекомендации:

  1. Изучить разделы Cache / Page Cache / HTML Cache в документации плагина
  2. Исключить из кэша страницы или фрагменты с геозависимым контентом (или настроить фрагментное кэширование)
  3. После изменения настроек — очистить кэш и проверить работу для разных регионов (VPN, прокси, тестовые поддомены)

Переадресации и кэширование

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

Некоторые плагины кэшируют не только HTML, но и HTTP-редиректы. Один раз сработавшая переадресация для региона может закэшироваться и применяться ко всем посетителям независимо от геолокации.

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

После настройки проверьте:

  • Поведение сайта для разных IP и регионов (VPN, прокси)
  • Корректность редиректов при включённом кэшировании и после очистки кэша

Мета-теги для отключения кэша в браузере

Добавьте внутрь тега <head>:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

WP Fastest Cache

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


См. также

Кейсы внедрения плагина

MAX