masakichi-code

独学エンジニアの技術ブログ

imgタグに遅延読み込みするやり方【backgroundの背景にもできます】

  • JavaScript
  • WordPress

2023.05.30(火)

imgタグに遅延読み込みするやり方【backgroundの背景にもできます】
『画像の遅延読み込みってどうやるの?』『遅延読み込みの記述のやり方を知りたい』『画像のファイルサイズを小さくしたい』

こういった疑問に答えます。

本記事の内容

  • imgタグに遅延読み込みする
  • backgroundプロパティに遅延読み込みする
  • 画像の圧縮ツールで高画質圧縮する

Webエンジニア歴1年
WordPressの運営&立ち上げ70サイト以上かかわっている

こういった私が解説していきます。

1. imgタグに遅延読み込みする

  • その①:imgタグに『loading=”lazy”』と入れる
  • その②:FV(ファーストビュー)には指定しない

その①:imgタグに『loading=”lazy”』と入れる

ホントにそれだけ?

ホントにimgタグにloading=”lazy”と入れるだけで遅延読み込みされます。
次のような感じで使っています。

その②:FV(ファーストビュー)には指定しない

FVってなに?

FVとは、サイトを訪れたときに最初に見れる部分です。
ヘッダーやキービジュアルなどがFVにあたります。

なぜFVには指定しないの?

FVに遅延読み込みすると表示されるまでの待ち時間が発生するからですね。
また、表示されるまで3秒以上かかると半分は直帰するなんて言われています。
さらにLCP(Largest Contentful Paint)と呼ばれる『メインコンテンツの読み込み速度』にも影響してきます。
そのため、FVの画像には遅延読み込みしない方が良いです。

2. backgroundプロパティに遅延読み込みする

  • その①:『lazysizes』を使う
  • その②:実際に指定する

その①:『lazysizes』を使う

lazysizesとは?

遅延読み込みさせるためのjsです。
classに『lazyload』とdata-srcにファイルパスを指定するだけで、カンタンに遅延読み込みをしてくれます。
下記からダウンロードしてみてください。
https://github.com/aFarkas/lazysizes

imgタグに遅延読み込みするやり方【backgroundの背景にもできます】

使うのは『lazysizes.min.js』と『ls.unveilhooks.js』です。
lazysizes.min.js単体だとimgタグにloading=”lazy”するのと一緒です。
ls.unveilhooks.jsとセットで使うことでbackgroundの背景画像にも遅延読み込みできます。

その②:実際に指定する

まず読み込みする

HTMLファイルで読み込みする場合は下記のように書きます。

functions.phpで読み込みする場合は下記のように書きます。

指定のやり方

classに『lazyload』と付けて、『data-bg=”〇〇〇”』のようにいれます。
読み込みが終わったらlazyloadがlazyloadedに置き換わり、data-bgの画像が表示されます。

3. 画像の圧縮ツールで高画質圧縮する

  • その①:画像は圧縮しておく
  • その②:ラッコツールをご紹介

その①:画像は圧縮しておく

画像のファイルサイズは小さくしておく

画像のファイルサイズが3MBを超えていると表示まで時間がかかってしまいます。
欲をいうと1MB以下にしておきたいですね。
次に紹介するツールでは、高画質な圧縮ファイルを生成できました。

その②:ラッコツールをご紹介

ラッコツールの画像圧縮が最高

TinyPNGをはじめとする圧縮ツールを試してみて、ラッコツールの画像圧縮が控えめに言って最高でしたw
使い方はカンタンで、画像をドラッグ&ドロップして『高』にチェックを入れて圧縮ボタンを押します。
そうすると圧縮されたファイルが下に出てくるのでダウンロードします。

imgタグに遅延読み込みするやり方【backgroundの背景にもできます】

以上、画像の遅延読み込みについてご紹介しました。
ではまた。