レイアウトが大きく変わらないようにする対策は?累積レイアウトシフト(CLS)の改善方法

9 min 9 views

Webサイトを閲覧していて、突然レイアウトがガクッと変わって「あれ?」と思った経験はありませんか?これは決して珍しい現象ではありません。実は、このレイアウトの変化は累積レイアウトシフト(CLS)という指標で評価され、SEOにも大きく影響しているのです。

最近では、GoogleのCore Web Vitalsが検索順位の要因として重要視されており、その中でもCLSは「ページの視覚的安定性」を測定する核心的な指標となっています。この記事では、レイアウトシフトを防ぎ、ユーザー体験を大幅に向上させる具体的な方法をご紹介します。

目次

累積レイアウトシフト(CLS)とは何か

CLSの基本概念

**累積レイアウトシフト(Cumulative Layout Shift, CLS)は、ページの読み込み過程で発生する「予期しないレイアウトの変化」を定量化した指標です。Google が提唱するCore Web Vitals の一つで、ユーザー体験の質を測定する重要な基準として採用されています。

CLSは、以下の3つの要素で構成されるCore Web Vitalsの一部です:

  • LCP(Largest Contentful Paint):最大コンテンツの読み込み時間
  • FID(First Input Delay):初回入力遅延時間
  • CLS(Cumulative Layout Shift):累積レイアウトシフト

レイアウトシフトが発生する瞬間

レイアウトシフトは、主に以下のような状況で発生します:

  1. 画像の遅延読み込み:サイズが指定されていない画像が後から表示される
  2. 広告の挿入:動的に挿入される広告がコンテンツを押し下げる
  3. Webフォントの適用:フォントファイルの読み込み完了後にテキストサイズが変わる
  4. 動的コンテンツの追加:JavaScriptで後から追加されるコンテンツ

これらの現象は、ユーザーが「読もうとしていたテキスト」や「クリックしようとしていたボタン」の位置を突然変えてしまうため、大きなストレスにつながります。

CLSが重要な理由

ユーザー体験への影響

レイアウトシフトがユーザーに与える影響は想像以上に深刻です:

誤操作の誘発

  • 「キャンセル」ボタンをクリックしようとしたら、レイアウトが変わって「購入確定」を押してしまう
  • 記事を読んでいる最中に突然レイアウトが変わり、読んでいた箇所を見失う

ユーザビリティの低下

  • サイトが「不安定」「信頼できない」という印象を与える
  • 閲覧体験が快適でないため、離脱率が高くなる

SEOへの直接的影響

2021年8月のGoogleのページエクスペリエンス アップデート以降、Core Web Vitalsは検索順位の決定要因として明確に位置づけられています。CLSの数値が悪いサイトは、以下のような影響を受ける可能性があります:

  • 検索結果での順位低下
  • 同等のコンテンツ品質の競合サイトに順位で負ける
  • モバイル検索での表示機会の減少

CLSの測定方法と診断ツール

PageSpeed Insights による測定

最も手軽で正確な測定方法は、Googleが提供するPageSpeed Insightsです。URLを入力するだけで、以下の2つのデータを確認できます:

フィールドデータ

  • Chrome UXレポートから取得した実際のユーザーデータ
  • 過去28日間の実測値
  • Googleの検索ランキングで実際に使用されるデータ

ラボデータ

  • Lighthouseエンジンによるシミュレーション結果
  • 制御された環境での測定値
  • 改善施策の効果を即座に確認可能

Google Chrome デベロッパーツール

より詳細な分析には、Chromeの開発者ツールが有効です:

Lighthouseタブでの測定

  1. F12キーで開発者ツールを開く
  2. 「Lighthouse」タブを選択
  3. 「パフォーマンス」にチェックを入れて実行

レイアウトシフトの可視化

  1. 開発者ツールの「Rendering」タブを開く
  2. 「Layout Shift Regions」をチェック
  3. ページをリロードして青い枠でシフト箇所を確認

Google Search Console での一括確認

自社サイト全体の状況を把握するには、Search Consoleが最適です:

  1. 「エクスペリエンス」→「ウェブに関する主な指標」を選択
  2. 「モバイル」「PC」それぞれの結果を確認
  3. 問題のあるURLグループを特定

CLSの理想値と評価基準

GoogleのCore Web Vitalsでは、CLSの評価基準を明確に定めています:

良好(Good):0.1以下

  • ユーザー体験に問題なし
  • SEO評価への悪影響なし

要改善(Needs Improvement):0.1~0.25

  • 改善の余地あり
  • 優先的に対策を実施すべき

不良(Poor):0.25超

  • 緊急対策が必要
  • SEO順位への悪影響が懸念される

重要なのは、28日間の75パーセンタイル値で評価されることです。つまり、サイト訪問者の75%が「良好」な体験を得られるレベルまで改善する必要があります。

レイアウトシフトの主な原因

1. 画像・動画のサイズ未指定

最も頻繁に発生する原因がこれです。HTML上で画像や動画のサイズを指定していないと、ブラウザは実際のファイルを読み込むまで適切なスペースを確保できません。

問題となるコード例

Copy<img src="example.jpg" alt="サンプル画像">

改善後のコード例

Copy<img src="example.jpg" alt="サンプル画像" width="800" height="600">

2. Webフォントの読み込み遅延

外部フォントファイルの読み込みが完了するまで、ブラウザは代替フォントでテキストを表示します。フォントが変わる瞬間にテキストサイズや行の高さが変わり、レイアウトシフトが発生します。

3. 動的に挿入される広告

Google AdSenseなどの動的広告は、入札処理やサイズ決定に時間がかかるため、コンテンツの読み込み後に表示されることが多く、レイアウトシフトの大きな原因となります。

4. 後から追加されるコンテンツ

以下のような要素が後から追加されると、既存コンテンツが押し下げられます:

  • Cookie同意バナー
  • SNSシェアボタン
  • 関連記事やレコメンド
  • チャットボット

レイアウトが大きく変わらないようにする具体的対策

対策1:画像・動画の適切なサイズ指定

基本的な実装方法

すべての画像・動画要素には、必ずwidthheight属性を指定します:

Copy<img src="hero-image.jpg" width="1200" height="800" alt="ヒーロー画像">
<video width="640" height="360" controls>
  <source src="video.mp4" type="video/mp4">
</video>

重要なポイント

  • 指定する値は画像の元のサイズ(実際のピクセル数)
  • CSSで表示サイズを調整するため、属性値が表示サイズと異なってもOK
  • 比率が重要なので、width="4" height="3"のような相対値でも可

レスポンシブ対応とCSS

Copyimg {
  width: 100%;
  height: auto;
  max-width: 800px;
}

対策2:アスペクト比を活用した領域確保

複数の画像サイズを出し分ける場合は、aspect-ratioプロパティで領域を確保します:

Copy.image-container {
  aspect-ratio: 16 / 9;
  width: 100%;
}

@media (max-width: 768px) {
  .image-container {
    aspect-ratio: 4 / 3;
  }
}

対策3:Webフォントの最適化

フォントの事前読み込み

Copy<link rel="preload" href="/fonts/noto-sans.woff2" as="font" type="font/woff2" crossorigin>

font-displayプロパティの活用

Copy@font-face {
  font-family: 'CustomFont';
  src: url('/fonts/custom-font.woff2') format('woff2');
  font-display: swap; /* またはoptional */
}

font-display の選択肢

  • swap:フォールバックフォントを先に表示し、カスタムフォント読み込み後に切り替え
  • optional:100ms以内に読み込めない場合は初回訪問時はフォールバックフォントを継続使用

対策4:広告スペースの事前確保

動的広告には、最大想定サイズでスペースを確保します:

Copy<div class="ad-container">
  <!-- AdSense コード -->
</div>
Copy.ad-container {
  min-height: 250px; /* 最大広告サイズに合わせて調整 */
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

対策5:動的コンテンツの配置戦略

推奨されるアプローチ

  1. 下部への配置:Cookie同意バナーやチャットボットは画面下部に配置
  2. オーバーレイ表示:既存コンテンツを押し下げずに重ねて表示
  3. 事前スペース確保:表示される可能性が高い場合は事前に領域を確保
Copy.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  /* 既存コンテンツを押し下げない */
}

実際の改善事例とその効果

事例1:ECサイトの商品画像対策

改善前の状況

  • 商品画像にサイズ指定なし
  • CLSスコア:0.28(不良)
  • 直帰率:65%

実施した対策

  • 全商品画像にwidth/height属性を追加
  • 画像読み込み用のプレースホルダーを設置
  • 遅延読み込み(lazy loading)の最適化

改善後の結果

  • CLSスコア:0.05(良好)
  • 直帰率:43%(33%改善)
  • コンバージョン率:2.1%向上

事例2:メディアサイトの広告改善

改善前の状況

  • 記事中の広告でレイアウトシフトが多発
  • CLSスコア:0.35(不良)
  • ページビュー数:月間50万PV

実施した対策

  • 広告枠の最小高さを設定
  • 広告読み込み中のスケルトン表示を実装
  • 記事下部への広告配置を優先

改善後の結果

  • CLSスコア:0.08(良好)
  • ページビュー数:月間78万PV(56%増加)
  • 検索流入:40%増加

高度な対策テクニック

アニメーションの最適化

レイアウトシフトを引き起こすプロパティの代わりに、transformを使用します:

避けるべき書き方

Copy.element {
  transition: height 0.3s ease;
}
.element:hover {
  height: 200px; /* レイアウトシフトを引き起こす */
}

推奨される書き方

Copy.element {
  transition: transform 0.3s ease;
}
.element:hover {
  transform: scaleY(1.2); /* レイアウトシフトを引き起こさない */
}

IntersectionObserverの活用

動的コンテンツの読み込みタイミングを制御します:

Copyconst observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      // 要素が表示領域に入ったときにコンテンツを読み込み
      loadDynamicContent(entry.target);
    }
  });
});

// 監視対象の要素を登録
document.querySelectorAll('.lazy-content').forEach(el => {
  observer.observe(el);
});

WordPress・CMS別の対策方法

WordPress での対策

プラグインを活用した対策

  1. WP Rocket:自動で画像にサイズ属性を追加
  2. Perfmatters:フォントの最適化機能
  3. Autoptimize:CSS・JavaScript の最適化

テーマファイルでの対策

Copy// functions.php に追加
function add_image_dimensions($content) {
    return preg_replace_callback(
        '/<img[^>]*src="([^"]*)"[^>]*>/',
        function($matches) {
            $image_url = $matches[1];
            $image_size = getimagesize($image_url);
            if ($image_size) {
                return str_replace('<img', '<img width="' . $image_size[0] . '" height="' . $image_size[1] . '"', $matches[0]);
            }
            return $matches[0];
        },
        $content
    );
}
add_filter('the_content', 'add_image_dimensions');

Shopify での対策

Liquid テンプレートでの実装

<img src="{{ product.featured_image | img_url: '800x600' }}" 
     width="{{ product.featured_image.width }}" 
     height="{{ product.featured_image.height }}" 
     alt="{{ product.featured_image.alt }}">

モバイル環境での特別な配慮

モバイル特有の課題

モバイル環境では、以下の要因でレイアウトシフトが発生しやすくなります:

  1. 通信速度の不安定性:4G/5G環境の変動
  2. 画面サイズの多様性:異なる解像度での表示
  3. タッチ操作の特性:タップ時のレイアウト変化

モバイル向け最適化テクニック

ビューポートの適切な設定

Copy<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

メディアクエリでの最適化

Copy@media (max-width: 768px) {
  .hero-image {
    aspect-ratio: 4 / 3;
    width: 100%;
  }
  
  .ad-container {
    min-height: 100px; /* モバイル広告サイズに調整 */
  }
}

測定と継続的な改善

定期的な監視体制

CLS対策は一度実施すれば終わりではありません。継続的な監視と改善が必要です:

週次チェック項目

  • PageSpeed Insightsでの全主要ページ確認
  • Search Consoleでの新しい問題ページのチェック
  • 実際のユーザー行動の分析

月次評価項目

  • CLSスコアの推移分析
  • 競合サイトとの比較
  • 新しい対策手法の調査・実装

改善効果の測定指標

CLS改善の効果は、以下の指標で総合的に評価します:

技術指標

  • CLSスコアの数値改善
  • First Contentful Paint(FCP)の改善
  • Largest Contentful Paint(LCP)の改善

ビジネス指標

  • 直帰率の改善
  • セッション継続時間の延長
  • コンバージョン率の向上
  • 検索順位の上昇

よくある質問と回答

Q1:画像にサイズを指定すると表示が崩れませんか?

A:CSSでwidth: 100%; height: auto;を指定することで、レスポンシブ対応を維持しながらアスペクト比を保てます。HTML属性のサイズ指定は、ブラウザが適切なスペースを確保するためのヒントとして機能します。

Q2:外部サービスの埋め込みコンテンツはどう対策すればいいですか?

A:外部サービス(YouTube、Twitter、Instagramなど)の埋め込みは、事前にサイズを調査してコンテナ要素で領域を確保しておきます。多くのサービスは推奨サイズを公開しているので、それを参考にしてください。

Q3:CLSスコアが0.05から0.08に悪化しました。何が原因でしょうか?

A:以下の要因が考えられます:

  • 新しく追加した画像やコンテンツ
  • 広告配信の変更
  • Webフォントの読み込み遅延
  • 第三者スクリプトの追加

Chrome DevToolsの「Layout Shift Regions」機能で具体的な原因箇所を特定できます。

まとめ

レイアウトが大きく変わらないようにするための対策は、現代のWebサイト運営において避けて通れない重要な課題です。ユーザー体験の向上とSEO効果の両面から、以下のポイントを押さえて継続的に改善していくことが大切です:

immediate action(今すぐ実行すべき対策)

  1. 全画像・動画要素へのwidth/height属性追加
  2. PageSpeed Insightsでの現状把握
  3. 明らかな問題箇所の特定と修正

継続的な改善施策

  1. Webフォントの最適化とfont-display設定
  2. 動的コンテンツの配置戦略見直し
  3. 広告スペースの事前確保

監視・分析体制

  1. Search Consoleでの定期的な全体チェック
  2. 主要ページのCLSスコア追跡
  3. 改善効果のビジネス指標での評価

レイアウトシフトの改善は、技術的な知識と継続的な取り組みが必要な分野です。しかし、適切な対策を実施することで、ユーザー満足度の大幅な向上と検索エンジンでの優位性を獲得できます。

LandingHubでは、こうした表示速度改善やCLS対策を含む、包括的なWebサイト最適化サービスを提供しています。専門的な知識と豊富な実績をもとに、お客様のサイトパフォーマンスを最大化するお手伝いをさせていただきます。

是非、今日から実践できる対策から始めて、ユーザーにとって快適で、検索エンジンからも評価される優れたWebサイトを構築してください。継続的な改善により、必ず成果は現れるはずです。

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です