サチコのカバレッジでfeedがインデックス未登録として大量に出現

カバレッジでfeedがインデックス未登録に

どうも、スマコマのコマ太郎です。元気もりもり

グーグルのサーチコンソールのカバレッジを見ていて気付いたのですが、「クロール済み – インデックス未登録」として feed ページが大量に検出されていました。

この「クロール済み – インデックス未登録」というのは、グーグルのロボットがページを読み込みはしたのだけど、まだグーグルのインデックス(データベース)には登録してないよ。または価値がないと判断したので登録しなかったよという意味になります。

検索エンジン システムのプロセス図で説明すると、以下の赤矢印が指し示す位置の状態(ステータス)です。

検索エンジン システムのプロセス図

クロール済み – インデックス未登録の解説図

なお後者の価値がないと判断されたページをSEO界隈では低品質なページなどと呼びますが、低品質なページが多くあるとサイトの評価が落ちてしまうのです。

なので「クロール済み – インデックス未登録」はゼロが望ましいわけです。でも feedページだし、まあいいかと思っていたのですが、あまりに数が増えてきて、本当に低品質になっているかもしれないページが埋もれて見つけにくい状態になってきました。

なので、ちょいと設定をいじってみました。その備忘録として記事を起こしています。

feedページの状態をサーチコンソールで確認

まずどんな状態だったのかですが、サーチコンソールでカバレッジを開きます。

サーチコンソール カバレッジ画面

クロール済み - インデックス未登録

その中にある「クロール済み – インデックス未登録」で 47件が未登録になっていました。

クロール済み – インデックス未登録

feed pages

さらに詳細を確認すると、このように URLの最後が feed となっているページが大量に検出されていたのです。

この各ページにぶら下がる feedページは、WordPress の機能の1つでコメント欄をオープンにすると自動的に生成されるページです。この feed をグーグルに読み込ませる必要はないので、これを除外したいわけです。

feedページを noindex にする方法

対策1:プラグインで対処する

feedページは HTML形式のページではないので、metaタグで noindex することができません。feedのようなXML形式のファイルの場合、HTTPヘッダーの X-Robots-Tag を使って除外する必要があります。

で、その方法ですが、「All In One SEO Pack」か「Yoast SEO」というプラグインを使うことで可能になります。(使っているテーマにSEO機能が搭載されていると競合するので注意してください。TCDなど。)

これらのプラグインは使っている人も多いと思いますが、このプラグインをインストールし有効化すれば自動的にfeedページの HTTPヘッダーに X-Robots-Tag: noindex, follow が追加されます。特に追加の設定などは必要ありませんでした。

HTTPヘッダー

HTTPヘッダー

このようにHTTPヘッダーに X-Robots-Tag が追加されていることが確認できました。HTTPヘッダーは、Google Chrome で簡単に確認することができます。

あわせて読みたい記事
HTTPヘッダー情報を確認する方法
どうも、スマコマのコマ太郎です。 HTTPヘッダーとは、HTMLファイルを受信するために事前にやり取りされるデータのことです。 通常...

ただ解せないのが、そもそもこのプラグインは入っていたこと。なのでプラグインにバグがあったのか、グーグル側の挙動に問題があったのか分かりません。(追記:2019/06/26 思い出したのですが、初期に使っていたテーマは TCD の MAXX でした。TCD には、SEO機能が組み込まれているので、All In One SEO Pack を入れてませんでした。しかもソースを見るとfeedの記述があって、これをたどられたみたいですね)

一応、「クロール済み – インデックス未登録」の状態についてグーグルのヘルプを確認すると以下のように書かれています。

クロール済み – インデックス未登録: ページは Google によりクロールされましたが、インデックスには登録されていません。今後、インデックスに登録される可能性がありますが、登録されない可能性もあります。この URL のクロールのリクエストを再送信する必要はありません。(インデックス カバレッジ レポートより

一時的に入る可能性はありそうですね・・・(追記:2019/03/07 グーグルのインデックスも有限で限界が近づいてきたので、仕訳の精度が厳しくなってきているという話を聞きました。)

後述した操作でサーチコンソールを確認するとステータスが [インデックス登録を許可] が [はい] から [いいえ] になったことから、あとはグーグル側の処理待ちですね。

対策2:robots.txt でブロックする

クローラーを制御するのは、「All In One SEO Pack」を使うのが簡単ですが、何かの事情で使えない、使いたくないということもあるかと思います。

その場合は、robots.txt に以下を追加すれば対応可能かと思います。

User-Agent: *
Disallow: /feed$
Disallow: /*/feed$

旧サーチコンソールの robots.txt テスターでクローラーをブロックできることは確認済みです。

ただ、これはクロールの拒否であり、インデックスの拒否ではないのでクロール済みのものに対し、どのような挙動になるか分かりません。今後のページに対してのみ有効と考えた方が良さそうです。

参考:.htaccess で制御できないか?

.htaccess を使って制御できないかについても検討しました。.htaccess で「Header set X-Robots-Tag “noindex”」をセットすることで、HTTPヘッダーに X-Robots-Tag を追加することができます。

ですが、「feed」に対してパターンマッチさせることができませんでした。おそらく、拡張子のない「feed」を、Apache がファイルとして識別しないことが原因で、<Files>ディレクティブが機能しないのでしょう。

サーチコンソールで確認する方法(プラグインで対処した場合のみ)

ではグーグル側からどのように見えているかも確認しておきましょう。

グーグルサーチコンソールの [カバレッジ] の中にある [除外]パネルをクリックし、さらに[クロール済み – インデックス未登録]をクリックします。

カバレッジ画面

カバレッジ画面

目的の URL にマウスカーソルを当てると虫眼鏡アイコン(URL検査)が出てくるので、それをクリックします。

URL検査

URL検査

次の画面でインデックスの状態を確認することができます。

インデックス状態を確認

インデックス状態を確認

この画面の右上にある [公開URLを検査] をクリックしてみてください。

インデックス状態 その2

インデックス状態2

設定が反映されていれば、インデックス許可が「いいえ」になるはずです。

あとは放置しておくだけ。そのうち feedページ群は [noindex タグによって除外されました] に移動してくれるでしょう。

追記:2019/06/26 結局、移動が始まるのにfeedページのクロール日から見た日数で半年かかりました。。。除外されたページにクローラーを呼ぶ機能がサーチコンソールにないので仕方ありませんね。手書きでxmlサイトマップを作って、クローラーを呼び込むことも考えましたが、移動が始まったので放置しました。

 コメント/質問、お気軽にどうぞ。

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

HTTPヘッダー情報を確認する方法

Google Chrome でHTTPヘッダー情報を確認する方法

ページの表示が更新されないときはスーパーリロードする

ページが更新されないときは、スーパーリロード(強制更新)を試してみて

新しいサーチコンソールで順位を表示させる方法は?

検索クエリを1000件を越えた部分も含めて調べる方法

自サイトの検索クエリを1000件を越えた部分も含めて調べる方法

スーパーリロードを超えるクロームの更新ワザ

スーパーリロードしてもページ、挙動が更新されないときの最終手段

WordPress のドメイン名を簡単に変更する方法(ドメイン載せ替え)