COOSY BLOG
  • HOMEホーム

  • SERVICEサービス

    • サービスTOP
    • Web制作
    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
  • WORK制作実績

    • 制作実績TOP
    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーション
    • サービスサイト・SaaS
    • システム開発
  • ABOUTクーシーについて

    • クーシーについて
    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ岩手
    • ロンドン支社
    • ミャンマー支店
  • BLOGブログ

  • RECRUITリクルート

  • Contactお問い合わせ

BLOG MENU

  • BLOGトップ
  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加

【CLS改善】CLSスコアがスライダーで低下!原因と改善方法

  • Web制作ハウツー
  • UIUX・サイト設計
  • フロントエンド(HTML/CSS)
【CLS改善】CLSスコアがスライダーで低下!原因と改善方法

Webページにライブラリでスライダーを実装するとCLSスコアが悪化します。ライブラリを使用したときのスコア悪化の度合いは、使用するライブラリや、ページ内に実装する箇所によってもケースバイケース。ライブラリを使用すると、多かれ少なかれCLSが悪化するのは間違いなく、Google推奨のCLSスコア(0.1以下)を達成するというのは現実的に難しいと言えます。

これは、Core Web Vitalsがここ最近出てきている考え方や指標で、きちんと対応しているスライダーのライブラリがまだ無い(おそらく)ので、当然といえば当然です。

今回、クーシーの制作実績TOPページにおいて「スライダーのCLS改善」という課題に取り組んでみました。
結論からいうと、ライブラリによるスライダーを諦めました。代わりに自作のスライダーを実装し、CLSスコアを0.348から0.064(PCスコア)まで改善できました。

スライダーのCLS改善に対してどのようにアプローチしたか、自作したスライダーの仕様について簡単にご紹介します。

CLSスコアが悪い原因は?

CLS悪化の原因はライブラリのスライダー

クーシーの制作実績TOPページではキ-ビジュアルでSwiperを使用していました。
ファーストビューに対して、ライブラリによるスライダー利用は、CLSにとって明らかに相性の悪い組み合わせです。CLSスコアが悪い原因は十中八九ライブラリのスライダーだろうと思いつつも、念のため、検証はスライダーを確認することからスタートしました。
検証方法はシンプルにSwiperを切るという変更をしました。

Swiperを検証

変更前後 CLSスコア
変更前 0.348
変更後 0.016

やはりSwiperが原因という事で間違いなかったです。

では、なぜSwiperを実装するとCLSスコアが悪化するのか?
スライダーがCLSスコアを悪化させる要因は下記の2点。

【CLSスコアが悪化する要因】

  • 画像読み込みのラグでスライダーのアイテムの高さが変わる(その結果スライダーの高さも変わる)
  • ライブラリの発火後にレイアウトが作られてスライダーの高さが変わる

といった事が考えられます。
この要因さえ解消できればCLSを改善できる可能性があります。

ということで、ライブラリを使用してもCLSスコアを改善できるのか検証してみました。

ライブラリで改善する方法

Swiperを使ったままでどこまでCLSスコアを改善できるか試しました。ライブラリを使用したままCLSを改善できるのであれば、それに越した事はありません。

改善の施策は下記2点になります。

  1. 画像分の高さを外側の要素であらかじめ保持させる
  2. ライブラリを切っても見た目はそのままの状態を作る

1. 画像分の高さを外側の要素であらかじめ保持させる

画像分の高さを外側の要素であらかじめ保持させる説明

下記を修正することで、画像分の高さをあらかじめ保持させるので画像読み込み前後によるCLSスコアが改善することを期待しました。

【修正点】

  • 画像の外側の要素に対してcssのposition: relative;を指定。
  • before属性に対してdisplay: block; padding-top: 38%(←画像の高さ÷画像の幅);を指定。
  • 画像自体にはposition: absolute; top: 0; left: 0; width: 100%; height: auto;を指定。

2. ライブラリを切っても見た目はそのままの状態を作る

ライブラリの発火後にスライダーの型が整形される場合、発火前後でスライダーのアイテムにレイアウト変更が発生する(アイテムが縦並びから横並びに変わる等)、こともあります。スライダーの見た目部分はあらかじめCSSで作り、ライブラリの発火に依存しないようにしました。

ライブラリ発火前後のレイアウトの差異を減らすことで、CLSスコアが改善することを期待しました。

改善施策作業前後のスコア

作業前後 CLSスコア
作業前 0.348
作業後 0.342

結果は残念ながら、極小の改善(あるいはPageSpeed Insightsのタイミングによる誤差)で、期待していた結果は得られませんでした。

この時点で、Swiperは基本的なCLS対応をしたとしてもスコアの改善ができない事が分かりました。おそらくライブラリの発火後に何かしらのレイアウト変更が発生していて、しかもそれが不可避であるためこのスコアになる…ということが推測されます。

ライブラリを諦めてスライダーを自作する

次の手として、Swiper以外のライブラリを探す・試すということも考えましたが、

  • 画像分の高さをあらかじめ保持させる
  • 発火前後で予期せぬ高さ(縦)のレイアウト変更を発生しない

という明確なゴールがありましたので、「自分で作った方が早いだろう」ということで、スライダーを自作するに至りました。

以下は今回自作したスライダーの簡単な仕様解説になります。
※スライダーを作る方法は、他にも様々あると思いますのでご参考程度に。

自作したCLS対応スライダーの仕様をご紹介

コーディング仕様

画像分の高さをあらかじめ保持する

画像分の高さを外側の要素であらかじめ保持させる説明

Swiperの改善施策と同様で、

  • 画像の外側の要素に対してposition: relative;を指定。
  • before属性に対してdisplay: block; padding-top: 38%(←画像の高さ÷画像の幅);を指定。
  • 画像自体にはposition: absolute; top: 0; left: 0; width: 100%; height: auto;を指定。

画像を消してもスライダーの高さが変わらないことを確認しながらコーディングしました。

スライダー自体の高さもあらかじめ保持する

スライダーのアイテムもposition: absolute;で配置したかったので、

  • スライダー自体に対してposition: relative;を指定。
  • before属性に対してdisplay: block; padding-top: 38%(←スライダーのアイテムの高さ=画像の高さ÷画像の幅);を指定。
  • スライダーのアイテムにはposition: absolute;を指定。

こちらも画像と同じ要領で、スライダーのアイテムが無かったとしてもスライダー自体の高さは変わらないことを確認しながらコーディングしました。

JSを切っても見た目はそのままの状態

スライダーの見た目部分のみCSSで作成

JS発火前後のレイアウト変更は極力なくしたかったので、JSを切っても見た目はそのままの動かないスライダーがある状態にコーディングしました。

JS仕様

コーディング作業で、画像読み込み前・JS発火前でも高さやレイアウトが確実に保持されたスライダー(の見た目だけ)が用意できました。
あとはそれにJSを使って動きを付けるだけ。

ということで、とにかくスライド(横)の動きだけをつけるJSにしました。

スライダーのアイテムを横並びに配置するイメージ

スライダーのアイテムをtransform: translateX;を使って横並びに配置する。

スライダー自体も左右に移動させるイメージ

スライダー自体もtransform: translateX;で「次へ」「前へ」の動きをする。

自作スライダーを実装してみた

ここまでの作業で理論上は高さ(縦)のレイアウト変更が全く生じないスライダーができました。

では、実装してみて結果がどうなったか。
以下、自作スライダー実装後のCLSスコアになります。

自作スライダー実装前後のスコア

実装前後 CLSスコア
実装前 0.348
実装後 0.064

結果は大成功で、大幅にCLSスコアを改善することができました。

まとめ

自作スライダーを実装したことで、大幅にCLSスコアを改善する事ができました。当然のことながら、自作スライダーはライブラリ使用と比べて作業コストは遥かに大きくなります。ただスライダーを実装するだけを目的とするならばライブラリで実装する方が早く確実です。

しかし、CLSの面でこれだけの効果が期待できるのであればスライダーを自作するのも決して無駄ではない、むしろコスパが高い作業といえるのではないでしょうか。
スライダー関連のCLSでお困りの場合は、いっそのことライブラリを諦めて自作してみるのも手かもしれませんね。

クーシーブログ編集部

この記事を書いた人

クーシーブログ編集部

1999年に設立したweb制作会社。「ラクスル」「SUUMO」「スタディサプリ」など様々なサービスの立ち上げを支援。10,000ページ以上の大規模サイトの制作・運用や、年間約600件以上のプロジェクトに従事。クーシーブログ編集部では、数々のプロジェクトを成功に導いたメンバーが、Web制作・Webサービスに関するノウハウやハウツーを発信中。

お問い合わせはこちらから

Web制作デザイン、丸ごとお任せ

お問い合わせする

2021/05/31

土田

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加
お問い合わせはこちら

UIUX・サイト設計・フロントエンド(HTML/CSS)の関連記事はこちら

  • 【徹底解説】チャットボットとは?機能・導入メリット・作り方まで詳しく解説

    チャットボットの基本機能から、導入メリット、開発方法までをWeb制作会社クーシーが詳しく解説。Webサイトでの問い合わせ対応を自動化し、業務の効率化を実現するポイントとは?Web担当者向けに、成功するチャットボットの運用方法も紹介します。

    • UIUX・サイト設計
    • PM/ディレクション
  • Webデザインとは?依頼する時にも役立つ基礎から徹底解説!

    Webデザインとは、サイトの見た目や使いやすさなどを設計し、制作を行うことを指します。これには、デザインの構築、レイアウト設計、色彩選定、グラフィックの作成、UIUX設計などが含まれます。Webデザイナーが基礎からわかりやすく解説します。

    • UIUX・サイト設計
    • WebデザインTips
  • UI/UXとは?Webデザインに取り入れるための5つのポイント

    UIはUser Interfaceの略。ユーザーがなんらかの対象と接触するとき、その接点となるものです。そしてUXはUser Experienceの略。サービスなどの利用を通じて、ユーザーが得る体験です。UIとUXは比較的似ており、詳しく解説していきます。

    • UIUX・サイト設計
    • WebデザインTips
  • ScrollTriggerで途中から横スクロールさせる方法【GSAP入門】

    この記事では、スクロールすると画面が横に推移していくページをサンプルに「GSAP(ジーサップ)」と、その拡張機能である「ScrollTrigger」の基本や導入についてご紹介していきます。

    • フロントエンド(HTML/CSS)
  • Webアクセシビリティ入門:誰もが使いやすいWebサイトを作るための第一歩

    本記事では、Webアクセシビリティの基本概念、なぜそれが必要なのか、Webアクセシビリティのポイントついて詳しく解説していきます。

    • UIUX・サイト設計
  • 【アクセシビリティ法規制】世界各国の動向とあなたのサイトへの影響

    今後必ず必要となってくるWebアクセシビリティへの対応の準備として、Webアクセシビリティに関する世界各国の法規制とその動向を探って行きます。

    • UIUX・サイト設計
  • 真似したい!404ページ秀逸デザイン11選【海外サイトもあり】

    ユーザーにユーモアを提示できる、404ページの秀逸デザインを国内・国外から厳選して10個紹介します!

    • 採用サイト
    • UIUX・サイト設計
  • 【おすすめ6選】サイト内検索の導入方法やツールを徹底解説!

    サイト内検索とは、特定のウェブサイト内での情報を検索するための機能やツールのことです。この記事では実際の導入方法やおすすめツールも紹介しています。

    • UIUX・サイト設計

COOSYの
制作実績

UIUXと美しさを両立させた、クーシーが誇る成功事例一覧。
課題解決のアイデア満載です。

制作実績を見る

Web制作の課題はクーシーが解決します

  • Core Web Vitals(パフォーマンス最適化)

    専門家がサイト表示速度を改善し、ユーザー満足度を向上。Google推奨のパフォーマンス指標最適化でSEO効果も高めます。

  • Web制作

    コーポレートサイト、採用サイト、ECサイトまで。最新AI技術を掛け合わせ、各サイトの特性に合わせたUIUX設計を実現します。

  • UIUX設計

    人間中心設計で価値ある体験を創造。SEO・AIOにも貢献し、LTV向上につながる直感的な画面デザインを実現します。

CATEGORY LIST

  • すべての記事一覧

  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット
  • WORKS

    Webサイト・アプリなどの
    様々な実例・制作実績のご紹介

    WORKS
  • CONTACT CONTACT

    Webサイトのご相談、お見積もりはこちらから

    Webサイトのご相談、お見積もりなど
    お気軽にお問い合わせください

ホーム

  • TOP
  • COOSY BLOG
  • 【CLS改善】CLSスコアがスライダーで低下!原因と改善方法
ページトップへ
  • TOP
  • SERVICE

    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
    • Web制作
  • WORKS

    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーションサイト
    • サービスサイト
    • システム開発
  • ABOUT

    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ 岩手
    • ロンドン支社
    • ミャンマー支店
  • RECRUIT

    • ディレクション部
    • デザイン部
    • システム開発部
    • アカウント・プランニング部
    • Webマーケティング事業部
    • 人事・総務部
    • オフショア
    • グローバル事業部
  • BLOG

    • 目的別
    • Web制作ハウツー
    • システム開発
    • Webサイト運用のコツ
    • Webマーケティング
    • 特集

COOSY SNS

  • facebook
  • X
  • お問い合わせ
  • Privacy policy
  • Site Policy
  • Security Policy
© COOSY All Rights Reserved.