Largest Contentful Paint (LCP) is the time after which the largest element of a page appears on screen. Google considers up to 2.5 s good, so 3.0 s on mobile looked like a problem to fix. Before fixing anything, we checked what exactly PageSpeed measures. It turned out that most of those three seconds didn’t come from the site.
What PageSpeed showed
The mobile result: a performance score of 94, FCP 1.2 s and LCP 3.0 s. The largest element was the header’s background image, a 17 KB file.
The LCP breakdown in the report was surprising. The image started downloading after 90 ms, downloaded in 75 ms and then waited 1.1 s to be displayed. The server responded instantly, the image was ready almost at once, and still the browser didn’t show it.
How Lighthouse calculates LCP
PageSpeed Insights uses Lighthouse. By default, Lighthouse doesn’t actually slow the page down. It loads it quickly, records what happened and then, based on that recording, estimates how long the same thing would take on a slow 4G connection and a CPU four times slower.
To estimate LCP, the model takes into account everything that happened in the fast load before the largest element was displayed: downloaded files and executed scripts. If in the fast load the first paint came late, after all the JavaScript had run, the model assumes the image had to wait for all of that code. In our case that was around 360 KB, including the whole framework.
So the key question was: why did the browser show nothing for so long in the fast load?
Where the late first paint came from
In Lighthouse’s recordings the page was fully loaded after 0.5–0.8 s, while the first frame appeared on screen after 0.9–2.4 s. The browser’s main thread was doing almost nothing in that time. The frames were ready, but the browser displayed them roughly once per second.
We reproduced the same symptom outside Lighthouse by launching Chrome with exactly the flags Lighthouse uses. Turning them off one by one, we got to a single one:
--disable-features=RenderDocument
With just this flag, the first paint of our page came after about 2.4 s every time. Without it, after 0.4–0.6 s. We saw a similar effect on other sites built with Next.js, including react.dev and nextjs.org. On a simple page without JavaScript, such as example.com, the flag changed nothing.
RenderDocument is how modern Chrome creates a new document on every navigation between pages. Turning it off switches the browser to an older mode that none of your users run.
We don’t know exactly how PageSpeed launches Chrome on its servers. We only know that its report showed the same symptom: 1.1 s of waiting to display an image that had already been downloaded.
How long loading really takes
Lighthouse can also actually slow down the connection and the CPU instead of estimating. With the same settings, slow 4G and a CPU four times slower, the same version of our site shows its main image after 1.7–1.8 s. That’s within the 2.5 s Google considers good.
Also remember that the Core Web Vitals assessment in search is based on data from real Chrome users, not on a lab test result. PageSpeed shows that data in a separate section of the report when the site has enough traffic.
What to do about it
Check data from real users. If PageSpeed shows it, it matters more than the lab result.
Measure with real throttling. Lighthouse run from the command line can slow the page down for real instead of simulating:
npx lighthouse https://your-site.com --throttling-method=devtools
Don’t optimize for a measurement error. Among other things, we tried inlining all the CSS into the HTML. With real throttling the text appeared sooner, but the simulated result got 0.15 s worse, because Next.js then sends the CSS twice and the page gets heavier. A change that helps users can make the score worse, and the other way round.
Reduce what loads before the first paint. That helps in both measurements. For us it meant moving code that’s only needed later, such as dragging elements and form validation, so that it loads only when it’s used.
We checked these results in September 2026 on Chrome 153, Lighthouse 12 and Lighthouse 13.5 in PageSpeed Insights. With newer versions they may look different.
If your site has a similar problem, or you want it to be fast from the start, see how we build websites.
Let’s talk about your project
The first call takes 30 minutes and is free. After it, you know whether we can help and what it will cost.
Book a call



