「robots.txtによりブロックされましたが、インデックスに登録しました」の原因と対処【第1回】~東京・札幌のWEB・システム・コンテンツ制作>ブレッセ

Search Consoleを開いたときに、見慣れない警告が並んでいて驚いた、という方は少なくないと思います。しかも該当ページが数十件単位で表示されると、対応すべきかどうか判断に迷いますよね。

結論を先にお伝えすると、この警告はあわてて対応しなくても問題にならないケースがほとんどです。ただ「なぜ問題にならないのか」が分からないままでは、判断そのものができません。弊社が運用しているサイトで確認できたデータと、Google公式の見解をもとに整理していきます。

この警告が表示される条件

弊社が自社開発・運営している大規模データベース型サイトでは、この警告が88件のページに対して表示されています。対象は`/store/noindex/`配下、公開を保留しているページ群です。

このディレクトリには、クロールを無駄に消費させないという設計判断からrobots.txtで`Disallow: /store/noindex/`を指定し、あわせて`<meta name=”robots” content=”noindex, follow”>`も設置しています。この2つを併用した状態で何が起きるのかを、実データで確認できる環境ということです。

そこで実際に表示されたのが、この警告でした。robots.txtのDisallowは「クロールしないでください」という指示で、noindexタグは「クロールした上で、検索結果には載せないでください」という指示です。指示の届く場所が違います。両方を同じページに設定すると、Googlebotはページの中身を読みに行けないため、そこに書かれたnoindexタグの存在にも気づけません。

「念のため両方設定しておこう」という発想で同じ構成になっているサイトは少なくありませんが、仕様上、二重の対策にはなりません。

Googleの言葉をそのまま読んでみる

ここで一度、Search Consoleの画面に添えられている文言を見直してみてください。

> これは重大な問題ではありません。この問題があるページはインデックス登録されますが、検索結果の見え方は改善できます

「重大な問題ではありません」と書かれています。これは、そのまま受け取っていい言葉です。

Google検索セントラルの公式ドキュメントでも、robots.txtは主にサイトへのリクエストが集中しすぎるのを防ぐための仕組みであって、ページをGoogleに表示させないための機能ではないと明記されています。検索結果から確実に外したいのであれば、robots.txtではなくnoindexを使うか、パスワードで保護してください、という案内になっています。

Google側担当者の説明は?

GoogleのJohn Mueller氏は、この種の相談に何度も同じ回答をしています。

あるサイト運営者が、WooCommerceのカート関連URLが5万件以上「インデックス登録されましたが、robots.txtによってブロックされています」と表示されて困っていた事例では、Mueller氏はそれらをrobots.txtでブロックすること自体に問題はなく、仮にインデックスされても検索結果に表示される可能性は低いと答えています。

別の取材でも、Googlebotはrobots.txtでブロックされたページをクロールできない一方、他のページからのリンクを通じてそのURLの存在を知り、インデックスに含めることがある、ただしそれが通常サイトの順位や見つけられやすさを損なうものではない、と説明しています。

SEOコンサルタントのMatthew Edgar氏も、Disallowが制御するのはクロールだけでインデックスは制御しないため、クロールをブロックされたページでもインデックスされ、順位がつくことすらあると解説しています。そして、内部リンクが強く張られているページは、クロールできなくてもその信号だけでGoogleがインデックスに含めると判断することがある、とも述べています。

公式ドキュメントと担当者の発言、そして第三者の専門家の解説が、いずれも同じ方向を向いています。この警告は、サイトの評価を下げるものではありません。

とはいえ「それならなぜ、こんなに多くの記事で注意喚起されているのだろう」という疑問は残ると思います。次回はそのあたりを整理しながら、実務でどう判断すればいいのかを一緒に考えていきます。