Решение проблемы с блокировками публикаций постов в Facebook при использовании Comet Cache и Super Page Cache
Если вы используете плагины кэширования, такие как Comet Cache или Super Page Cache, вместе с CleanTalk Security FireWall или с функциями Anti-Crawler, Anti-Flood, SpamFireWall плагина CleanTalk Anti-Spam, вы могли столкнуться с проблемой: плагины кэширования могут сохранять страницы блокировки, предназначенные для ботов. В результате реальные пользователи могут случайно получить эти закэшированные страницы блокировки при попытке поделиться постами в Facebook.
В чём суть проблемы?
Когда CleanTalk определяет бота, он генерирует страницу блокировки с кодом ответа HTTP 403 Forbidden. Этот код означает, что сервер получил запрос, но отказывается его выполнять, так как доступ к ресурсу запрещён. Страницы блокировки CleanTalk содержат специальные теги, запрещающие их кэширование. Это сделано, чтобы обычные посетители сайта никогда не видели такие страницы.
Однако, несмотря на эти меры, у Comet Cache и Super Page Cache есть особенность: они могут кэшировать даже страницы с ответом 403. В результате, если бот посетил страницу и получил блокировку, эта страница может попасть в кэш. При посещении реальным пользователем той же страницы, ему может отобразиться закэшированная страница блокировки вместо ожидаемого контента.
Решение проблемы публикации постов в Facebook при использовании Comet Cache
Чтобы устранить проблему, необходимо исключить из кэширования Comet Cache URL-адреса, которые Facebook использует для сбора метаданных. Обычно Facebook отправляет запросы с определёнными User-Agent.
Как добавить исключение для User-Agent Facebook Bot в Comet Cache:
- Перейдите в настройки плагина Comet Cache в админ-панели WordPress: Плагины → Comet Cache
- Найдите раздел User-Agent Exclusion.
- Добавьте в список исключений User-Agent, которые использует Facebook: facebot, facebookexternalhit.
- Сохраните изменения.
- После добавления исключений полностью очистите весь кэш в Comet Cache.
Решение проблемы публикации постов в Facebook при использовании Super Page Cache
- Добавьте следующий код в файл functions.php активной темы:
Для Anti-Spam плагина:
add_action('apbct_firewall_before_die', function ($_result) { if ( ! headers_sent() ) { $cookie_name = 'apbct_firewall_die'; $cookie_value = '1'; $cookie_expiration = time() + 3600; // 1 hour $cookie_path = '/'; setcookie($cookie_name, $cookie_value, $cookie_expiration, $cookie_path); } });
Для Security плагина:
add_action('spbct_firewall_before_die', function ($_result) { if ( ! headers_sent() ) { $cookie_name = 'spbc_firewall_die'; $cookie_value = '1'; $cookie_expiration = time() + 3600; // 1 hour $cookie_path = '/'; setcookie($cookie_name, $cookie_value, $cookie_expiration, $cookie_path); } });
- Перейдите в настройки плагина Super Page Cache в админ-панели WordPress: Плагины → Super Page Cache
- Добавьте следующие куки в список исключений:
Для Anti-Spam плагина: apbct_firewall_die
Для Security плагина: spbc_firewall_die - Сохраните изменения.
- После добавления исключений полностью очистите весь кэш в Super Page Cache.
Это может быть полезно
- Как настроить Анти-Спам плагин от CleanTalk и WP Rocket
- Как настроить Анти-Спам плагин от CleanTalk и W3 Total Cache
- Особенности Анти-спам плагина от CleanTalk и плагинов кэширования в WordPress
Нужна помощь?
Посетите наш Центр Поддержки.
Или напишите нам напрямую на support@cleantalk.org — мы всегда готовы помочь.