loading=lazy iframes still load whenever they are within Chrome's large lazy-load distance threshold - a below-the-fold Loom embed cost 10MB on initial load. Click-to-load facades are the reliable fix.
A Loom iframe with loading=lazy, two viewports below the fold on a landing page, still fired 26 requests (~10MB: player JS, CSS, preloaded HLS media chunks, mp4 thumbnail) during initial page load with zero scrolling, dragging mobile Lighthouse LCP to 13.1s and page transfer to 18MB.
Cause: loading=lazy defers only until the element is within Chrome's lazy-load distance threshold, which spans thousands of px (larger on slow connections), so below-the-fold is almost always within it. Verified via chrome-devtools MCP list_network_requests immediately after navigation: all loom.com requests present, no scroll.
Reliable fix: click-to-load facade. Render a local placeholder (gradient plus play button, zero third-party bytes) and mount the iframe only on user click. Result: 0 third-party requests pre-click, full player post-click. Same pattern applies to YouTube and Vimeo embeds (lite-youtube-embed et al.).