Google SEO 上級

Core Web Vitals 実践対策:LCP/INP/CLS の診断と優先順位

Core Web Vitals の 3 指標の合格ラインは LCP 2.5 秒以下、INP 200 ミリ秒以下、CLS 0.1 以下で、実ユーザーデータの 75 パーセンタイルで判定します...

Core Web Vitals:先修 LCP,再修 INP,最后 CLSCore Web Vitals: fix LCP first, then INP, then CLS 合格线:LCP ≤ 2.5 秒、INP ≤ 200 毫秒、CLS ≤ 0.1Pass: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1 指标Metric 合格线 / 待改进 / 差Good / Needs work / Poor 首要修复方向Top fix LCPLCP ≤2.5s / 2.5–4s / >4s≤2.5s / 2.5–4s / >4s 首屏图 CDN + 字体 preloadCDN hero image + font preload INPINP ≤200ms / 200–500ms / >500ms≤200ms / 200–500ms / >500ms 主线程 JS 拆分 + 长任务消除Split main-thread JS, remove long tasks CLSCLS ≤0.1 / 0.1–0.25 / >0.25≤0.1 / 0.1–0.25 / >0.25 图片宽高 + 广告位占位img dimensions + reserved slots 反直觉:Lighthouse 95 分不等于 Core Web Vitals 合格Counter-intuitive: Lighthouse 95 ≠ CWV pass Lighthouse 是实验室数据,合格要看 CrUX 真实用户 75 分位Lab vs field: pass requires 75th percentile CrUX data 修复顺序:LCP 收益最大,CLS 改完即稳定,INP 最耗时但必须做Order: LCP highest ROI, CLS stable once fixed, INP slowest
Core Web Vitals 3 指標のしきい値、対策の方向性、優先順位

Core Web Vitals 実践対策:LCP/INP/CLS の診断と優先順位

結論から言うと:Core Web Vitals の 3 指標の合格ラインは LCP 2.5 秒以下、INP 200 ミリ秒以下、CLS 0.1 以下で、実ユーザーデータの 75 パーセンタイルで判定します。対策の順番は 3 つを同時に進めるのではなく、LCP が最初(効果が最大)、次に CLS(直せばすぐ安定)、最後に INP(最も時間がかかるが必須)です。直感に反する判断として、Lighthouse のローカルスコアが 95 点でも合格とは言えません。これはラボデータだからです。SEO シグナルを実際に決めるのは CrUX の実ユーザー 28 日間ローリングデータです。B2B 自社サイトに多いボトルネックは、ファーストビューの商品画像が CDN を経由していない、JS が分割されておらずメインスレッドがブロックされる、広告枠とフォントの読み込みにプレースホルダーがない、の 3 つです。

1. 3 指標がそれぞれ何を見るか:まず切り分けてから手を動かす

多くのチームはいきなり Lighthouse を回し、赤いバツ印を見てやみくもに直し始めます。まず各指標が何を測っているのかを押さえないと、正しい対処はできません。

指標 何を測るか 合格ライン よくある原因
LCP 最大コンテンツ描画 ファーストビューの最大要素が読み込み完了するまでの時間 2.5秒以内 ファーストビュー画像が大きすぎる、フォントのブロック、サーバー応答が遅い
INP 操作から次の描画まで ユーザーがクリックした後の画面応答の遅れ ≤ 200ミリ秒 メインスレッドの長いタスク、JS のサイズ過大、サードパーティスクリプト
CLS 累積レイアウトシフト ページ読み込み中に要素がどれだけ動くか 0.1以下 画像に幅と高さがない、広告枠にプレースホルダーがない、フォントの切り替え

判定は必ず 75 パーセンタイルで行います。100 人の訪問者のうち上位 75 人が基準を満たして初めて合格です。平均値や中央値に意味はありません。CrUX データは Search Console の体験レポートで確認できます。Google のランキングシグナルが使うのと同じデータです。

さらに 3 指標は互いに影響し合う点にも注意が必要です。画像を圧縮すれば LCP は下がりますが、画像の lazy load の設定を誤ると、かえって LCP 要素が 2 フレーム目にずれ込みます。フォントの preload は LCP を下げますが、preload するフォントが多すぎるとネットワークリクエストを圧迫し INP に悪影響します。1 項目を変更したら 14 日待って実ユーザーデータを確認し、連続して変更しないでください。

2. LCP の対策:効果が最大なので最初にやる

LCP は通常、3 指標の改善効果の 50% 以上を占めます。4 つの段階で構成されるので、まずどこで詰まっているかを見ます。

LCP の段階 診断ツール よくあるボトルネック 対策
TTFB サーバー応答 WebPageTest ウォーターフォール PHP のレンダリングが遅い、CDN を経由していない CDN エッジキャッシュ、PHP のアップグレード
リソース読み込み Chrome DevTools パフォーマンス ファーストビュー画像が未圧縮、preload していない WebP/AVIF、重要な画像を preload
リソースのレンダリング Lighthouse の改善提案 フォントがレンダリングをブロック font-display: swap + preload
クライアントサイドレンダリング Trace パフォーマンスパネル SPA は JS のダウンロード完了まで描画しない SSR またはスケルトン画面

事例:B2B 製造業サイトのファーストビューにある製品画像が1.8MBの未圧縮で、TTFBは正常なのにLCPが4.2秒で止まっていた。画像をWebPに変換して320KBまで圧縮し、fetchpriority=”high”を付けたところ、LCPは1週間で1.9秒に短縮。変更したのはimgタグ1つだけで、サーバー設定は一切触っていない。

CDNのノード選定とキャッシュ戦略はTTFBに直結します。詳しくはCDNによるグローバル高速化をご覧ください。多言語サイトの画像ローカライズは多言語サイトのグラフ処理とあわせて検討する必要があります。

三、INPの修正:最も手間がかかるが省略できない

INPは2024年3月にFIDを置き換えた新しい指標で、ユーザーの操作から画面が実際に反応するまでの遅延を測ります。問題がJSバンドル全体に散らばっているため、LCPより修正が難しい指標です。

問題 診断方法 対策 期待できる効果
メインスレッドの長いタスクが50ms超 Performanceパネルで長いタスクを確認 コード分割、Web Worker INPが100〜200ミリ秒改善
サードパーティスクリプトのブロック Coverageパネルで割合を確認 遅延読み込み、async/defer INPが50〜150ミリ秒改善
イベントコールバックが重い コールスタックで時間のかかる関数を確認 デバウンス・スロットリング、コールバックの分割 INPが30〜80ミリ秒改善
レンダリングを妨げるリソース Lighthouseで未使用のCSS/JSを確認 クリティカルCSSのインライン化、非クリティカルの遅延 INPが50〜100ミリ秒改善

意外なポイント:INPの悪化は自分のコードだけが原因とは限りません。B2BサイトにはLinkedInピクセル、HubSpotのフォームプラグイン、チャットサポートのスクリプトが埋め込まれていることが多く、この3つだけでメインスレッドを300ミリ秒以上ブロックすることがあります。まずサードパーティスクリプトを読み込み優先度順に整理するほうが、業務コードを直すより早く効果が出ます。

四、CLSの修正:対応すればすぐ安定する取り組みやすい改善

CLSは3指標の中で最も修正しやすいものです。CLSの問題の90%は2つの原因に集約されます。画像に幅と高さが指定されていない、広告や埋め込みコンテンツにプレースホルダーがない。

CLSの主な原因 判断方法 対策
画像にwidth/heightがない DevToolsでレイアウトシフトを確認 imgタグにwidth/height + aspect-ratioを追加
フォント切り替え時のちらつき FOIT/FOUTの発生 font-display: swap + size-adjust
広告・埋め込みにプレースホルダーがない 広告の読み込み後にコンテンツが押し出される 固定高さのコンテナを確保
動的に挿入されるバナー 上部の通知バーが表示される スペースを確保し、コンテンツを押し出さない

事例2:海外展開するSaaSサイトのブログでCLSが長期間0.35だった。原因は記事上部の「ニュースレター登録」バナーがJSの読み込み後に挿入され、記事全体を120ピクセル下に押し出していたこと。バナーをサーバーサイドレンダリングに変更し、120pxのプレースホルダーを確保したところ、CLSは1週間で0.04に低下した。

五、診断ツールと検証フロー

フェーズ ツール データソース 検証期限
問題の特定 CrUXレポート / GSCの体験レポート 実ユーザーの28日間データ 週に1回確認
ラボ環境での再現 Lighthouse / WebPageTest Moto G4・低速4Gをシミュレート 修正前に1回実行
本番環境の監視 CrUX / RUMツール 75パーセンタイル指標の推移 公開後14日
検収 GSCのCore Web Vitalsレポート 3種類の指標がすべて「合格」 公開後28日

よくある失敗はLighthouseのローカルスコアだけを見てしまうことです。Lighthouseが走るのはクリーンな環境で、実際のユーザーのネットワークも、サードパーティスクリプトも、ログイン状態もありません。ローカルでは95点なのにCrUXが不合格というサイトは非常に多くあります。修正後は必ず28日間のローリングデータが更新されるまで待ち、公開3日目で成功と判断しないでください。

パフォーマンス最適化とCore Web Vitals指標の体系自体が継続的な取り組みであり、一度きりのプロジェクトではありません。公式サイト保守期間にはCWV月次レポートを定例項目として入れるべきです。

六、パフォーマンスバジェットを開発フローにどう組み込むか

CWVを一巡修正しても、それで終わりではありません。新機能、新しいプラグイン、新しいマーケティングスクリプトが指標を再び悪化させます。正しいやり方は、パフォーマンスバジェットをリリースフローに組み込み、毎回の公開前にチェックを挟むことです。

ページの種類 LCPバジェット INPバジェット CLSバジェット JS総量バジェット
トップページとランディングページ 2.0秒以内 150ミリ秒以内 0.05以内 250KB gzip以内
製品詳細ページ 2.5秒以内 ≤ 200ミリ秒 0.1以下 350KB gzip以内
ブログ記事ページ 2.5秒以内 ≤ 200ミリ秒 0.1以下 300KB gzip以内
お問い合わせ・フォームページ 2.0秒以内 150ミリ秒以内 0.05以内 200KB gzip以内

毎回のリリース前に、ステージング環境でLighthouse CIを使いこれらの主要ページを計測し、バジェットを超えたらマージを許可しないようにします。マーケティングチームが急遽追加するポップアップ、サポートチャットのスクリプト、ピクセルトラッキングは、レビューチェックリストを通すようにします。このスクリプトは遅延読み込みできるか、ファーストビューの後に回せるか、特定のページだけで読み込めるか。3か月に一度CrUXの月次レポートを作り、75パーセンタイルの推移を見て、ある種のページが2か月連続で悪化していれば改善を起案します。

もう一つ見落とされがちなのが、画像アセットの管理です。新しく書いたブログ記事に未圧縮の原画像をそのままアップロードすると、LCPはすぐに悪化します。コンテンツ管理画面に画像圧縮のパイプラインをデフォルトでつなぎ、アップロード時に自動でWebPへ変換し、適切なサイズまで圧縮し、srcsetを生成するようにすれば、後から1記事ずつ直すよりはるかに楽です。このパイプラインはメディアアセット管理の流れと揃えており、詳しくはメディア資産の管理。

サードパーティスクリプトはINP悪化の最大の原因です。マーケティングチームが新しいキャンペーンのために急遽追加するピクセル、チャットプラグイン、フォーム埋め込みは、遅延読み込みされておらず、すべてファーストビューのレンダリング段階に集中してしまいます。四半期ごとにサイト全体のサードパーティスクリプトの一覧を出して見直します。どれがまだ使われているか、どれをファーストビューの後に遅延できるか、どれがもう誰も見ておらず削除できるか。このレビューをリリースフローの一環として定着させれば、毎回後から最適化するよりずっと楽です。

最後に検証の基準を強調します。修正後はLighthouseのローカルスコアだけを見ず、CrUXの実ユーザー28日間ローリングデータが更新されるのを待ってください。ローカルのスコアは問題の特定にしか使えず、成功を宣言するためには使えません。毎月のCWV月次レポートをエンジニアリングとマーケティングの責任者に定期的に送り、パフォーマンスをチーム横断で見る指標にし、SEO担当者一人のKPIにしないようにしましょう。

FAQ よくある質問

LCP、INP、CLSのうち、どれから直すべきですか?
LCP → CLS → INP の順で進めます。LCP は改善効果の 50% 以上を占め、対策も明確です(画像圧縮、CDN、preload)。CLS は直せばすぐ安定し、コストも最小。INP は最も手間がかかり JS バンドルの分割が必要ですが、2024 年以降はランキング要因なので必ず対応します。3 つを同時に進めるとリソースが分散するため、2 週間に 1 指標がおすすめです。
Lighthouse で 95 点なのに Search Console で不合格になるのはなぜ?
Lighthouse はクリーンな模擬環境で計測するラボデータです。一方 Search Console は CrUX の実ユーザー 28 日間のローリングデータを使っており、実際のネットワーク、実機、実際のサードパーティスクリプトを含みます。ローカルで 95 点でも CrUX では不合格というサイトは非常に多く、特に LinkedIn や HubSpot、チャットサポートのスクリプトを入れている B2B サイトで目立ちます。修正後は CrUX を基準にしてください。
INP を 500 ミリ秒から 200 以内に下げるにはどれくらいかかる?
サードパーティスクリプトの比率によります。INP の悪化が主にサードパーティスクリプト(チャット、CRM、ピクセル)由来なら、遅延読み込みや async 化で 1 週間以内に 300 ミリ秒まで下げられます。業務用 JS バンドルが原因なら、コード分割とロングタスクの解消が必要で、通常 4〜8 週間かかります。まず Coverage パネルでサードパーティの比率を確認し、30% を超えていればサードパーティから手を付けます。
CLS はどのくらいなら正常?
0.1 以下が合格、0.1〜0.25 が要改善、0.25 超が不良です。ほとんどの B2B サイトの CLS 問題は、画像に幅と高さが指定されていないことと、広告枠にプレースホルダーがないことが原因です。すべての img に width/height を付け、aspect-ratio を設定し、動的バナーには固定高さのコンテナを用意すれば、CLS は通常 1 週間以内に 0.05 以下まで下げられます。
Core Web Vitals はランキングに直接影響する?
ランキング要因ですが、重みはコンテンツ品質や被リンクよりはるかに低いです。Google の公式説明では、CWV はページ体験シグナルの一部であり、コンテンツが同程度の場合にのみ決め手になります。CWV のためにコンテンツ品質を犠牲にしないでください。正しい進め方は、まず LCP を 2.5 秒以内、CLS を 0.1 以下に抑え、その後コンテンツに注力することです。
モバイルとデスクトップの CWV は分けて見るべき?
必ず分けて見ます。Google はモバイルファーストインデックスを採用しており、モバイルの CWV がランキング要因の主な根拠になります。デスクトップのデータはデスクトップ検索結果にしか影響しません。B2B サイトではデスクトップ 90 点、モバイル 60 点というケースがよくあります。モバイルはネットワークやデバイス性能の差が大きいためです。診断はモバイルの 4G 低速回線を模擬して行います。

最後に

Core Web Vitals はテクニカル SEO の中で投資対効果が最も明確な項目です。各指標に明確なしきい値、明確な診断ツール、明確な対策があります。Lighthouse のスコアに惑わされず、CrUX の実ユーザーデータを見てください。

実行は 3 ステップ。今週は GSC の体験レポートでどの指標が最も悪いかを特定します。来週は LCP → CLS → INP の順で最初の 1 つを修正します。公開後 28 日で CrUX がすべて合格か確認します。3 指標すべてが合格ラインに入れば、B2B 越境サイトの 70% 以上を上回っています。

覚えておきたい一言:CWV はスコアを競うゲームではなく、実際のユーザーが待たされる時間のこと。LCP は目で、INP は手で、CLS は目で確かめる。三つとも快適でこそ合格だ。

崔立姝
崔立姝 クレーター専門家

デリバリー・オペレーション責任者 · クレーター デリバリー&オペレーションチーム

クレーター(Crater)デリバリー&オペレーション責任者。SEOの実装実行、ソーシャルメディアチャネルの運営とコンテンツ配信を担当し、データを用いて成長施策を分解するのが得意。複数の海外展開プロジェクトのデリバリーを手がけ、Facebook、Twitter、TikTok、YouTubeとSEO/GEOの連携戦略に注力している。

SEO実装コンテンツ運営事例解説
1106件のシェア
84件のナレッジベース