Поддержка Проблемы и решения X-Robots-Tag — как отключить?

  • плагин All In One SEO Pack безальтернативно запрещает индексацию rss-лент кодом:

    
    public function __construct() {
    
        add_action( 'template_redirect', array( $this, 'noindex_follow_rss' ) );
        add_action( 'template_redirect', array( $this, 'redirect_attachment' ) );
    
    }
    
    /**
    * Noindex and follow RSS feeds.
    *
    * @Since 2.3.6
    */
    public function noindex_follow_rss() {
        if ( is_feed() && headers_sent() === false ) {
            header( 'X-Robots-Tag: noindex, follow', true );
        }
    }
    

    может для стандартной ленты это и хорошо, но у меня кастомная лента для яндекса (плагин RSS for Yandex Zen). раньше вроде яндексу было наплевать на тег X-Robots-Tag, а сейчас начались жалобы на то, что бот яндекса получает отлуп из-за noindex.

    вопрос — как в своем плагине отрубить этот фильтр? и желательно только для своей ленты, но сойдет и для всех rss-лент. обычный remove_action не срабатывает.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yuri

    (@yube)

    обычный remove_action не срабатывает.

    Должен срабатывать. Тут два момента: 1) нужно правильно угадать/указать класс/объект и 2) повесить remove на хук, который сработает после того, как плагин сделает сове черное дело с add_action.

    На крайний случай можно попробовать перебить заголовок (опять же, после того, как плагин сделает свое черное дело)

    как правильно угадать объект?
    в какую хотя бы сторону копать?

    перебить заголовок совершенно не получается, пак срабатывает уже после того, как в моем плагине формируется лента.

    print_r говорит, что это:

    
    All_in_One_SEO_Pack_Front Object
    

    но отключение через:

    
    remove_action( 'template_redirect', array( 'All_in_One_SEO_Pack_Front', 'noindex_follow_rss' ) );
    

    ни к чему не приводит.

    Модератор Yuri

    (@yube)

    Возможно, remove_action выполняется слишком рано, до инициализации All_in_One.

    All_in_One у меня нигде нет, поэкспериментировать не могу.

    Попробуйте

    add_action( 'template_redirect', index_follow_rss, 999999 );
    function index_follow_rss() {
        if ( is_feed() ) {
            header( 'X-Robots-Tag: index, follow', true );
        }
    }
    

    cпасибо, Юрий.
    выручаете снова 🙂

    этот вариант оказался даже лучше, так как срабатывает и для yoast seo, который тоже отрубает индексацию rss-лент.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «X-Robots-Tag — как отключить?» закрыта для новых ответов.