0.9s
What actually moves LCP
Largest Contentful Paint is one element, almost always the hero image, or the headline block behind it. Every fix below is about that element arriving sooner, and nothing else on the page is allowed to get in front of it.
The hero image is the LCP element, and nothing tells the browser that
The fixRight-sized responsive sources so a phone never downloads the desktop file, eager decoding and a high fetch priority on that one image, and lazy-loading kept strictly below the fold.
The LCP image is a CSS background, so it is discovered late
The fixMoved into markup where the preload scanner can see it before the stylesheet has even finished parsing. This is often the single largest change on the page.
Render-blocking work sits in front of the first paint
The fixEverything that has to be fetched and executed before anything can draw gets cut, deferred or moved. What is left in the critical path is only what the first screen genuinely needs.
Webfonts hold the text hostage
The fixFamilies and weights reduced to what the design actually uses, the connection opened early, and a display strategy that paints text immediately rather than leaving a blank block.
Third-party tags load first and matter last
The fixChat widgets, tag managers and pixels moved behind the first paint or behind an interaction. They rarely have to be there for the hero to draw, and they usually are.

