Domain 129 / 225

CLS(Cumulative Layout Shift)はページ読み込み中の視覚的ずれの累積

CLS の要点

CLS は読み込み中の予期しないレイアウト ずれの累積を 0-1 で表す指標。良好は 0.1 以下、不良は 0.25 超。画像 / 広告 / 動的挿入 / Web フォント / iframe が主な原因。size 属性 / aspect-ratio CSS / プレースホルダで予約することで防げる

なぜこれを学ぶか

CLS の改善は SEO 評価とユーザー体感の両方に効く。 読み込み中のガタガタが大きいサイトは離脱率が高く、SEO も評価が低い。

サイト体感を改善するすべての担当者で必須。

学ばないと起きること

よくある事故被害
画像に width / height なしレイアウト確保せず CLS 悪化
動的コンテンツが既存要素を押し下げる読み込み中の文字クリックミス
Web フォントの FOIT で大幅レイアウト変動CLS 不良

学ぶメリット

  • 体感品質の劇的向上
  • CLS 0.1 以下を達成
  • 商談で「CLS 改善 5 つの原因」を即答

仕組み

CLS の定義

公式: 読み込み中に発生したレイアウト変動の影響度を累積:

CLS = 影響範囲(viewport)× 移動距離(画面比)
評価
良好0.1 以下
改善が必要0.1-0.25
不良0.25 超

CLS の主要原因

原因
画像 サイズ未指定width / height なし
動的コンテンツ挿入バナー / 通知 / Cookie 同意
広告後から挿入される広告枠
Web フォントフォント切替で文字幅変化
iframe動的 iframe 挿入
アニメーションtop / left での移動

キー概念

画像のサイズ確保

<img src="hero.jpg" width="1200" height="800" alt="...">

ブラウザがレイアウト計算前に空間予約。

CSS でも:

img {
  aspect-ratio: 3/2;
  width: 100%;
  height: auto;
}

Web フォントの最適化

対策効果
font-display: swapフォールバックですぐ表示
size-adjust文字幅を調整
ascent-override / descent-override高さ調整
preload早期読み込み
@font-face {
  font-family: 'CustomFont';
  src: url('font.woff2') format('woff2');
  font-display: swap;
  size-adjust: 100%;
  ascent-override: 90%;
}

広告枠の確保

<div style="min-height: 250px;">
  <!-- ここに広告が動的挿入される -->
</div>

最低高さを CSS で確保 → 挿入時の押し下げ防止。

動的コンテンツの位置

通知バナーページ最下部 / fixedコンテンツ上部に挿入
Cookie 同意overlay / modal既存コンテンツを押し下げ
関連記事最初から枠確保後から流し込み

transform を使ったアニメーション

/* 良い: transform は CLS 影響なし */
.card { transition: transform 0.3s; }
.card:hover { transform: translateY(-4px); }

/* 悪い: top の変更は CLS 影響 */
.card { position: relative; transition: top 0.3s; }
.card:hover { top: -4px; }

よくある誤解

よくある誤解実際のところ出典
transform でも CLS に影響transform は CLS 計算対象外CLS ガイド
Cookie 同意は CLS 計算外ユーザー操作前は計算対象同上
デスクトップは CLS 関係なし全デバイスで測定同上

実務での適用

画像の SEO チェックリスト

  1. 全画像に width / height 属性
  2. CSS で aspect-ratio 指定(レスポンシブ)
  3. lazy loading で off-screen 画像対応
  4. Next.js なら next/image 使用

Web フォント

  1. font-display: swap
  2. preload で重要フォント
  3. size-adjust で fallback 整合

動的コンテンツ

  1. 挿入前に枠確保
  2. 広告枠は min-height で予約
  3. オーバーレイ / モーダルで既存コンテンツに影響なし

トラブル別の対処

症状確認すべきこと
CLS 0.1 超PageSpeed Insights の CLS 詳細で原因特定
特定操作で CLS 急増該当操作の DOM 変動

公式ソース

自己テスト

Q1. CLS の良好基準は?

0.1 以下(不良は 0.25 超)

Q2. CLS の主要原因 5 つは?

画像サイズ未指定 / 動的コンテンツ挿入 / 広告 / Web フォント / iframe

Q3. transform と top の CLS 影響の違いは?

transform は CLS 計算対象外、top / left の変更は対象。アニメーションは transform で

これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。