Core Web Vitals — 数字を上げるのではなく、何が遅いかを特定する
LCP・INP・CLS は原因ではなく症状の分類。3つが何の代理指標なのかを知ると、直す場所が工程の中で決まる。
この記事の進み方
What — 3つが何を測っているのか
Core Web Vitals は3つの指標です。名前を覚えるより、何の代理指標なのかを押さえるほうが役に立ちます。
表示されるまで待たされる
Largest Contentful Paint- 測っているもの
- 最大の要素が描かれるまでの時間
- 利用者の困りごと
- 何も出ないまま待つ
- 良いとされる値
- 2.5 秒以内
- 合成値か
- **合計。内訳は含まない**
- –サーバーの応答・リソースの読み込み・描画の合計
- –どこが支配的かは、この数字からは分からない
- –最大要素がどれかは、画面幅や内容で変わる
どれも「利用者が何に困るか」を1つの数字に代理させたもの。数字そのものに意味はなく、困りごとの分類として使う。
- フィールドデータ
- 実際の利用者の環境で集めた値。端末も回線もばらばらで、これが評価の対象になる。
- ラボデータ
- 決まった条件で測った値。再現性はあるが、利用者の実際とは違う。
- TTFB
- Time To First Byte。サーバーが最初の1バイトを返すまで。LCP の内訳の先頭。
- パーセンタイル
- 評価は 75 パーセンタイルで見る。平均ではなく「4人に3人はこれより速い」という値。
LCP は合計値。分解しないと直せない
冒頭の事故はここでした。LCP は4つの区間の合計です。
- 1TTFBサーバーが返し始めるまで重い
- 2リソースの読み込み開始までHTML を読んで、画像の存在を知るまで中
- 3リソースの読み込み画像そのもののダウンロード軽い
- 4描画読み終わってから画面に出るまで中
ブラウザの開発者ツールで、LCP の内訳は区間ごとに出る。まずそこを見る。画像を疑うのは、画像の区間が長かったときだけ。
同じ 4.2 秒でも、どこが支配的かで直す場所がまったく違う。合計だけ見ていると、全体の1割を削って満足する。
LCP が 4.2 秒でした。最初にやるべきことはどれですか?
Why — なぜこの3つなのか
速さを表す数字は昔からありました。読み込み完了、最初の描画、リソースの総量。どれも**「利用者が何に困っているか」とずれていました**。
読み込み完了は、画面がとっくに使える状態でも、末尾の解析タグを待って遅く出ます。最初の描画は、背景色が塗られただけで「描画された」ことになります。
Core Web Vitals は逆から作られています。利用者が困る場面を3つに分類して、それぞれに数字を当てた。
| 困りごと | 指標 |
|---|---|
| 何も出ないまま待つ | LCP |
| 押したのに反応しない | INP |
| 押そうとしたものが動く | CLS |
だから3つなのであって、技術的な工程に対応しているわけではありません。症状の分類です。
75 パーセンタイルで見る理由
評価は平均ではなく 75 パーセンタイルです。「4人に3人はこれより速い」という値。
平均だと、速い多数が遅い少数を隠します。ハイエンドの端末で 1 秒、古い端末で 12 秒でも、平均は良い数字になります。困っている人がいることが見えません。
かといって最悪値だと、極端な1件に振り回されます。75 パーセンタイルは、無視できない多数派の中で、いちばん困っている層を見る位置です。
ラボとフィールドが食い違う
手元の開発者ツールで測ると良い数字が出るのに、実際の利用者の値は悪い。よくあります。
理由は単純で、測っている条件が違うからです。手元は高速な回線、高性能な端末、キャッシュ済み、拡張機能なし。利用者はその逆が混ざります。
ラボの数字は変更の前後を比べるのに向きます。フィールドの数字はいま困っている人がいるかを知るのに向きます。用途が違うので、片方でもう片方を代用できません。
INP が悪いとき、いちばん疑うべきものはどれですか?
演習 — まず自分で判断する
解説を読む前に、まず自分で判断してみてください。ここで一度詰まっておくと、 次の節の判断軸が「なるほど」ではなく「そう来たか」に変わります。
この数字から、どこを調べますか?
- EC サイトの商品一覧。フィールドデータの75パーセンタイルで LCP 3.8 秒、INP 450ms、CLS 0.02
- 手元の開発者ツールでは LCP 1.2 秒、INP 90ms
- 一覧は商品を50件表示し、それぞれに画像がある
- 検索と絞り込みは、押してから結果が出るまで体感で遅い
- サーバーの応答時間は監視していて、平均 120ms
- · ラボとフィールドが食い違う理由
- · 3つの数字のうち、どれから手を付けるか
- · 平均 120ms という監視値をどう扱うか
「LCP を 2.5 秒以内にしてほしい」と言われたとき、何を確認しますか
- 依頼してきたのは、計測ツールのレポートを見た非エンジニア
- 期日は今月末
- 断りたいわけではなく、正しく進めたい
読み終わりましたか?
読了にすると、これを前提とする記事がロードマップで開放されます。