WordPressのディスカッション設定でコメント禁止にしていても、コメントRSSフィードは無条件に作成されています。あっても害はないので対処必須という訳じゃないのですが、Search Console でコメントフィードのURLが大量に除外されているのはなんとなくイヤやし、除外されて当然なURLが多いと除外されたくないURLを探すのに時間がかかるので削除することにします。
コメントを禁止する方法はこちらの記事を参照してください。
RSSフィードとは何か
RSSフィードとは、ブログ記事のタイトルやURL、更新日時、要約などを、XMLというデータ形式で一覧表にした情報です。新着記事もこの一覧表に出力されるので、にほんブログ村のようなランキングサイトに見てもらうことでブログ記事の情報を最新化してくれます。
WordPressのRSSフィードは、サイト全体のフィード、記事ごとのコメントフィード、カテゴリーのフィード、タグのフィード、など色々ありますが、必要なのはサイト全体のフィードだけで、コメントを許可していないサイトでは 記事ごとのコメントフィードは全く不要です。
不要だけど、あっても害はないし、放置でも問題ないですが、Search Console のカバレッジで「クロール済み – インデックス未登録」として除外されてしまいます。
除外されても問題ないのですが、記事が多いと「記事ごとのコメントフィード」のURLで埋め尽くされてしまい、本当は除外されたくないURLを見つけるのが困難になってしまいます。
この例では先頭のURLが除外されたくないURL、他9個のURLは除外されても良いRSSフィードのURLです。
10ページ分のURLが除外されてますけど、ほとんどが記事ごとのコメントフィードのURLでした。
コメントRSSフィードを出力しないよう無効化する方法
テーマエディター で functions.php にRSSフィードを除外するコードを追加します。
以下、詳細手順です。
管理画面のサイドバーで「外観」-「テーマエディター」をクリック。
「テーマを編集」画面の右上で、使用中テーマを選択し、functions.php をクリックします。
functions.php の一番下に、以下のコードを追加して、「ファイルを更新」ボタンをクリックします。
(実はちょっと不細工なコードです。本来なら記事ごとのコメントフィードURLのlink relから消したいのですが、そのフックが見つからないので、hrefの中身だけ消してます)
// コメントフィードを削除
function comment_feed_remove() {
if ( is_comment_feed() ) {
remove_action('do_feed_rdf', 'do_feed_rdf');
remove_action('do_feed_rss', 'do_feed_rss');
remove_action('do_feed_rss2', 'do_feed_rss2');
remove_action('do_feed_atom', 'do_feed_atom');
}
}
add_action('parse_query', 'comment_feed_remove');
//コメントフィードURLを削除
add_filter('feed_links_show_comments_feed', '__return_false');
//記事ごとのコメントフィードURLを削除
add_filter('post_comments_feed_link','__return_false');
フィードのURLにアクセスして、以下のような画面が表示されたらOKです。
いずれ Search Console の 除外リストからコメントフィードのURLが除外されるでしょう。