「クロール済み – インデックス未登録」にfeedが表示される時の対処法

ふと、当サイトのGoogle Search Consoleを見ると、カバレッジの「クロール済み – インデックス未登録」に大量のfeedのURLが…。

▼こんなかんじ

「クロール済み – インデックス未登録」に表示されたfeed

いろいろ調べてみると、「クロール済み – インデックス未登録」にfeedが表示されていても問題なさそうなんですが、個人的にはスッキリさせたいなと思い対処しました。

ということで、この記事ではその方法を紹介します。

「クロール済み – インデックス未登録」のfeedの対処法

feedをnoindexにする

feedをnoindexにするには「X-Robots-Tag」というものを使います。

X-Robots-Tagって?という方は以下のサイトの記事がわかりやすいので参考にしてみて下さい。
X-Robots-Tagの使い方・記述方法(海外SEO情報ブログ)

プラグインにfeedをnoindexにできるものもあるみたいですが、私はfunctions.phpに記載する方法をとりました。

functions.phpに記載する内容

※functions.phpは記述ミスがあるとサイトが表示されなくなる恐れがあります。バックアップをとるなど、functions.phpの編集は自己責任でお願いします。

add_action('template_redirect',function(){
    if ( is_feed() && headers_sent() === false ) {
         header( 'X-Robots-Tag: noindex, follow', true );
    }
    });

これでOK。

上記を記載後、Google Search ConsoleでfeedのURLをライブテストすると、以下のように表示されるようになりました。

feedのURLをライブテストの結果

ちゃんと反映されていますね。あとはカバレッジの「クロール済み – インデックス未登録」からfeedの表示がなくなるを待つだけです。

feedをクロール拒否するのはやめたほうが良い

ちなみに。

他サイトの話なんですが、feedのURLをrobots.txtでクロール拒否したんですよね。feedを検索結果に表示する必要もないですし、それなら、いっそクロール拒否したらいいかなと。

するとどうなったか?というと、カバレッジの「有効(警告あり)」にズラーっと表示されるようになりました。

詳細については「robots.txt によりブロックされましたが、インデックスに登録しました」です。

Google Search Consoleへ上記のように表示されるくらいなら、「クロール済み – インデックス未登録」のままのほうが、マシだと思うので、feedをクロール拒否するのはやめたほうが良いと思います。