Решение проблемы с блокировками публикаций постов в 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. В результате, если бот посетил страницу и получил блокировку, эта страница может попасть в кэш. При посещении реальным пользователем той же страницы, ему может отобразиться закэшированная страница блокировки вместо ожидаемого контента.

 


Чтобы устранить проблему, необходимо исключить из кэширования Comet Cache URL-адреса, которые Facebook использует для сбора метаданных. Обычно Facebook отправляет запросы с определёнными User-Agent.

Как добавить исключение для User-Agent Facebook Bot в Comet Cache:

  1. Перейдите в настройки плагина Comet Cache в админ-панели WordPress: Плагины → Comet Cache

  2. Найдите раздел User-Agent Exclusion.

  3. Добавьте в список исключений User-Agent, которые использует Facebook: facebot, facebookexternalhit.

  4. Сохраните изменения.

  5. После добавления исключений полностью очистите весь кэш в Comet Cache.

 Решение проблемы с блокировками в Comet Cache

 

  1. Добавьте следующий код в файл 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);
        }
    });​​
  2. Перейдите в настройки плагина Super Page Cache в админ-панели WordPress: Плагины → Super Page Cache

  3. Добавьте следующие куки в список исключений:
    Для Anti-Spam плагина: apbct_firewall_die
    Для Security плагина: spbc_firewall_die

  4. Сохраните изменения.

  5. После добавления исключений полностью очистите весь кэш в Super Page Cache.

 
Решение проблемы с блокировками в Super Page Cache

 

Это может быть полезно

Нужна помощь?


Посетите наш Центр Поддержки.
Или напишите нам напрямую на support@cleantalk.org — мы всегда готовы помочь.

 

Была ли эта информация полезной?

Copied to clipboard