大規模サイト向けCMSのECサイトで、Core Web VitalsのCLS対策を行い、Google Search Consoleの評価を約2か月で「不良」から「良好」にした事例です。
後から表示される部分の場所を先に確保し、読み込み中の画面のずれと押し間違いを防ぎました。
このサイトのページは、2つの方法を組み合わせて表示されていました。サーバーで組み立ててから送る部分(SSR)と、ページが届いたあとにブラウザで組み立てる部分(CSR)です。
| 組み立て方 | 表示されるタイミング | ずれへの影響 |
|---|---|---|
| サーバーで組み立てる(SSR) | ページが届いた時点 | 最初から場所が決まっているため、ずれない |
| ブラウザで組み立てる(CSR) | 少し遅れて | 入る場所が空いていないと、表示された瞬間に周りを押しのける |
先にサーバーで組み立てた部分が表示され、そのあとブラウザで組み立てた部分が入ってきたときに、その分だけ周りの表示が押しのけられていました。
ヘッダー、サイドバー、本文と、ページのほぼすべての部分で読み込みの途中に表示がずれていました。購入ボタンを押そうとした瞬間に後から表示された部分に押し下げられ、別のリンクを押してしまうことも起きていました。
Google Search Console(自社サイトの検索での状態を確かめられる、Googleの無料ツール)では、CLSの評価が「不良」になっていました。CLS(Cumulative Layout Shift)は、読み込み中に画面の要素がどれだけずれたかを表す指標です。Googleがページの使いやすさを測る指標の一つで、検索結果の評価にも使われています。
ずれをなくす方法として、すべてをサーバーで組み立てる形にそろえることも考えられます。後から入ってくる部分がなくなるため、ずれは根本からなくなります。ただ、そのためにはCMSでのページの組み立て方そのものを変える必要があり、影響する範囲が大きくなります。
そこで組み立て方はそのままにし、ブラウザで組み立てる部分について、中身が届く前から入る場所の大きさを決めておく方針にしました。中身が少し遅れて届いても場所はすでに空けてあるため、周りは動きません。
読み込み中はその場所に仮の枠を表示し、何かが表示されることがわかるようにしています。
場所を先に確保する考え方
場所を先に確保するには、入る中身の大きさがわかっている必要があります。ヘッダーやサイドバーのようにどのページでも同じ形で表示される部分は大きさを決めやすく、場所を確保すればずれを止められます。
一方で、ページや状況によって出てくる情報が変わり、量や大きさが決まらない部分は、場所の大きさを決めきれません。無理に決めると、空きが大きすぎたり足りずにはみ出したりします。
そこで、中身の大きさが決まる部分から順に直し、出てくる情報が決まらない部分は後回しにしました。
ページの読み込みを細かい時間の単位で追い、どの部分がどのタイミングで表示されたときにずれが起きているかを調べました。調べるのには、Chrome DevTools(ブラウザのChromeに備わっている、ページの動きを調べる機能)などを使っています。その結果、ずれの多くがブラウザで組み立てる部分が表示されるタイミングで起きていることがわかりました。
ずれの原因になっていた部分ごとに、中身が届く前から場所の大きさが決まるようにしました。画像やバナーは縦横の比率を、それ以外の部分は最低限の高さをあらかじめ決めています。読み込み中は、そこに仮の枠を表示します。
直した部分の範囲(イメージ)
Google Search Consoleでは、似た作りのページがまとめて評価されます。そのため、ページの種類ごとに直し、評価が変わるのを確かめながら進めました。評価が「良好」になるまでは約2か月でした。
約2か月で、Google Search ConsoleのCLSの評価が「不良」(赤)から「良好」(緑)になりました。
読み込みの途中で表示がずれなくなり、押そうとしたところとは別のところを押してしまうことも起きにくくなっています。読み込み中は仮の枠が表示されるため、お客様には何かが表示されるところだとわかるようになりました。
※記載の内容は支援当時のものです。
表示のずれは、ページの組み立て方を大きく変えなくても直せることがあります。今のサイトのどこがどのタイミングでずれているかを調べたうえで、直す順番からご提案します。