CLSの評価を約2か月で「不良」から「良好」へ。大規模サイト向けCMSのECサイトで、Core Web VitalsのCLS対策として後から表示される部分の場所を先に確保し、読み込み中の画面のずれを解消

業種:大規模EC 従業員数:101〜300名

大規模サイト向けCMSのECサイトで、Core Web VitalsのCLS対策を行い、Google Search Consoleの評価を約2か月で「不良」から「良好」にした事例です。
後から表示される部分の場所を先に確保し、読み込み中の画面のずれと押し間違いを防ぎました。

  • SEO対策
  • UI/UX設計

こんな状態のサイトに向けた事例です

  • ページを開いた直後に、文字や画像が下にずれることがある
  • ボタンを押そうとしたら、別のところを押してしまったことがある
  • Google Search Consoleの「ウェブに関する主な指標」で、赤い「不良」が出ている
  • バナーやおすすめ商品など、少し遅れて表示される部分が多い
課題
ヘッダー、サイドバー、本文のどこでも読み込みの途中で表示がずれ、Googleの評価も「不良」だった
提案
ずれの原因をページの組み立て方から特定し、少し遅れて表示される部分の場所を先に確保した
結果
約2か月で、Google Search ConsoleのCLSの評価が「不良」から「良好」になった

画面がずれていた仕組み

このサイトのページは、2つの方法を組み合わせて表示されていました。サーバーで組み立ててから送る部分(SSR)と、ページが届いたあとにブラウザで組み立てる部分(CSR)です。

組み立て方 表示されるタイミング ずれへの影響
サーバーで組み立てる(SSR) ページが届いた時点 最初から場所が決まっているため、ずれない
ブラウザで組み立てる(CSR) 少し遅れて 入る場所が空いていないと、表示された瞬間に周りを押しのける

先にサーバーで組み立てた部分が表示され、そのあとブラウザで組み立てた部分が入ってきたときに、その分だけ周りの表示が押しのけられていました。

導入前の状況

ページのあちこちで、読み込みの途中に表示がずれる

ヘッダー、サイドバー、本文と、ページのほぼすべての部分で読み込みの途中に表示がずれていました。購入ボタンを押そうとした瞬間に後から表示された部分に押し下げられ、別のリンクを押してしまうことも起きていました。

Googleの評価も「不良」だった

Google Search Console(自社サイトの検索での状態を確かめられる、Googleの無料ツール)では、CLSの評価が「不良」になっていました。CLS(Cumulative Layout Shift)は、読み込み中に画面の要素がどれだけずれたかを表す指標です。Googleがページの使いやすさを測る指標の一つで、検索結果の評価にも使われています。

設計判断1:組み立て方はそのままに、入る場所を先に確保する

ずれをなくす方法として、すべてをサーバーで組み立てる形にそろえることも考えられます。後から入ってくる部分がなくなるため、ずれは根本からなくなります。ただ、そのためにはCMSでのページの組み立て方そのものを変える必要があり、影響する範囲が大きくなります。

そこで組み立て方はそのままにし、ブラウザで組み立てる部分について、中身が届く前から入る場所の大きさを決めておく方針にしました。中身が少し遅れて届いても場所はすでに空けてあるため、周りは動きません。

読み込み中はその場所に仮の枠を表示し、何かが表示されることがわかるようにしています。

場所を先に確保する考え方

読み込み中の画面の比較。左の導入前は、後から入ったバナーに購入ボタンが押し下げられている。右の導入後は、最初から仮の枠で場所が確保され、ボタンの位置が変わらない
場所を先に確保する考え方。導入後は、中身が届く前から仮の枠で場所を空けている

設計判断2:中身の大きさが決まる部分から直す

場所を先に確保するには、入る中身の大きさがわかっている必要があります。ヘッダーやサイドバーのようにどのページでも同じ形で表示される部分は大きさを決めやすく、場所を確保すればずれを止められます。

一方で、ページや状況によって出てくる情報が変わり、量や大きさが決まらない部分は、場所の大きさを決めきれません。無理に決めると、空きが大きすぎたり足りずにはみ出したりします。

そこで、中身の大きさが決まる部分から順に直し、出てくる情報が決まらない部分は後回しにしました。

取り組み

1. どの部分が、いつずれているかを特定する

ページの読み込みを細かい時間の単位で追い、どの部分がどのタイミングで表示されたときにずれが起きているかを調べました。調べるのには、Chrome DevTools(ブラウザのChromeに備わっている、ページの動きを調べる機能)などを使っています。その結果、ずれの多くがブラウザで組み立てる部分が表示されるタイミングで起きていることがわかりました。

2. ヘッダー・サイドバー・本文で、後から入る部分の場所を確保する

ずれの原因になっていた部分ごとに、中身が届く前から場所の大きさが決まるようにしました。画像やバナーは縦横の比率を、それ以外の部分は最低限の高さをあらかじめ決めています。読み込み中は、そこに仮の枠を表示します。

直した部分の範囲(イメージ)

ページの模式図。ヘッダー、サイドバー、本文の中で場所を先に確保した部分を色付きの枠で、中身の大きさが決まらず後回しにした部分を点線の枠で示している
直した部分の範囲。色付きの枠は場所を先に確保した部分、点線の枠は後回しにした部分

3. ページの種類ごとに直し、評価の変化を確かめる

Google Search Consoleでは、似た作りのページがまとめて評価されます。そのため、ページの種類ごとに直し、評価が変わるのを確かめながら進めました。評価が「良好」になるまでは約2か月でした。

改善施策の結果について

約2か月で、Google Search ConsoleのCLSの評価が「不良」(赤)から「良好」(緑)になりました。

読み込みの途中で表示がずれなくなり、押そうとしたところとは別のところを押してしまうことも起きにくくなっています。読み込み中は仮の枠が表示されるため、お客様には何かが表示されるところだとわかるようになりました。

支援の概要

業種
大規模EC
従業員数
101〜300名
システム
大規模サイト向けCMS
支援期間
約2か月(ページの種類ごとに順に対応)
担当範囲
表示の組み立て方の解析、ずれの原因の特定、CSSの設計、フロントエンドの実装

※記載の内容は支援当時のものです。

読み込み中に画面がずれていないか、気になったら

表示のずれは、ページの組み立て方を大きく変えなくても直せることがあります。今のサイトのどこがどのタイミングでずれているかを調べたうえで、直す順番からご提案します。

ほかの改善事例

改善事例をすべて見る