Googlebot が近日 HTTP/2 に対応します

2020 年 9 月 17 日(木曜日)

2020 年 11 月より、一部のサイトに対して Googlebot が HTTP/2 でのクロールを開始します。

主要なブラウザが HTTP の次のメジャー バージョンである HTTP/2(h2 と略)をサポートし始めて以降、複数のウェブ プロフェッショナルの皆様から、Googlebot はこのアップグレードされた新しいバージョンのプロトコルでクロールできるのか、というお問い合わせをいただきました

そこで本日は、Googlebot が 2020 年 11 月中旬より一部のサイトに対して HTTP/2 でのクロールをサポートすることを発表いたします。

HTTP/2 とは

前述のとおり、HTTP/2 とは、インターネットの主たるデータ転送用プロトコルである HTTP の次のメジャー バージョンです。HTTP/2 は、そのアーキテクチャ、およびクライアント(ブラウザなど)とサーバーに実装する機能により、前のバージョンよりも大幅に堅牢、効率的、高速になっています。詳しくは、HTTP/2 のトピックに関する詳細な記事をご覧ください。

今回の変更を実施する理由

一般に、この変更によって、クロールによるサーバー リソースの使用が効率化されると期待できます。h2 を使用すると、Googlebot はサーバーに対して TCP 接続を 1 つだけ開き、その接続を介して複数のファイルを並行して効率的に転送できます。複数の接続を開く必要はありません。開く接続の数が少ないほど、サーバーと Googlebot がクロールに費やすリソースは少なくて済みます。

仕組み

最初のフェーズでは h2 でクロールするサイトを少数に限定し、その後、初期サポート機能(リクエストの多重化など)からメリットを受ける可能性のあるサイトを徐々に追加していきます。

Googlebot は、どのサイトを h2 でクロールするかを、サイトが h2 をサポートしているか、およびサイトと Googlebot に HTTP/2 でクロールするメリットがあるか、に基づいて決定します。皆様のサーバーが h2 をサポートしていて、現時点で Googlebot によるクロールが頻繁に行われている場合は、すでにこの接続アップグレードの対象になっている可能性があり、何もする必要はありません。

サーバーが HTTP/1.1 のみをサポートしている場合も、問題はありません。HTTP/1.1 でのクロールに明確なデメリットはなく、クロールの質、量は変わりません。

オプトアウトの手順

Google の予備テストでは、HTTP/2 でのクロールに問題やインデックス登録への悪影響は見られませんでした。ただ、さまざまな理由により、サイトのオプトアウトが必要になる場合があることも認識しています。オプトアウトするには、Googlebot が h2 でサイトをクロールしようとしたときに 421 HTTP ステータス コードを返すよう、サーバーを設定します。すぐの設定が難しい場合は、Googlebot チームにメッセージを送信することでもオプトアウトできます(ただし、これは一時的な解決策です)。

Googlebot と HTTP/2 についてご質問がありましたら、想定される質問をご確認ください。質問が見つからない場合は、Twitterヘルプ フォーラムでお問い合わせください。

想定される質問

なぜ今 Googlebot をアップグレードするのですか?

Googlebot のクロールを h2 で可能にするソフトウェアが、本番環境で使用できるレベルに成熟したためです。

サーバーをすぐにアップグレードする必要はありますか?

アップグレードは任意です。ただし、Google が h2 でのクロールに切り替えるのは、h2 をサポートしていて、明らかにメリットが得られるサイトのみです。h2 でクロールするメリットが特にない場合は、Googlebot は h1 でのクロールを継続します。

サイトが h2 をサポートしているかどうかを確かめるにはどうすればよいですか?

Cloudflare のブログ投稿に、サイトが h2 をサポートしているかどうかを確認するさまざまな方法が紹介されています。ぜひご覧ください。

サイトを h2 にアップグレードするにはどうすればよいですか?

サーバーによってアップグレードの方法が異なります。サーバー管理者またはホスティング プロバイダに相談することをおすすめします。

自分のサイトと h2 で通信するよう Googlebot に働きかけるにはどうすればよいですか?

それはできません。サイトが h2 をサポートしていれば h2 でのクロールを受けることができますが、実際に受けるのは、それによってサイトと Googlebot にメリットがある場合のみです。たとえば、h2 でクロールしてもそれほどリソースの節約にならないサイトに対しては、Googlebot は引き続き HTTP/1.1 でクロールを行います。

h2 対応のすべてのサイトを h2 でクロールしないのはなぜですか?

評価の結果、h2 でクロールしても、特定のサイト(QPS が非常に低いサイトなど)では効果がほとんどないか、まったくないことが判明しました。そのため、サイトにとって明確なメリットがある場合にのみ、クロールを h2 に切り替えることにしました。Google は、パフォーマンスの向上を継続的に評価しており、今後切り替えの基準を変更する可能性はあります。

自分のサイトが h2 でクロールされるかどうかを確認するにはどうすればよいですか?

サイトが h2 でのクロールを受けられるようになると、Search Console に登録されているサイト所有者に、今後クロールのトラフィックの一部が h2 になる可能性があるというメッセージが届きます。サーバーログでも確認できます(たとえば、Apache を使用しているサイトの場合は access.log ファイルで確認できます)。

Googlebot はどのような h2 機能をサポートしていますか?

Googlebot は、h2 に導入されたほとんどの機能をサポートしています。サーバー プッシュ(レンダリングに役立つ可能性があります)など、一部の機能はまだ評価中です。

Googlebot は平文の HTTP/2(h2c)をサポートしていますか?

いいえ。HTTP/2 でのクロールを受けられるようにするには、ウェブサイトは HTTPS を使用して HTTP/2 をサポートする必要があります。これは、最新のブラウザの処理方法と同じです。

Googlebot は、クロールに使うプロトコル バージョンの決定に ALPN 拡張を使用しますか?

アプリケーション レイヤ プロトコル ネゴシエーション(ALPN)は、h2 でのクロールをオプトインしているサイトにのみ使用され、レスポンスとして受け入れられるプロトコルは h2 のみとなります。TLS handshake 中にサーバーが h2 以外のプロトコル バージョンで応答した場合、Googlebot はバックオフを行い、後に HTTP/1.1 で再試行します。

h2 のさまざまな機能はクロールにどう役立つのですか?

h2 の多くの機能のうち、特にメリットがあるものを以下にいくつか紹介します。

  • 多重化と同時実行: 開く TCP 接続の数が少なくなるため、消費するリソースが少なくて済みます。
  • ヘッダーの圧縮: HTTP ヘッダーのサイズが大幅に削減されるため、リソースを節約できます。
  • サーバー プッシュ: この機能はまだ評価中で、有効になっていません。レンダリングに役立つ可能性がありますが、現時点で具体的に述べることはできません。

特定の h2 機能とクロールとの関係についてさらに詳しくお知りになりたい場合は、Twitter でお問い合わせください。

h2 を使用することで Googlebot によるクロールの量や速度は向上しますか?

h2 の主なメリットは、サーバー側と Googlebot 側双方でのリソースの節約です。h1、h2 のどちらでクロールしても、サイトのインデックス登録には影響せず、そのためサイトのクロール予定量も変わりません。

h2 でクロールされることで、サイトにランキング上のメリットはありますか?

ありません。