← エラー辞典に戻る

HTML

loading="lazy"が効かない

ファーストビューの画像に指定している

こんな症状

画像にloading="lazy"を付けたのに遅延読み込みされない。画像の最適化をしようとしたときに起きるよ。

まず試す

ファーストビューの画像から loading="lazy" を外し、スクロール下の画像にだけ付ける。

html
<img src="hero.jpg">
<img src="below.jpg" loading="lazy">

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • 最初に見える画像に lazy を付けた
    → ファーストビューの画像は lazy が無視される。外す。
  • width/height が無い
    → <img> に width/height を付ける(位置計算とレイアウトシフト防止)。
  • 効いているか分からない
    → Networkタブで画像の読み込みタイミングを確認する。

なぜ起きる?

ブラウザはファーストビュー(最初に画面に見える範囲)の画像に対してはloading="lazy"を無視するよ。すぐに表示する必要がある画像を遅延させると逆に表示が遅くなるからだ。また、width/heightが未指定だとブラウザが画像の位置を計算できず、遅延読み込みが正しく動作しないことがあるよ。

✕ エラーが起きるコード
<img src="hero.jpg" loading="lazy">
<!-- ファーストビューに lazy は不要 -->
✓ 直したコード
<img src="hero.jpg">
<img src="below.jpg" loading="lazy">

✅ 直ったか確認

Networkタブで、下部の画像がスクロール時に読み込まれればOK。

🆘 まだ直らないときは

画像が少なく全部ファーストビューに収まると、lazy の効果はそもそも見えにくい。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

HTMLコース(基礎から)で根本から理解する →

✏️ 手を動かして練習

練習ドリル一覧で実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 HTMLコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

HTMLコースを始める →

❓ 関連するQ&A