「当ブログはアフィリエイト広告を利用しています」

Google『robots.txt によりブロックされましたがインデックスに登録しました』の原因と対処方法

ブログ運営

Google Search Console に「robots.txt によりブロックされましたが、インデックスに登録しました」と表示されると、何を直せばよいのか戸惑いますよね。

当記事では、これらが起こる原因と対処方法を詳しく解説します。

「PR」

原因はなに?

このメッセージがどんな状態を知らせているのか結論から言えば、「Google はその URL をクロール(ページ内容を取得)できない。しかし、URL 自体は確認できたのでデータベースに登録した」 ということです。

robots.txt とは「クロール(巡回)」を制御する役割です。そのため「インデックス」を完全に防げないためインデックスに登録したということです。


この状態が起きる仕組み

Googlebot は URL を直接クロールし見つけ出します。さらに外部のリンクやサイトマップ、他ページからの参照(アンカーテキスト)等からも URL を見つけ出します。

robots.txt でその URL を disallow していると中身は見られません。

しかし、それでも URL の存在は確認できるので、タイトルやスニペットが無い「URLだけの形」でインデックスに残る場合もあります。

皆さんがご存じの「クロール禁止」と「インデックス禁止」は別物になります。


「PR」

状況確認の手順

  1. Search Console の URL 検査(URL Inspection) で該当 URL を調べ、ステータスを確認します。
  2. Search Console の robots.txt テスター でその URL が本当にブロックされているか検証します。
  3. どこからその URL が発見されているか(内部リンク/外部リンク/サイトマップ)を調べ、参照元を特定します(サーバーのアクセスログや CMS 内リンク一覧も確認)。

Google の公式ヘルプでも同様の診断フローが案内されています。

まず現状(ブロックされているのか、インデックスされているのか)を確実に把握することが重要です。


具体的な対処方法

クロール&インデックスさせたい場合

robots.txt の Disallow を外して Googlebot にクロールを許可します。

その後、URL 検査ツールで再取得(インデックス登録をリクエスト)を行い、クロール→インデックスされるのを待ちます。

robots.txt でブロックしたままでは Google はページの <meta> や HTTP ヘッダーを見られないため、意図したインデックス状態になりませんので、まずは「クロール可能」にする必要があります。

インデックスから除外したい場合

robots.txt でブロックしたままではURL が残る場合があるため、一時的に robots.txt のブロックを外して Google にページをクロールさせます。

そこで、ページ内に <meta name="robots" content="noindex"> を入れるか、HTTP ヘッダーで X-Robots-Tag: noindex を返す方法で確実に noindex 指示を与えます。

その結果、Google が再クロールして noindex を検知すればインデックスから外れます。

必要に応じて noindex が反映されたことを確認したら、再度クロールを制限する(robots.txt に戻す)こともできます。

また、robots.txt 内の非標準ディレクティブ「noindex」は Google でサポートされなくなっているため、これに頼らないでください。

必ず meta/X-Robots-Tag を使い、Google が実際にその指示を見られるようにしなければなりません。

緊急に検索結果から一時的に消したい場合

Search Console の Removals(削除リクエスト) ツールで「一時削除」を申請できます(ただしこれは一時的措置:約6か月程度の非表示)。

恒久的に消したいなら、noindex の設置やコンテンツ削除(404/410)などの永久対策が必要です。

参照:Google ヘルプ


よくある間違いと注意点

「robots.txt に disallow を書けば完全に検索結果に出ない」は間違い。外部リンクなどで URL が残ることがあります。

robots.txt にnoindexを入れる古いやり方は、Google は非推奨でサポート対象外です。必ずmetaやX-Robots-Tagを使いましょう。

noindexを効かせるにはGoogleに実際にページをクロールさせる必要があるので、「noindex を入れる → 元の robots.txt を戻す(任意)」という手順が一般的です。

参照:Google for Developers


実際に対処してみた事例の記録

2019年にGoogleサーチコンソールでrobots.txt によりブロックされた時の対処方法を紹介します。

その時に対処した手順を、当時の記録のままで引用します。

初心者の場合、突然Googleからメッセージが届くと驚きます。それも警告ともなればなおさら焦ってしまいます。初めての場合は対処方法がまだ未体験だからです。

今回紹介する警告のメッセージは次の様にGoogleから届きました。

新規にブログを開設して3カ月目にメールでGoogle Search Console Teamから「robots.txt によりブロックされましたが、インデックスに登録しました」というメッセージがです。

初心者にはさっぱり理解が出来ない内容なので調べながらの対処をしました。その原因と対処方法を紹介します。

その1:「robots.txt によりブロック・・」メッセージ内容
その2:robots.txt によりブロックされ原因
その3:ブロック解除の対処方法と結果

その1:「robots.txt によりブロック・・」メッセージ内容

Googleサーチコンソールはブログサイトの記事がインデックスされていて正常に検索結果に表示されているかどうかをチェックする重要なツールです。

たまにGoogleが投稿した記事をインデックスしないことがあります。その様な時にはk時をチェックしインデックス可能かどうかをチェックするなど無くて半らない管理ツーで毎日記事のチェックが欠かせません。

また、どの様なキーワードで検索されているのかなど検索に関する情報もSEOには無くてはならないデータを提供してくれます。

その様なGoogleサーチコンソールからメッセージや警告がくると一瞬不安になります。なので、どの様なメッセージなのかを確認して原因を突き止めて対処するノウハウを学ぶことが大切です。

今回のメッセージから通常は起きないルーチンでもエラーでもあり初心者が対応する応急処置としての対処方法を紹介しました。

それでは、メッセージの内容の確認から始めます。メッセージを引用すると以下の通りです。

カバレッジの問題でのメッセージ内容
カバレッジの問題でのメッセージ内容

警告は「できる限り解決されるこをおすすめいたします」となっていて推奨項目なのですす。重要ではあるけれども必須では無いようなのでゆっくりと確認できます。

「カバレッジの問題を解決する」をクリックしカバレッジに進んで内容を確認すると次のようになっています。

「例」に表示されているURLが、「robots.txt によりブロックされましたが、インデックスに登録しました」ということが問題だと警告してきたのです。

青い枠で囲んだ部分を見ると、/w-admin/index.php  となっています。

この場所は 「/w-admin 」だから、WordPressの管理フォルダー内のページです。つまり、管理フォルダー内のページが問題の場所です。

管理フォルダーの中とは何か怪しい臭いがします。ハッカーかスパムかよく分かりませんが場所だけに危険性を感じます。

その2:robots.txt によりブロックされた原因

今回のエラーメッセージで問題なのはサイトの手直しなどで「一時的に意図してブロックした」その後にクローラーがインデックスしてしまったからではないのです。

何もしていないのに重要なページがインデックスされている事が原因なのです。なぜ起きたのかの分析が難しいところです。

通常Wordpressの管理フォルダーはブロックされている

通常WordPressでは、管理フォルダー内のページは検索エンジンがスクロールしないように、デフォルトで「robots.txt 」によりブロックされています。

しかし、なんらかの要因でインデックスされてしまうことがあります

ヘルプを見ると、その原因は以下の様に「他のユーザーがこのページにリンクしている場合」と説明がありました。(抜粋)


Google では、常に robots.txt を使用して登録しますが、他のユーザーがこのページにリンクしている場合、robots.txt は使用されません

引用:Googleサーチコンソール ヘルプ

この説明文を読むとやはり何か怪しさを感じるのですが専門家ではないので一応頭にいれました。

本来インデックスされないはずの管理フォルダー内のページがインデックスされたことを受けて、「robots.txt によりブロックされましたが、インデックスに登録しました」と警告していのです。

ようは、「本来インデックスされないはずだけど、何らかの原因でインデックスされたよ。判断できないので、あとは自分で調べて対処してね」ということです。

その3:ブロック解除の対処方法と結果

通常WordPressの管理フォルダー内のページは、先ほど説明した通りGoogleの検索クローラーに検索されないようにrobots.txt によりブロックされています。

なので、ブロックされているページがクローラにインデックスされるのは好ましい状態ではありません。

(1)対処方法

インデックスされていても検索結果に表示されることは、殆ど無いため、Googleサーチコンソールからの警告は「サイト改善のための推奨項目」となっているのです。

よって、今回の警告はそのまま対処せずに放置しても問題はないのでこのままにすることにしました。

さらに立ち入った処理方法もあるのですが、そこはプロに任せておきます。今回は初心者が応急処理で対処し、その後詳細がわかれば本格的な対処をすることにしたのです。

(2)対処の結果

警告をそのまま対処せずに放置しても問題はないのでそのままにすることにしました。

警告から11日目に問題は解消しました。

警告から11日目にGoogleサーチコンソールのカバレッジを確認しました。

すると、有効(警告あり)がゼロで問題なしになっていて、下の①をクリックしすると「検証に合格しました」となっていました。時系列の問題表示も消えていました。

つまり、問題は解消して合格したということです。

初めは、WordPressの管理フォルダーのインデックス関連を操作して問題解決をしようと思っていました。

しかし、問題を確認するために問題点をクリックして表示させて確認しただけで、問題は解消されたということです。

この場合、問題点ではあるけれども大きな影響がない為、管理者が確認すればそれで問題は解消したと判断して、合格を出したものと推測されます。

まとめ

Search Console のメッセージは「矛盾(クロール不可だが登録済)」を通知するものです。まずは、URL 検査・robots.txt テスト・参照元確認などの診断を行いましょう。

インデックスを確実に止めたい場合は、robots.txt でのブロックではなく noindex(meta / X-Robots-Tag) を使い、Google にページを再クロールさせることが必須です。

逆にインデックスさせたいなら robots.txt の Disallow を外してGoogle にクロールさせましょう。

よくある質問(FAQ)

Q1:robots.txtでブロックしているのに「インデックスに登録されました」と出るのはなぜですか?
A1:Googleはリンクやサイトマップ、外部参照などでURLを発見できます。robots.txtでクロールを拒否していてもURL自体の存在は把握できるため、ページ内容は見えないまま「URLだけ」がインデックスに登録されることがあります。つまり「クロール禁止」と「インデックス禁止」は別物です。

Q2:インデックスさせたくない(検索結果に出したくない)場合、どうすれば確実ですか?
A2:robots.txtによるブロックだけでは確実ではありません。確実に除外するには、ページをクロール可能にしてから <meta name="robots" content="noindex"> を埋め込むか、HTTPヘッダーで X-Robots-Tag: noindex を返し、Googleに再クロールさせて noindex を検知させる必要があります。クロールをずっと禁止したままだと noindex を見てもらえません。

Q3:robots.txt に noindex を書けば良いですか?
A3:いいえ。robots.txt の noindex は現在 Google の仕様としてサポートされていません。ページの除外には meta タグか X-Robots-Tag を使ってください。

Q4:既にインデックスされたURLをすぐに検索結果から消したいときは?
A4:緊急なら Search Console の「Removals(一時削除)」を使えますが一時的(通常6か月程度)です。恒久的には noindex を設置して再クロールしてもらう、あるいはコンテンツを削除して 404/410 を返す方法が必要です。

Q5:対処後、正しく反映されたかどうかはどう確認すればよいですか?
A5:Search Console の「URL検査」で該当URLを確認し、クロール/インデックス状況を調べます。robots.txt テスターやカバレッジレポートも合わせて見てください。noindexを入れた場合は再クロール後に「インデックス除外(noindex)」と表示されるかを確認します。

タイトルとURLをコピーしました