ページ速度とコアウェブバイタルのSEO:2026年完全ガイド
· 12分で読めます
ページ速度は単にウェブサイトの読み込みを速くするだけではありません。検索の可視性、ユーザー体験、そして収益に直接影響を与える重要なランキング要因です。Googleが2021年にコアウェブバイタルを公式ランキングシグナルとして導入して以来、パフォーマンス指標とSEOの関係は無視できないものとなりました。
この包括的なガイドでは、SEO成功のためのページ速度とコアウェブバイタルの最適化について知っておくべきすべてを探ります。開発者、マーケター、サイトオーナーのいずれであっても、指標を改善し検索ランキングを向上させる実践的な戦略を学ぶことができます。
目次
コアウェブバイタルとSEOにおけるその重要性を理解する
コアウェブバイタルは、Googleがウェブページの実際のユーザー体験を測定するために使用する特定の指標のセットです。これらの指標は、ユーザー体験の3つの重要な側面に焦点を当てています:読み込みパフォーマンス、インタラクティブ性、視覚的安定性。
技術的な速度のみを測定する従来のパフォーマンス指標とは異なり、コアウェブバイタルはユーザーが実際にページをどのように認識し、インタラクトするかを捉えます。これにより、Googleのアルゴリズムがユーザー体験シグナルをますます優先するようになっているため、SEOにとって特に価値があります。
3つのコアウェブバイタル指標は:
- 最大コンテンツの描画(LCP) - 読み込みパフォーマンスを測定
- 次のペイントまでのインタラクション(INP) - インタラクティブ性と応答性を測定
- 累積レイアウトシフト(CLS) - 視覚的安定性を測定
各指標には、良好、改善が必要、不良のパフォーマンスを定義する特定の閾値があります。強力なSEOパフォーマンスを維持するには、ページ訪問の少なくとも75%でこれらの閾値を満たすことが不可欠です。
| 指標 | 良好 | 改善が必要 | 不良 |
|---|---|---|---|
| LCP | ≤ 2.5秒 | 2.5 - 4.0秒 | > 4.0秒 |
| INP | ≤ 200ミリ秒 | 200 - 500ミリ秒 | > 500ミリ秒 |
| CLS | ≤ 0.1 | 0.1 - 0.25 | > 0.25 |
プロのヒント: ページサイズアナライザーを使用して、ページの読み込み時間を遅くし、コアウェブバイタルスコアの低下に寄与しているリソースを素早く特定しましょう。
最大コンテンツの描画(LCP)をマスターする
最大コンテンツの描画は、ビューポート内の最大のコンテンツ要素が表示されるまでにかかる時間を測定します。これは通常、ヒーロー画像、メイン見出し、または主要なコンテンツブロックです。本質的には、ページが実際に読み込まれていることをユーザーに知らせる要素です。
LCPは、ページ速度に対するユーザーの認識と直接相関するため、おそらく最も重要なコアウェブバイタルです。LCPが遅い場合、他の要素がどれだけ速く読み込まれても、ユーザーはサイト全体が遅いと認識します。
一般的なLCPの問題と解決策
LCPスコアが低い最も頻繁な原因は次のとおりです:
- 最適化されていない画像 - 大きく圧縮されていない画像がLCPが遅い原因の第1位です
- 遅いサーバー応答時間 - 最初のバイトまでの時間(TTFB)が高い場合、他のすべてが影響を受けます
- レンダリングをブロックするリソース - コンテンツの表示を妨げるCSSとJavaScript
- クライアントサイドレンダリング - コンテンツの可視性を遅らせるJavaScriptフレームワーク
画像最適化戦略
画像は多くの場合LCP要素であるため、それらを最適化することが最優先事項であるべきです。包括的なアプローチは次のとおりです:
- 最新のフォーマットに変換 - JPEG/PNGの代わりにWebPまたはAVIFを使用して、ファイルサイズを25〜35%削減
- レスポンシブ画像を実装 -
srcsetとsizes属性を使用して適切なサイズの画像を提供 - 遅延読み込みを戦略的に使用 - LCP画像を遅延読み込みしないでください。すぐに読み込む必要があります
- 優先度ヒントを追加 - LCP画像に
fetchpriority="high"を使用
適切に最適化されたLCP画像マークアップの例は次のとおりです:
<img src="hero-800w.webp"
srcset="hero-400w.webp 400w,
hero-800w.webp 800w,
hero-1200w.webp 1200w"
sizes="(max-width: 600px) 400px,
(max-width: 1000px) 800px,
1200px"
alt="ヒーロー画像の説明"
fetchpriority="high"
width="1200"
height="600">
サーバー応答時間の最適化
サーバー応答時間(TTFB)は、他のすべてのパフォーマンス指標のベースラインを設定します。サーバーの応答が遅い場合、他のことは重要ではありません。
TTFBを改善するための主要な戦略は次のとおりです:
- CDNを使用 - ユーザーに地理的に近い場所にコンテンツを配信
- キャッシングを実装 - サーバーレベルとHTTPヘッダーの両方でキャッシュ
- データベースクエリを最適化 - 遅いクエリは応答時間に数百ミリ秒を追加する可能性があります
- ホスティングをアップグレード - 共有ホスティングは、最新のサイトが必要とするパフォーマンスを提供できないことがよくあります
- 圧縮を有効化 - BrotliまたはGzipを使用して転送サイズを削減
クイックヒント: TTFBを600ms未満に目指しましょう。800msを超えると、特にモバイル接続では、良好なLCPスコアを達成することがほぼ不可能になります。
初回入力遅延と次のペイントまでのインタラクション
2024年3月、Googleは初回入力遅延(FID)を次のペイントまでのインタラクション(INP)に置き換え、公式のコアウェブバイタルとしました。FIDはブラウザがインタラクションの処理を開始できるまでの遅延のみを測定していましたが、INPはユーザー入力から視覚的フィードバックまでの全期間を測定します。
INPは、インタラクティブ性の完全なユーザー体験をより適切に捉える、より包括的な指標です。最初のインタラクションだけでなく、ページのライフサイクル全体のすべてのインタラクションを考慮します。
INPを理解する
INPはインタラクションの3つのフェーズを測定します:
- 入力遅延 - ユーザーアクションからイベントハンドラー実行までの時間
- 処理時間 - イベントハンドラーの実行に費やされる時間
- 表示遅延 - 処理後に次のフレームをペイントするまでの時間
合計INPは、ページ訪問中の最も遅いインタラクションのこれら3つのフェーズの合計です。これにより、単一の遅いインタラクションがスコアを台無しにする可能性があるため、INPは特に困難になります。
一般的なINPの問題
ほとんどのINPの問題は、メインスレッドをブロックするJavaScript実行に起因します:
- 長いタスク - 50msを超えるJavaScript実行はユーザーインタラクションをブロックします
- 重いイベントハンドラー - クリック、スクロール、または入力ハンドラーの複雑なロジック
- サードパーティスクリプト - メインスレッド時間を競合する分析、広告、チャットウィジェット
- 大規模なDOM更新 - 数千の要素への変更を同時にレンダリング
INPを改善するための戦略
INPの最適化には、他のパフォーマンス指標とは異なるアプローチが必要です。これらのテクニックに焦点を当てましょう:
- 長いタスクを分割 -
setTimeoutまたはrequestIdleCallbackを使用してメインスレッドに譲る - デバウンスとスロットル - 迅速なユーザー入力中にイベントハンドラーが実行される頻度を制限
- ウェブワーカーを使用 - 重い計算をバックグラウンドスレッドにオフロード
- レンダリングを最適化 - DOM操作を最小限に抑え、アニメーションにはCSS transformを使用
- コード分割 - 必要なときにのみJavaScriptを読み込み、すべてを事前に読み込まない
長いタスクを分割する例は次のとおりです:
// 悪い例:操作全体でメインスレッドをブロック
function processLargeDataset(items) {
items.forEach(item => {
// 重い処理
processItem(item);
});
}
// 良い例:チャンク間でメインスレッドに譲る
async function processLargeDataset(items) {
const chunkSize = 50;
for (let i = 0; i < items.length; i += chunkSize) {
const chunk = items.slice(i, i + chunkSize);
chunk.forEach(item => processItem(item));
// メインスレッドに譲る
await new Promise(resolve => setTimeout(resolve, 0));
}
}
プロのヒント: Chrome DevToolsのパフォーマンスパネルを使用して長いタスクを特定しましょう。50msを超える黄色または赤色のバーを探してください。これらが最適化のターゲットです。
累積レイアウトシフト:視覚的安定性の達成
累積レイアウトシフトは、ページのライフタイム中に発生する予期しないレイアウトシフトを追跡することで視覚的安定性を測定します。私たちは皆、ボタンをクリックしようとしたときに広告が読み込まれてコンテンツがシフトし、間違ったものをクリックしてしまうというフラストレーションを経験したことがあります。
CLSは速度に関するものではなく、予測可能性に関するものであるため、コアウェブバイタルの中でユニークです。ページは瞬時に読み込まれても、要素が予期せず移動する場合、ひどいCLSスコアになる可能性があります。
レイアウトシフトの原因は何ですか?
レイアウトシフトの最も一般的な原因は次のとおりです:
- 寸法のない画像 - ブラウザはサイズがわからない場合、スペースを確保できません
- 広告と埋め込み - 初期レンダリング後に読み込まれる動的コンテンツ
- ウェブフォント - フォントの入れ替えによりテキストがリフローする可能性があります
- 動的に挿入されたコンテンツ - ページ読み込み後にJavaScriptを介して追加されるコンテンツ
- アニメーション - transformプロパティを使用しないCSSアニメーション
レイアウトシフトの修正
ほとんどのCLSの問題は、これらの簡単なテクニックで解決できます:
- 常に画像の寸法を指定 - すべての画像とビデオに
widthとheight属性を使用 - 広告用のスペースを確保 - 広告が読み込まれる前にスペースを割り当てるためにmin-height CSSを使用
- font-display: optionalを使用 - レイアウトシフトを引き起こすフォントの入れ替えを防ぎます
- 既存のコンテンツの上にコンテンツを挿入しない - フォールドの下に新しいコンテンツを追加するか、オーバーレイを使用
- アニメーションにはCSS transformを使用 - transformとopacityはレイアウトをトリガーしません
動的コンテンツ用のスペースを適切に確保する方法は次のとおりです:
/* 広告ユニット用のスペースを確保 */
.ad-container {
min-height: 250px;
width: 300px;
background: #f0f0f0;
}
/* レスポンシブ埋め込み用のアスペクト比ボックス */
.embed-container {
position: relative;
padding-bottom: 56.25%; /* 16:9アスペクト比 */
height: 0;
overflow: hidden;
}
.embed-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
ウェブフォントの最適化
ウェブフォントは、CLSの特に厄介な原因です。カスタムフォントが読み込まれると、フォールバックフォントのメトリクスが異なる場合、テキストがリフローする可能性があります。
ウェブフォント読み込みのベストプラクティス: