Three measurements stand in for how a page feels. They are worth understanding because each has a different cause and a different fix, and because a good score on a laptop tells you almost nothing about a phone on mobile data.
LCP - when the main thing appears
The time until the largest element in view has rendered: usually the hero image or the headline. Aim under 2.5 seconds.
- Do not lazy-load it - see lazy loading without breaking the layout.
- Serve it as a modern format at the size it is displayed.
- Get the server's first byte down - see what TTFB is.
INP - whether it answers
How long the page takes to respond visibly after a tap or a click. Aim under 200ms. It is nearly always JavaScript occupying the main thread: a large bundle parsing, a third-party tag, an analytics script doing work on every scroll.
CLS - whether it moves
How much the layout shifts after paint. Aim under 0.1. The causes are short: images with no dimensions, ads and embeds with no reserved space, and a web font swapping in at a different size.
Measure it on a real page
npx unlighthouse --site https://yourdomain.com # every page\n# or one page, in Chrome: DevTools > Lighthouse > Mobile
Lab and field are different things
Lighthouse is a simulation on your machine. What search engines use is what real visitors experienced over the last month, which includes old phones and bad connections. A perfect lab score with poor field data means your visitors are not on your hardware.