- 表示高速化
- 更新日:
PageSpeed Insightsで「オフスクリーン画像の遅延読み込み」と提案された場合、何を示しているのか、具体的な対策を紹介します。
目次
オフスクリーン画像の遅延読み込みとは
オフスクリーン画像の遅延読み込みとは、ページ内の画像を一気に読み込まず、ブラウザに表示されている画像だけ先に読み込む技術です。
これによってページの表示スピードが上がります。
オフスクリーン画像の遅延読み込みは、PageSpeed Insightsで提案された場合のみ実施すると良いでしょう。
むやみに全ページに取り入れると、かえって高速化を妨げるおそれがあります。
オフスクリーン画像の遅延読み込みの重要性
オフスクリーン画像の遅延読み込みは、表示スピード改善のための施策の1つです。
表示速度が遅いと「直帰率が上がる」「SEO順位が下がる」などのリスクがあるため、PageSpeed Insightsのスコアが低いページは早めに改善することをおすすめします。
「Page Speed Insightsを活用しきれているか不安」という方は、こちらのページもご覧ください。
Google Page Speed Insightsの使い方を解説!ページの表示スピードを上げよう
【WordPress】プラグインを使用した改善方法
ここからは、オフスクリーン画像の遅延読み込みの方法を紹介します。まずは、WordPressのプラグインを使った方法です。
オフスクリーン画像の遅延読み込みの設定ができるプラグインは、複数あります。
複数のプラグインでオフスクリーン画像の遅延読み込みの設定をすると、不具合が起こり得るため、設定が重複しないよう注意しましょう。
EWWW Image Optimizer
「EWWW Image Optimizer」は、アップロードされた画像を自動で圧縮するプラグイン。
オフスクリーン画像の遅延読み込みの設定もでき、画像の最適化に有効です。
設定方法は次の通りです。
1.インストール
WordPressのプラグイン追加画面からEWWW Image Optimizerをインストールし、有効化します。
2.遅延読み込みをチェック
「EWWW Image Optimizer」の設定画面で、「基本」タブ内の「遅延読み込み」にチェックを入れます。
Autoptimize
「Autoptimize」でも、オフスクリーン画像の遅延読み込みが設定できます。
ソースコードを最適化してサイズを軽減させるプラグインとして紹介されることが多く、導入することでPage Speed Insightsの「レンダリングを妨げるリソースの除外」の施策にもつながります。
設定方法は次の通りです。
1.インストール
WordPressのプラグイン追加画面からAutoptimizeをインストールし、有効化します。
2.Lazy-load imagesをチェック
「Autoptimize」の設定画面で、「image」タブ内の「Lazy-load images」にチェックを入れます。
【WordPress以外】jQueryライブラリの読み込み
WordPress以外のサイトでは、jQueryライブラリにある「lazyload.js」を実装することでオフスクリーン画像の遅延読み込みが設定できます。
設定方法は次の通りです。
1.imgタグの変更
対象画像のimgをdata-original属性に設定し、class属性を追加します。
<img data-original="sample.jpg" class="lazy">
2.ライブラリの読み込み
lazyloadを呼び出す下記のコードを追加します。
<!-- jQueryライブラリ読み込み --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> <!-- lazyloadライブラリ読み込み --> <script src="https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.min.js"> <!--Lazy Load起動 --> <script> $(function() { $("img.lazy").lazyload(); }); </script>
【WordPress以外】Intersection Observerの実装
上記のjQueryライブラリは簡単に実装できるものの、画像がインデックスされないというデメリットもあります。
そこでGoogleが推奨しているのが、JavaScriptの機能の1つであるIntersection Observerです。
設定方法は次の通りです。
1.ダミー画像を用意
オフスクリーン時に読み込ませるための、軽量なダミー画像を用意します。
2. imgタグの変更
imgのsrc属性にダミー画像を指定し、data-src属性に遅延読み込みさせる画像を指定します。
表示ズレを防ぐために、画像サイズの指定も必ず行いましょう。
<img src="picture/dummy.jpg" data-src="sample.jpg" class="imgdelay" width="" height="" alt="">
3. Javascriptの追加
下記のスクリプトを記述します。
<script> document.addEventListener("DOMContentLoaded", function() { var lazyImages = [].slice.call(document.querySelectorAll("img.imgdelay")); if ("IntersectionObserver" in window) { let lazyImageObserver = new IntersectionObserver(function(entries, observer) { entries.forEach(function(entry) { if (entry.isIntersecting) { let lazyImage = entry.target; lazyImage.src = lazyImage.dataset.src; if (typeof lazyImage.dataset.srcset === "undefined") { }else{ lazyImage.srcset = lazyImage.dataset.srcset; } lazyImage.classList.remove("imgdelay"); lazyImageObserver.unobserve(lazyImage); } }); }); lazyImages.forEach(function(lazyImage) { lazyImageObserver.observe(lazyImage); }); } else { // Possibly fall back to a more compatible method here } }); </script>
4. polyfillライブラリの読み込み
古いブラウザでもオフスクリーン画像の遅延読み込みが機能するよう、polyfillというライブラリを読み込ませます。
<script src="https://polyfill.io/v2/polyfill.min.js?features=IntersectionObserver"></script>
まとめ
本記事では、PageSpeed Insightsで「オフスクリーン画像の遅延読み込み」と提案された場合の対処法を紹介しました。
表示スピード改善のためには、PageSpeed Insightsで提案された施策を地道に実施していくことが大切です。
なかなか効果を感じられなければ、「デジタルアイデンティティ」へご相談ください。
Webサイト全体の表示スピードを診断!低速ページを一気に検出!
デジタルアイデンティティでは、お客様のWebサイト全体の表示スピードを診断し、低速ページを検出するサービスを提供しています。
主要なページはもちろん、サイト内の全ての低速なページの改善をおこなうことで、SEOやアクセシビリティに好影響があると考えられます。
しかし、サイトの規模が大きくなるほど、すべてのページを手動で診断することは現実的ではありません。
弊社の「低速ページ検出サービス」では、ドメイン内のすべてのURLの表示速度を診断し、低速ページの一覧とともに50項目以上の診断で低速になっている要因を分析。また、ご希望に応じて具体的な改善施策のご提案もいたします!
こんなお悩み、ありませんか?
- サイト内のすべてのページの表示速度を調査したい…
- サイト全体のUI/UX、アクセシビリティを向上させたい…
- サイト全体のSEO対策を強化したい…
- どこから改善をすれば良いかわからない…
様々なWebサイトの高速化を達成してきた技術とノウハウで、貴社サイトを診断いたします!