loading=lazy, and the images it must not be on

Deferring offscreen images used to mean an IntersectionObserver, a data attribute and a library. It is now an attribute the browser understands.

<img src="/photo.jpg" width="800" height="600" loading="lazy" alt="">
<iframe src="/map" loading="lazy"></iframe>

<!-- and the ones it must NOT go on -->
<!--   anything above the fold: it DELAYS the LCP image -->
<!--   a logo, a hero, the first product photo -->
<!--   loading="eager" is the explicit opposite -->

Applying it to every image with a blanket filter is the mistake, and it makes the Largest Contentful Paint worse rather than better — the browser now waits to discover the hero image instead of fetching it immediately. The distance at which loading starts differs per engine and per connection speed, so it is a hint rather than a threshold you can rely on. Safari did not enable it by default until 2021, which is a reason to keep the observer for anything where the saving actually matters.