Chromeブラウザの画像遅延読み込みをサポートするLazyloadが標準に

投稿日:2020.07.21.
更新日:2025.04.12.

SEO

ホームページ制作

株式会社TREVOの月額制ホームページ制作サービス
PR

板浪 雅樹
執筆・編集 板浪 雅樹

2005年から WEB 業界一筋。500サイト超を手がける SEO・WordPress のエキスパート。「公開後こそ本番」を掲げ、データ分析とユーザー視点で成果を引き出す運用を提案。

2005年に制作会社へ入社後、プログラマーからキャリアをスタート。サーバー構築・データベース設計で培った技術を強みに、WordPress テーマ/プラグイン開発やサイト移行の難案件を多数担当してきました。
2010年以降は SEO エンジニアとしても活動領域を拡大。コンテンツ設計・内部リンク最適化・高速化チューニングにより、競合の激しいビッグキーワードで上位獲得を実現してきました。
現在は TREVO のウェブディレクターとして、要件定義から運用改善まで一気通貫でリード。AI ライティングや GA4/Looker Studio を活用したレポーティング手法を開発し、「数字で説明できるサイト運用」をポリシーにクライアントの ROI 最大化を支援しています。
趣味/強み:筋トレとランニングで日々の集中力をキープ。複雑な課題を“仕組み”で解決するのが得意。
モットー:「サイトは資産。改善を止めた瞬間から価値は目減りする」

執筆記事:記事一覧ページ
SNS:x(旧 Twitter)@TREVO_WEB

ブラウザの画像遅延読み込み

GoogleのChromeブラウザがLazyloadを標準で搭載すると発表してから1年近くがたちました。
先週、Gooleのweb.devのサイトで情報が更新されたので使用方法などを再度確認していきます。

これまでのLazyload

これまではjavascriptでLazyloadの設定を行っていました。
SEO対策ではLazyloadの導入は必須でしたがjavascript等の使用は減らした方が良いという、SEO対策の視点からは悩ましい状態が続いていました。
javascriptを使用しな ホームページ制作 は難しいので結局javascriptでLazyloadの設定を行っていました。

去年、Chromeブラウザが標準でLazyloadをネイティブでサポートすると発表され、ほかのブラウザも導入してくれないかなとおもっていました。

対応するブラウザ

発表から1年が経ちLazyloadを標準でサポートするブラウザが増えてきました。

Chromium搭載ブラウザ

  • Chrome
  • Edge
  • Opera

その他のブラウザ

  • Firefox
  • WebKit Safariで対応予定(WWDCで対応を発表)

なぜLazyloadが必要なのか?

多くのホームページで画像が使用されており、画像を表示するために何度も要求されているアセットタイプです。
しかも画像はホームページの中で多くの帯域幅(通信路容量)が必要で、ホームページを開く度に全ての画像を読み込んでいては無駄な通信容量が必要となります。
そこでLazyloadの技術を使用する事で画面では表示されていない画像などの情報の読み込みを制限する事が可能となり、ページの表示速度が上がりユーザーがストレスなくページ移動ができる技術です。

データの節約とビューポートからの距離のしきい値を改善

2020年7月現在、Chromeは開発者の期待に応えるべく、ネイティブ画像の遅延読み込み距離をビューポートからの距離のしきい値に合わせるための大幅な改善を行っています。
高速接続(4Gなど)では、Chromeのビューポートからの距離のしきい値を3000pxから1250pxに、低速接続(3Gなど)ではしきい値を4000pxから2500pxに変更しました。この変更により、2つのことが達成されました。

<img loading=lazy>はJavaScriptの遅延読み込みライブラリが提供する体験に近い動作をします。
新しいしきい値は、ユーザーがスクロールした時点で画像が読み込まれていることを保証することができます。

  • 高速接続(4Gなど):ビューポートからの距離のしきい値を3000pxから1250pxに変更
  • 低速接続(3Gなど):ビューポートからの距離のしきい値を4000pxから2500pxに変更

設定方法

loading属性について

現在、Chrome ではすでに、デバイスのビューポートの位置によって、画像の読み込み優先度が異なっています。ビューポートの下の画像は優先度が低くなりますが、できるだけ早く読み込まれます。

Chrome 76移行のブラウザでは、読み込み属性を使用して、スクロールして到達できる画面外の画像の読み込みを完全に遅らせることができます。

<img src="image.png" loading="lazy" alt="…" width="200" height="200">

ロード属性でサポートされている値は以下の通りです。

  • auto:ブラウザのデフォルトの遅延読み込み動作で、属性を含まないのと同じ
  • lazy:ビューポートからの距離が計算されるまでリソースの読み込みを遅延
  • eager:リソースの読み込みを遅延させます。リソースがページ上のどこにあるかに関係なく、すぐに読み込み

注意:クロムでは利用可能ですがオート値は仕様に記載されていません。変更される可能性があるので、含まれるまでは使わないことをお勧めしています。

画像にはディメンション属性を含める

ブラウザが画像を読み込んでいる間は、画像の寸法が明示的に指定されていない限り、画像の寸法をすぐに知ることはできません。
ブラウザが画像のためにページ上に十分なスペースを確保できるようにするために、すべての<img>タグには幅と高さの両方の属性を含めること。
寸法が指定されていないと、レイアウトのずれが発生する可能性があり、読み込みに時間がかかるページではより顕著に影響がでます。

おすすめはしっかりとwidthとheightの数値を入れる事です。

<img src="image.png" loading="lazy" alt="…" width="200" height="200">

インラインスタイルで直接値を指定する場合

<img src="image.png" loading="lazy" alt="…" style="height:200px; width:200px;">

寸法が含まれていない場合でも、画像は遅延ロードされますが、寸法を指定することでレイアウトシフトの可能性が低くなるとの事です。
画像に寸法を含めることができない場合、画像を遅延ロードすることは、ネットワークリソースを節約することと、レイアウトシフトのリスクが高くなる可能性があることとのトレードオフになると伝えています。

Chromium のネイティブな遅延ロードは、画像が表示されるとロードされるように実装されていますが、まだロードされていない可能性もあり、この場合はそのような画像の幅と高さの属性がないと、累積レイアウトシフトの影響が大きくなります。

100枚の画像を貼ったデモページ

<picture>要素を使って定義された画像を遅延ロード設定したでもページです。

デモページはこちら

<picture>
<source media="(min-width: 800px)" srcset="large.jpg 1x, larger.jpg 2x">
<img src="photo.jpg" loading="lazy">
</picture>

ブラウザはどの<source>要素からどの画像を読み込むかを決定しますが、loading属性はフォールバックの<img>要素に含める必要があるだけです。

最初に表示されるビューポートにある画像を遅延ロードしないようにします。
最初に見えるビューポートにある画像に loading=lazy を設定するのは避けるべきです。

可能であれば、折り目の下に位置する画像にのみ loading=lazy を設定することをお勧めします。熱心に読み込まれた画像はすぐに取得できますが、 怠惰に読み込まれた画像はブラウザがページ上の画像の位置を知るまで待たなければなりません。

まとめ

詳しくは英語のぺーじですがGooleのweb.devで確認する事ができます。
ページの表示スピードはSEO対策では重要なポイントの一つなので、Lazyloadがブラウザで実装してくれるおかげjavascriptを減らすことが出来て助かります。

大阪のホームページ制作会社TREVOでは、最短2日で仮サイトを公開できるスピード対応や、SEO対策に強いオリジナルデザインの制作サービスを提供しています。

関連の記事

CONTACT

ホームページ制作・Web制作に関するご質問やご相談は、
下記フォームよりお問い合わせください。

無料のお見積りや初回のご相談も承っておりますので、「まだ検討中」「ちょっと話を聞いてみたい」といった段階でも大歓迎です。
現状のホームページ診断も無料で実施中です。

0120-83-8567
平日9:00~18:00まで 定休日:土 日 祝