robots.txtでブロックしたページのクロール日がSearch Consoleにレポートされるのはなぜ?

[レベル: 中級]

robots.txt でクロールをブロックした URL にも前回のクロール日が Search Console に記録されます。
しかし、Googlebot はその URL を実際にはクロールしてはいません。

クロール試行失敗の日付

長い期間にわたって robots.txt でクロールを禁止していた URL があるが、Search Console のページインデックスレポートの「robots.txt によりブロックされました」では「前回のクロール」の日付が定期的に更新されている。しかし、サーバーや CDN のログには Googlebot のアクセスは記録されていない。

これはどういうことなのか?

こうした趣旨の質問を Google の John Mueller(ジョン・ミューラー)が尋ねられました。

端的に状況をまとめるとこうなります。

  • robots.txt でクロールをブロックした URL が Search Console ではクロールされているように見える(クロール日が定期的に更新されているから)
  • サーバーログには Googlebot がクロールした形跡はない

robots.txt でブロックしたページでも Search Console では確かにクロール日が記録されています。

robots.txt によりブロックされましたページの前回のクロール日

禁止されているのにクロールしたということでしょうか?

ミューラー氏は次のように回答しました。

もしそうした URL が「ブロックされました」と表示されている場合、それは基本的にクロール試行の失敗を意味する。つまり、Google のシステムはクロールしようとしたものの、robots.txt によってブロックされたため、実際のクロールは行われていない。そのため、サーバーログには記録されない(または記録されるべきではない)ということになる。

「robots.txt によりブロックされました」で記録される前回のクロール日は、クロールした日ではなくクロールしようとした(でもできなかった)を意味するということです。

実際にはクロールしていないのですから、サーバーログには当然現れません。

これは、robots.txt でクロールを正常にブロックできていれば、たとえ Search Console でクロール日が更新されていたとしても、クロールバジェットを消費しないということにも繋がります。