W3TC Page Cache мешает созданию фида (решение)

Эта инструкция актуальна для плагинов:

  • YML for Yandex Market;
  • XML for Google Merchant Center;
  • XML for Avito.
  • XML for Hotline;
  • XML for O.Yandex (Яндекс Объявления);

Диагностика проблемы и причины

Если на странице отладки в блоке "Возможные проблемы" появилась надпись:

Скорее всего, эти плагины негативно влияют на работу:

W3 Total Cache

и при этом XML/YML фид не создаётся либо перестал обновляется, то в 90% следует перенастроить W3 Total Cache согласно рекомендациям ниже. Замечу, что если вы не испытываете проблем с созданием/обновлением фида, то уведомление об ошибке можно игнорировать.

Конфликт с W3 Total Cache

В чём причина конфликта W3 Total Cache? Перечисленные в начале этой инструкции плагины, во время своей работы создают временные файлы, а также совершают ряд однотипных по своей структуре запросов к базе данных. При неправильной (слишком жесткой) настройке плагин W3 Total Cache кэшируэт эти файлы, а также запросы к БД в результате чего фид либо не обновляется, либо создаётся пустым. Соответственно наша задача состоит в том, чтобы добавить ряд исключений и запретить W3 Total Cache кэшировать техническую информацию.

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

Настройки для разных плагинов будут незначительно отличаться. Подробно разберём на примере YML for Yandex Market.

Для YML for Yandex Market:

Итак, переходим в W3TC Page Cache -- Disk Enhanced.
На странице нестоек "Page Cache" (/wp-admin/admin.php?page=w3tc_pgcache) в разделе "Никогда не кэшировать" добавляем правила в зависимости от плагина:

([0-9])?feed-yml-([0-9])?\.xml(\.gz)?
([0-9])?feed-yml-([0-9])?\.yml(\.gz)?
Устраняем конфликт W3 Total Cache с YML for Yandex Market

Далее, если включено кэширование в браузере, то на странице "Browser Cache" (/wp-admin/admin.php?page=w3tc_browsercache) добавляем правила в "Список исключений кэширования":

/wp-content/uploads/([0-9])?feed-yml-([0-9])?\.xml
/wp-content/uploads/([0-9])?feed-yml-([0-9])?\.yml
/wp-content/uploads/yfym
W3 Total Cache Browser Cache

Если используется сервер Nginx то обязательно после этих манипуляций его надо перезапустить командой:

sudo service nginx restart

Аналогичным образом поступаем с другими плагинами:

Для XML for Google Merchant Center:

"Page Cache" - "Никогда не кэшировать":

([0-9])?feed-xml-([0-9])?\.xml(\.gz)?

"Browser Cache" - "Список исключений кэширования":

/wp-content/uploads/([0-9])?feed-xml-([0-9])?\.xml
/wp-content/uploads/xfgmc

Для XML for Avito:

"Page Cache" - "Никогда не кэшировать":

([0-9])?feed-avito-([0-9])?\.xml(\.gz)?

"Browser Cache" - "Список исключений кэширования":

/wp-content/uploads/xml-for-avito/([0-9])?feed-avito-([0-9])?\.xml
/wp-content/uploads/xml-for-avito

Для XML for Hotline:

"Page Cache" - "Никогда не кэшировать":

([0-9])?feed-hotline-([0-9])?\.xml(\.gz)?

"Browser Cache" - "Список исключений кэширования":

/wp-content/uploads/xml-for-hotline/([0-9])?feed-hotline-([0-9])?\.xml
/wp-content/uploads/xml-for-hotline

Для XML for O.Yandex (Яндекс Объявления):

"Page Cache" - "Никогда не кэшировать":

([0-9])?xml-for-o-yandex-([0-9])?\.xml(\.gz)?

"Browser Cache" - "Список исключений кэширования":

/wp-content/uploads/xml-for-o-yandex/([0-9])?feed-o-yandex-([0-9])?\.xml
/wp-content/uploads/xml-for-o-yandex

Если манипуляции, описанные выше не помогли, убедитесь, что плагин соответсвует минимальны требованиям и работет CRON.

Рейтинг: 5

2023-10-24 / / 0 комментариев / YML for Yandex Market / , , , , , ,