Lazy load generator that produces native loading="lazy" markup for images and iframes. Drop-in HTML you can paste into any template.

<img src="https://example.com/photo.jpg" alt="Description of image" width="1200" height="800" loading="lazy" decoding="async" />
Tip: never lazy-load your hero / above-the-fold image — it delays LCP. Apply loading="lazy" only to images and iframes below the fold.
Generate <img loading="lazy"> with width/height to avoid layout shift.
Use loading="lazy" or a facade pattern to defer the heavy embed.
Falls back gracefully for older browsers or finer control over thresholds.
Generate the CSS + JS to load a hero background only when in view.
No — Google fully supports loading="lazy" and IntersectionObserver as long as content is reachable. Don't lazy-load the LCP image, though, or you'll slow first paint.
Anything above the fold, especially your LCP image. Lazy-loading the hero adds latency to your Largest Contentful Paint.
For most sites, yes. Use IntersectionObserver only when you need custom thresholds, placeholders, or background images.
Yes. Without them the browser can't reserve space and you'll get Cumulative Layout Shift (CLS).
Yes. Paste the snippet into a custom HTML block, or use your theme's templates.
Want your whole site this fast? Our team offers full website speed optimization — done for you .