HTTP/2によるGooglebotのクロールが始まる

[レベル: 上級]

Googlebot が HTTP/2 でのクロールを開始しました。

2020 年 11 月から HTTP/2 でクロールし始めることを Google は 9 月下旬にアナウンスしていました。
予定どおりの実施です。

サーバーログで、Googlebot の h2 クロールを確認

予想外に(理由は後述)、HTTP/2 による Googlebot のクロールを僕のブログでもサーバーログで確認できました。

www.suzukikenichi.com 172.69.69.207 - - [14/Nov/2020:03:46:49 +0900] "GET /blog/how-to-set-up-503-error/ HTTP/2.0" 200 32415 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
www.suzukikenichi.com 162.158.187.120 - - [14/Nov/2020:04:19:23 +0900] "GET /blog/how-to-remake-sites-hit-by-penguin-update/ HTTP/2.0" 200 36277 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

1 つ目はスマートフォン用 Googlebot のアクセスログです。
2 つ目はパソコン用 Googlebot のアクセスログです。
プロトコルに “HTTP/2.0” が記録されています。

こちらは、従来の HTTP/1.1 でのアクセスログです。

www.suzukikenichi.com 172.69.71.196 - - [14/Nov/2020:04:21:26 +0900] "GET /blog/crawl-rate-let-google-optimize-for-my-site/ HTTP/1.1" 200 34331 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
www.suzukikenichi.com 172.69.70.181 - - [14/Nov/2020:03:47:04 +0900] "GET /blog/how-to-treat-out-of-stock-items/ HTTP/1.1" 200 35426 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

もっともクロールの大半は、HTTP/1.1 です。
決して、すべてが HTTP/2 に切り替わってはいません。

h2 クロールに関する記述をドキュメントに追加

Search Console の ヘルプページから、新しく公開された Google 検索セントラルのサイトに移動した Googlebot の技術ドキュメントに、HTTP/2 でのクロールに関する記述が追加されました(この記事を公開している時点では、日本語ページは未更新)。

Generally, Googlebot crawls over HTTP/1.1. However, starting November 2020, Googlebot may crawl sites that may benefit from it over HTTP/2 if it’s supported by the site. This may save computing resources (for example, CPU, RAM) for the site and Googlebot, but otherwise it doesn’t affect indexing or ranking of your site.

To opt out from crawling over HTTP/2, instruct the server that’s hosting your site to respond with a 421 HTTP status code when Googlebot attempts to crawl your site over HTTP/2. If that’s not feasible, you can send a message to the Googlebot team (however this solution is temporary).

ほとんどの場合、Googlebot は HTTP/1.1 経由でクロールします。しかしながら、2020 年 11 月からは、サイトが HTTP/2 をサポートしており、利点があるかもしれない場合は、Googlebot は HTTP/2 でクロールすることがあります。サイトと Googlebot のコンピューティングリソース(たとえば、CPU や RAM)を HTTP/2 クロールは節約できるかもしれません。しかし、それ以外の点では、HTTP/2 クロールはインデックスやランキングには影響しません。

HTTP/2 でのクロールからオプトアウトするには、HTTP/2 でクロールしようとGooglebot が試みた際に、421 の HTTP ステータスコードを返すように、サイトを運用しているサーバーに指示します。
もしこれが実行できない場合は、Googlebot チームに報告できます(ただしこの解決法は一時的です)。

HTTP/2 でのクロールは、ページ数が多く、配信するリソースの数も多い大規模サイトから始まると予想していました。
そうしたサイトに恩恵があるだろうと期待できるからです。

なので、僕のブログ用のような規模が小さく静的なサイトには、少なくとも初めのうちは HTTP/2 ではクロールしないだろうと考えていました。
ところが、いざ蓋を開けてみると HTTP/2 クロールを発見できたので、正直驚いています(Googlebot を偽装したクローラという可能性もゼロではないですが)。
もっとも、どれだけメリットがあるのかは不確かです。
それでも、HTTP/2 クロールに悪いことはまったくありません。

管理サイトのサーバーログをあなたも確認してください。
HTTP/2 クロールの痕跡を見つけられるかもしれません。

大規模サイトでは、コンピューティングリソースの消費を抑えられたりクロール効率がよくなっていたりすれば、Googlebot の HTTP/2 クロールはかなり嬉しい改良になるではないでしょうか。

この記事の関連動画