Google検索とrobots.txt クローラー制御と検索結果の関係
Webサイトのルートに配置するrobots.txtは検索エンジンのクローラーを制御する管理ファイルですが、2023年12月8日時点のGoogleの説明によれば、Webページについて「(robots.txtを)検索結果に表示しないようにする目的で使用しないでください。」と記載されています。
robots.txtの使用目的
Google検索セントラルのrobots.txtの概要では、使用目的について下記のように記載されています。
Google のクローラーからのリクエストによってサーバーが過負荷になっていると考えられる場合に、ウェブページ(HTML や PDF など、メディア以外の Google が読み取れる形式)に対して robots.txt ファイルを使用することで、クロール トラフィックを管理できます。また、サイト上の重要でないページや類似したページのクロールを防ぐこともできます。
警告: robots.txt ファイルは、ウェブページ(Google がサポートする PDF やその他のテキストベースの形式を含む)を Google 検索結果に表示しないようにする目的で使用しないでください。
説明テキストの付いたページが他のページから参照されている場合、Google は、クロールせずに URL をインデックスに登録することがあります。検索結果にページが表示されないようにするには、パスワード保護や noindex などの他の方法を使用してください。
robots.txtは、あくまでもクローラーのクロール・トラフィック制御のためのものであり、検索避け目的には使用しないでくださいと記載されていますね。
そして、検索結果にページが表示されないようにするには、パスワード保護(認証)やmeta noindexやHTTPレスポンスヘッダー(X-Robots-Tag)を使うことを求めており、既にGoogleの検索結果に表示されているページについては併せて検索結果からの削除ツールを用いることが必要と説明されています。
更に下記の記載が続きます。
ウェブページが robots.txt ファイルでブロックされている場合でも、その URL が検索結果に表示されることはありますが、説明は表示されません。ブロックされたページに埋め込まれた画像ファイル、動画ファイル、PDF など、HTML 以外のファイルも、クロールが許可されている他のページから参照されていない限り、クロールから除外されます。検索結果でページがこのように表示される場合、修正するには、このページをブロックしている robots.txt エントリを削除してください。ページが検索結果に完全に表示されないようにするには、別の方法を使用します。
robots.txtでクローラーをブロックしていてもURLが検索結果に表示されることがある(説明スニペットは表示されない。)と記載されています。これは前述の「警告」部分の後半に記載があるのと併せると下記の2パターンがあると思われます。
- ブロックしているページに対してクロール可能な他ページからリンクが張られている場合、そこでリンクURLをクローラーが拾うので、robots.txtでクローラーをブロックしていてもURLが検索結果に表示されることがある。
- クロール可能な他ページからリンクを張っていなかったとしても、既にGoogleにインデックスされているページにおいて後からクローラーをブロックした場合、(既にURLはインデックス済みのため)URLが検索結果に表示されることがある。
画像等のメディアファイルを検索結果から除外する方法
画像等のメディアファイルについては、下記のように記載されています。
robots.txt ファイルを使用することで、クロール トラフィックを管理するだけでなく、Google 検索結果に画像ファイル、動画ファイル、音声ファイルが表示されないようにすることもできます。これにより、他のページやユーザーが画像、動画、音声ファイルにリンクできなくなることはありません。
Webページはrobots.txtでは検索結果に表示されないようにすることはできませんでしたが、メディアファイルは可能と書かれていますね。
よく企業の謝罪文等が画像になっていたりしますが、この説明だと画像のままでは普通にインデックスされて検索結果に表示されることになるので、検索避けしたければ以下のような対応が必要そうです。
画像の具体的な方法としては、robots.txtのDisallow、HTTPレスポンスヘッダーでnoindex, nofollow X-Robots-Tagを使う方法が記載されています。
動画については、動画掲載ページを削除して404とするか、当該ページにmeta noindexやHTTPレスポンスヘッダー(X-Robots-Tag)を追加するか、schema.orgの構造化データ(expires プロパティ)または動画サイトマップ内に有効期限を明示することが記載されています。
もちろん、既にインデックスされている画像や動画を検索結果から削除したい場合は、Webページと同様に削除リクエストが必要です。
重要でない画像、CSSやJavaScript等のリソースファイルを検索結果から除外する方法
これはあまり無いケースだと思いますが、重要でない画像、CSSやJavaScript等のリソースファイルを検索結果から除外する場合もrobots.txtで検索結果に表示しないようにできると記載されています。
(検索結果に表示しないようにできるではなく、「リソースファイルをブロックできます。」と記載されているのが少し気になりますが。)
重要でない画像、スクリプト、スタイル ファイルなどのリソースなしにページが読み込まれても、ページが重大な影響を受けないと考えられる場合は、robots.txt ファイルを使用してそうしたリソース ファイルをブロックできます。ただし、それらのリソースがないと Google のクローラーがページを把握しにくくなる場合はブロックしないでください。ブロックすると、それらのリソースを利用しているページを Google が適切に分析できなくなります。
最後に
robots.txtを使えばクローラーがブロックできるので、検索結果から当該ページを削除できるのかと思いきや、そもそもrobots.txtはそういう目的で使用するものではないことが分かりました。
ただ、PDFやWord等のOffice系ファイルの場合はmeta noindexが使えないのでHTTPレスポンスヘッダー(X-Robots-Tag)で対応する必要がありますが、Webサーバの設定(.confや.htaccess)で行う必要があるので面倒だなと思います。
本ページで記載した内容はあくまでもGoogleの仕様なので、Bing等の他の検索エンジンでは対応方法が異なる可能性があるので注意が必要です。