Webパフォーマンスにおける比例的推論

ボトルネックとは、絶対的なしきい値を超えるフェーズではなく、合計時間の中で最も大きな割合を占めるフェーズのことである。

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-03-17

Lighthouseは数値を教えてくれるが、その数値が問題かどうかまでは教えてくれない。各フェーズを全体のパーセンテージに変換しよう。最大のパーセンテージがあなたのボトルネックである。絶対的なしきい値を超えるフェーズではない。これによって、どの修正が実際にCore Web Vitalsを改善するかが変わってくる。

2026年3月にArjen Karelが最終レビュー

絶対的なしきい値の問題点

Lighthouseが「Render Delayが350msである」と報告したとする。これに対してどう対処すべきか?

合計のLCPが700msの場合、350msのRender Delayは問題の半分を占めている。それを修正すべきだ。

しかし、合計のLCPが4,200msでTTFBが3,800msの場合、350msのRender Delayは全体の8%に過ぎない。それをゼロに修正したところで、350msしか短縮されない。依然として3,850msのLCPが残り、不合格となる。問題の90%はサーバーにあるのだ。

コンテキストのない絶対数は無駄な努力を招く。パーセンテージに変換すれば、ボトルネックは明白になる。

最大のパーセンテージから修正する

LCPINPも、いくつかのフェーズに分解される。各フェーズが全体の一部を消費している。最も大きな部分がボトルネックである。そこから修正しよう。

これは複雑なことではない。しかし、多くのパフォーマンスツール、さらにはAIエージェントでさえ、このステップをスキップし、固定のしきい値を超えるものを最適化しようとするのは驚くべきことだ。

LCPの例

モバイル製品ページのLCPが3,820ms(不良)だとする。実際のユーザーからのフェーズ内訳は以下の通り:

16%のRender Delayをゼロに修正すれば、620ms短縮できる。55%のLoad Delayの問題を修正すれば、2,000ms以上短縮できる。どちらも現実の問題だが、ボトルネックは1つである。

Load Delayが55%ということは、ブラウザがHTMLを受信したにもかかわらず、ヒーロー画像を2秒以上リクエストしなかったことを意味する。ブラウザは画像を見つけられないのだ。画像が、preload scannerが見つけられるHTML内に存在していない。preloadヒントを追加すれば、LCPをほぼ半分に減らすことができる。

INPの例

チェックアウトページのINPが350ms(改善が必要)だとする。フェーズ内訳は以下の通り:

パーセンテージを考慮しなければ、エージェントは70msが何らかのしきい値を超えているという理由でInput Delayを最適化するだろう。パーセンテージを示せば、Presentationをターゲットにする。時間の57%がそこで費やされているからだ。

Presentation(巨大なDOM、CSS containmentの欠如、高負荷な再描画)を修正することで、INPは350msから200ms以下に改善する。これで「改善が必要」から「良好」に変わる。Input Delayを70msから0msに修正(あり得ないが、仮定として)しても、70msしか短縮されない。依然として280msで不合格となる。同じ労力でも、結果は異なる。

エージェントがこれをスキップするとどうなるか

比例的コンテキストを持たないAIエージェントは、ツールが指示した通りに行動する。Lighthouseが長いTBTを警告すれば、エージェントはTBTを最適化する。その変更は技術的には正しい。だが、TBTは問題の20%に過ぎず、57%のボトルネックは手つかずのままなので、現実世界での影響は最小限にとどまる。

私はAI生成のパフォーマンス修正でこのパターンを絶えず目にしている。修正は症状に対処するだけで、ボトルネックは残ったままである。フィールドデータは改善しない。開発者は、なぜ「正しい」最適化が何の効果ももたらさないのかと疑問に思うだろう。

片方のアプローチは時間を無駄にし、もう片方は実際の問題を解決する。

CWV Superpowersなしでこれを行う方法

手動で行うこともできる。LCPの場合:Chrome DevToolsを開き、パフォーマンス・トレースを実行して、タイムラインでLCPマーカーを見つけ、4つのフェーズを測定する。それぞれを合計LCPのパーセンテージに変換する。最も高いパーセンテージから修正する。

INPの場合:Web Vitals Chrome拡張機能、またはeventエントリタイプのPerformanceObserverを使用する。INPのインタラクションを記録し、3つのフェーズの所要時間を取得して、パーセンテージに変換する。

あるいは、CWV Superpowersに、単一のラボのトレースではなく、何千もの実際のセッションからのフィールドデータを使って、これを自動的に行わせることもできる。

About the author

Arjen Karel is a web performance consultant and the creator of CoreDash, a Real User Monitoring platform that tracks Core Web Vitals data across hundreds of sites. He also built the Core Web Vitals Visualizer Chrome extension. He has helped clients achieve passing Core Web Vitals scores on over 925,000 mobile URLs.

CoreDashはMCPを標準搭載。

ClaudeでもどのAI agentでも繋がります。「先週火曜のINPスパイクはなぜ?」と聞けます。

仕組みを見る
Webパフォーマンスにおける比例的推論Core Web Vitals Webパフォーマンスにおける比例的推論