結論: LCP改善には「画像圧縮 + fetchpriority="high" + preload」の3点セットが有効。CLS対策にはwidth/height属性の指定が必須。まずはToolShare Labの画像圧縮ツールでLCP画像のファイルサイズを50〜90%削減し、fetchpriority属性で優先読み込みを指示するだけで、スコアが大幅に改善する。
Core Web Vitalsと画像の関係
Core Web Vitalsは、Googleがページ体験を評価するための3つの指標だ。2026年現在の評価基準と「良好」の閾値は以下の通りだ。
| 指標 | 意味 | 良好 | 画像との関連 |
|---|---|---|---|
| LCP | 最大コンテンツの表示時間 | 2.5秒以内 | 非常に高い(LCP要素の70%以上が画像) |
| CLS | レイアウトの累積シフト量 | 0.1以下 | 高い(width/height未指定の画像が主因) |
| INP | インタラクションの応答速度 | 200ms以内 | 間接的(巨大画像のデコードがメインスレッドをブロック) |
LCP改善:画像を速く表示する
LCPは「ビューポート内で最も大きなコンテンツが表示されるまでの時間」だ。多くのページでは、ヒーロー画像やアイキャッチ画像がLCP要素になる。LCPを改善するには、LCP画像のファイルサイズを削減し、ブラウザに優先的に読み込ませる必要がある。
手順1: LCP画像を特定する
Chrome DevToolsのPerformanceタブ、またはPageSpeed InsightsでLCP要素を確認する。PageSpeed Insightsの「診断」セクションに「最大コンテンツの描画要素」として表示される。この画像が最適化のターゲットだ。
手順2: 画像を圧縮する
LCP画像のファイルサイズを可能な限り削減する。WebPまたはAVIFへの変換が最も効果的だ。ToolShare Labの画像圧縮ツールなら、ブラウザ内でWebP・AVIFへの変換と圧縮が同時に行える。目標はアイキャッチ100〜200KB以下、ヒーロー画像200KB以下。
手順3: fetchpriority="high" を指定する
LCP画像にfetchpriority="high"を指定すると、ブラウザがその画像の読み込みを他のリソースより優先する。2026年現在、全主要ブラウザがfetchpriority属性に対応している。
<img src="hero.webp" alt="メインビジュアル" width="1200" height="630"
fetchpriority="high" decoding="async">
fetchpriority="high"は1ページ1〜2枚まで
すべての画像にfetchpriority="high"を付けると優先順位の意味がなくなる。LCP画像にのみ指定する。それ以外の画像にはloading="lazy"を付けてリソースを節約する。
手順4: preloadで先読みする(上級者向け)
LCP画像がCSS背景画像や動的に読み込まれる場合、ブラウザがHTMLを解析しただけでは画像のURLを特定できない。この場合、link rel="preload"をhead内に記述して、画像の先読みを指示する。
<head>
<link rel="preload" as="image" href="/images/hero.webp"
type="image/webp" fetchpriority="high">
</head>
preloadの濫用に注意
preloadは強力だが、使いすぎると他のリソースの読み込みを圧迫する。LCP画像や重要なフォントなど、本当に優先すべきリソースに限定して使う。3個以上のpreloadがある場合は見直しを推奨する。
手順5: lazy loadingをLCP画像に付けない
loading="lazy"をLCP画像に設定してしまうのは、LCP悪化の最も多い原因の一つだ。lazy loadingが指定された画像は、ビューポートに近づくまで読み込みが遅延される。LCP画像はloading="eager"(デフォルト)のままにする。