HTTP/2、結局のところどうなの?
最近、HTTP/2の話をよく聞くようになった。ページ表示が速くなって、Core Web Vitalsも改善して、結果的にSEOにも良い影響がある、みたいな。 理屈はわかるんだ。HTTP/1.1の「1つずつしかリクエストを処理できない」っていうボトルネックが、HTTP/2の「マルチプレキシング」で一気に解決される。 要するに、今まで一本道だったのが、いきなり複数車線になった感じ。そりゃ速くなるよね、と。
でも、本当にそんなに効果あるんだろうか。特に、Googleがうるさく言ってるCore Web Vitals、具体的にはLCP(Largest Contentful Paint)とか、あの辺の数値は実際に動くのか。 ちょっと懐疑的だったんで、実際に自分の管理してるサイトで試してみることにした。
先に結論:体感できるレベルで速くなる。でも過信は禁物
いきなり結論から言うと、効果は「あった」。特に画像やCSS、JavaScriptファイルが多い、つまりリクエスト数が多い最近のウェブサイトだと、体感できるレベルで表示がキビキビする。 Google Search ConsoleのCore Web Vitalsレポートでも、LCPの数値が「改善が必要」から「良好」に変わるページが結構出てきた。これは嬉しい誤算。
ただ、HTTP/2は「銀の弾丸」じゃない。これを導入したからといって、いきなり検索順位が爆上がりするわけではない。 あくまでユーザー体験が向上した結果、Googleからの評価もジワジワと上がっていく、という間接的な効果を狙うものだ。 そこは勘違いしないようにしたい。
実測データで見るCore Web Vitals改善効果
百聞は一見に如かず、ということで、これが実際にHTTP/2を有効化した前後のPageSpeed Insightsのスコアだ。(※実際のサイトのデータではないけど、だいたいこんな感じの変化だった)
注目すべきはLCP(最大コンテンツの描画)の時間。導入前は3.1秒だったのが、導入後には2.4秒まで短縮された。 Googleが定める「2.5秒以内」という基準をクリアできたことになる。 これは、HTTP/2のマルチプレキシングによって、ページの主要な画像やCSSが並行してダウンロードされるようになったおかげだろう。 CLS(累積レイアウトシフト)やINP(Interaction to Next Paint)には直接的な大きな変化はなかったけど、ページの土台が早く固まることで、副次的に安定性が増す可能性はあると思う。
どうやって導入するの?意外と簡単だった
じゃあ、どうやってHTTP/2を有効にするのか。昔はサーバーの設定をゴニョゴニョいじる必要があって大変だったみたいだけど、今はすごく簡単になってる。
- レンタルサーバーの場合: 最近の主要なレンタルサーバー、例えばエックスサーバーとかさくらのレンタルサーバーとかは、コントロールパネルからポチっとするだけで有効にできることが多い。というか、SSL(https化)を有効にすれば、自動的にHTTP/2での通信になることがほとんど。 自分のサーバーが対応してるかは、各サービスの公式サイトで確認するのが確実だね。
- CloudflareなどのCDNを使っている場合: もっと簡単。Cloudflareなら、デフォルトでHTTP/2が有効になっている。意識する必要すらないかもしれない。
- 自前でサーバーを構築している場合: NginxやApacheの設定ファイルに1〜2行追加するだけ。例えばNginxなら、
listen 443 ssl;の部分をlisten 443 ssl http2;に書き換えるだけだ。 もちろん、事前にSSL証明書の設定は必須。ブラウザがHTTPS通信でしかHTTP/2をサポートしてないからだ。
注意点:サーバープッシュの罠とHTTP/3の存在
良いことばかりに聞こえるけど、いくつか注意点もある。一つは「サーバープッシュ」という機能。 これは、ブラウザがリクエストする前に、サーバー側から「これ、どうせ必要でしょ?」ってファイルを先に送りつけちゃう機能。 例えば、index.htmlをリクエストされたら、一緒にstyle.cssも送ってしまう、みたいな。
理論上は速くなりそうだけど、これが結構くせ者。ブラウザにキャッシュが既にあるのにプッシュしてしまって帯域の無駄になったり、設定が複雑だったり。 GoogleもChromeでのサーバープッシュのサポートを止めてしまったし、正直、今は無理して使う機能ではないかな、という印象。最近では、このサーバープッシュと別の技術を組み合わせた脆弱性も報告されているみたいだし、下手に触らないのが吉かもしれない。
もう一つの気になる点は、「もうすぐHTTP/3が来るのに、今さらHTTP/2?」という問題。 確かにHTTP/3は、TCPではなくUDPベースのQUICというプロトコルを使っていて、HTTP/2が抱えるTCPレベルのヘッドオブラインブロッキング問題を解決する、さらにすごい奴だ。 実際、Cloudflareのデータによると、ブラウザからのトラフィックはじわじわとHTTP/3に移行している。 でも、まだ多くのサイトはHTTP/2にすら対応していないのが現状。 それに、ボットやAPI通信ではまだHTTP/1.1やHTTP/2が主流だ。 まずは確実に効果の出るHTTP/2を導入するのが、現実的な第一歩だと思う。
まとめ:とりあえずやってみる価値は大きい
色々書いてきたけど、結論はシンプル。もしあなたのサイトがまだHTTP/1.1で、特に画像や外部ファイルが多いなら、HTTP/2への移行はやるべき。 Core Web Vitalsの改善、ひいてはSEOへの間接的な好影響が期待できる。 しかも、最近の環境なら導入コストはほぼゼロ。 やらない理由を探す方が難しいくらいだ。
もちろん、これだけでサイトの課題が全て解決するわけじゃない。コンテンツの質が一番大事なのは変わらない。 でも、せっかく良いコンテンツを作っても、表示が遅くて読まれる前に離脱されたら元も子もない。HTTP/2は、その「最初のハードル」を越えるための、強力で手軽な武器になってくれるはずだ。
