Эта инструкция актуальна для плагинов:
- 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 кэшировать техническую информацию.
Решение проблемы
Настройки для разных плагинов будут незначительно отличаться. Подробно разберём на примере 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)?
Далее, если включено кэширование в браузере, то на странице "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
Если используется сервер 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.