主流のウェブブラウザがHTTP、HTTP/2(略してh2)をサポートし始めて以来 、ウェブマスター達はGooglebotが最新バージョンのプロトコルをクロールできるかどうかを尋ねてきました。

HTTP/2とは

前述のように、これはHTTPの次のメジャーバージョンであり、インターネットにおいて主にデータの転送に使用するプロトコルです。HTTP/2(h2)はそのアーキテクチャとクライアント(ウェブブラウザなど)及びサーバーに実装する機能により、以前のバージョンよりもはるかに堅牢で効率的で高速になりました。

変更を行う理由

一般的に、この変更によりサーバーリソースの使用に関してクロールがより効率的になることが期待されます。h2を使用するとGooglebotはサーバーへの単一のTCP通信を行い複数のファイルを並列で効率的に転送することができるようになります。複数の通信を要求する必要はありません。通信数が少ないほどサーバーとGooglebotがクロールに費やすリソースが少なくなります。

使い方

最初のフェーズではh2を介して少数のサイトをクロールし、リクエストの多重化などの恩恵を受けることができるサイトに徐々にクロールを増やしていきます。

Googlebotはサイトがh2をサポートしているかどうか、及びサイトとGooglebotがHTTP/2を介してクロールするメリットがあるかどうかに基づいてクロールするサイトを決定します。サーバーがh2をサポートしていて、Googlebotがサイトを既に多くクロールしている場合はHTTP/2へのアップデートの対象となる可能性があります。ウェブマスターは何もする必要はありません。

サーバーがまだHTTP/1.1しか通信しない場合でも問題はありません。このプロトコルを介してクロールする明確なデメリットはありません。クロールは質、量ともにHTTP/1.1もHTTP/2も同じままです。

オプトアウトする方法

HTTP/2の予備テストではページのインデックス作成に問題や悪影響はありませんでしたが、様々な理由からサイトをHTTP/2経由のクロールからオプトアウトすることもできます。オプトアウトを行うにはGooglebotがサイトをh2経由でクロールしようとした時に421 HTTPステータスコードで応答するようにサーバーに指示します。現時点でそれが不可能な場合はGooglebotチームにメッセージを送信できます(ただしこれは一時的なものです)。

よくありそうな質問

なぜ今、Googlebotをアップデートするのですか?

Googlebotがh2をクロールするために必要とするソフトウェアが十分に成熟し、本番環境で使用できるようになったから。

サーバーをできるだけ早くアップデートする必要がありますか?

それはあなた次第。Googleは単にクロールするプロトコルをh2に切り替えるだけではあるが、明らかにその恩恵を受ける。h2を介してクロールする明確なメリットがない場合でもGooglebotは引き続きh1を介してクロールする。

サイトがh2をサポートしているかどうかをテストするにはどうすれば良いですか?

Cloudflareにはサイトがh2をサポートしているかどうかをテストするための方法が紹介されているブログ記事がある。

サイトをh2にアップデートするにはどうすれば良いですか?

これは使っているサーバーに依存する。サーバー管理者またはホスティングプロバイダーに相談することをお勧めする。

Googlebotに自分のサイトをh2通信させるにはどうすれば良いですか?

できない。サイトがh2をサポートしている場合、h2を介してクロールすることはできるがそれはサイトとGooglebotにとって有益である場合に限られる。例えばh2を介してクロールしてもリソースの大幅な節約にならない場合はHTTP/1.1を介してサイトをクロールし続けるだけ。

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

Googleの評価ではh2を介してクロールした時に特定のサイト(例えばQPSが非常に低いサイト)には殆どメリットが無いことが分かった。そのためサイトに明らかなメリットがある場合にのみクロールをh2に切り替えることにした。パフォーマンスの向上を引き続き評価し将来の切り替え基準を変更する可能性はある。

サイトがh2通信でクロールされているかどうかを確認するにはどうすれば良いですか?

サイトがh2を介してクロールできるようになると、サーチコンソールに登録されたそのサイトの所有者に今後クロールするトラフィックの一部がh2になる可能性があることを示すメッセージが表示される。サーバーログ(例えばサイトがApacheで実行されている場合はaccess.logファイル)を確認することもできる。

Googlebotでサポートされているh2機能は何ですか?

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

GooglebotはプレーンテキストのHTTP/2(h2c)をサポートしていますか?

いいえ。HTTP/2を介してクロールできるようにするにはウェブサイトでHTTPSを使用しHTTP/2をサポートする必要がある。これは最新のブラウザの処理と同等である。

GooglebotはALPN拡張機能を使用してクロールに使用するプロトコルバージョンを決定しますか?

アプリケーションレイヤープロトコルネゴシエーション(ALPN)はh2を介してクロールするようにオプトインされているサイトにのみ使用され、応答するプロトコルはh2のみ。サーバーがTLSハンドシェイク中にh2以外のプロトコルバージョンで応答した場合はGooglebotはバックオフした後でHTTP/1.1に戻る。

h2の機能がクロールにおいてどのように役立ちますか?

h2でクロールすることのメリットは次の通り。

  • 多重化と同時実行性:TCP通信が少ないということは費やされるリソースが少ないということ。
  • ヘッダー圧縮:大幅に削減されたHTTPヘッダーサイズはリソースを節約する。
  • サーバープッシュ:この機能はまだ有効になっていない。まだ評価段階である。これはレンダリングに役立つかも知れないが現時点では具体的なことは何もない。

Googlebotはh2よりも多く、またはより速くクロールしますか?

h2の主な利点はサーバー側とGooglebot側の両方でリソースを節約できることである。h1とh2のどちらを使用してクロールするかはサイトのインデックス作成方法には影響しない。つまりサイトをクロールする回数には影響しない。

h2を介してクロールされるサイトのランキングにメリットはありますか?

ない。

お気持ち

感想としては「はいそうですか」という感じですが一応、僕のサイトでもウェブツールで調べてみました。

HTTP/2とALPNに対応していました。さすがヘテムル

参考

コメントを投稿する

* が付いている項目は必須です。
メールアドレスが公開されることはありません。