Core Web Vitals are Google’s attempt to measure something notoriously slippery: whether a web page feels good to use. Not whether it loads quickly in a laboratory, but whether a real person on a real phone on a mediocre connection finds it fast, stable and responsive.
They are a modest ranking factor. They are a very large conversion factor. A slow site quietly wastes every visitor you worked so hard to earn, which is a more expensive problem than any ranking penalty.
The three metrics
Largest Contentful Paint (LCP) — does it load quickly?
LCP measures how long it takes for the largest visible element — usually your hero image or main heading — to appear.
Good: under 2.5 seconds. Poor: over 4 seconds.
This is the closest thing to “how fast does this feel?” It is asking: how long does the visitor stare at a blank screen wondering whether anything is going to happen?
Cumulative Layout Shift (CLS) — does it stay still?
CLS measures how much the content jumps around while loading. If you have ever gone to tap a link, had an advert load above it, and tapped something else entirely — that is CLS, and that is why it is measured.
Good: under 0.1. Poor: over 0.25.
Interaction to Next Paint (INP) — does it respond?
INP measures how quickly the page reacts when someone actually interacts with it — taps a button, opens a menu, expands an accordion.
Good: under 200 milliseconds. Poor: over 500 milliseconds.
A page that looks loaded but does nothing for half a second when tapped feels broken, and INP is what catches that.
How to fix LCP
Nearly always, LCP is an image problem or a server problem.
- Compress your images. This is the single highest-return fix, and most sites are serving images several times larger than necessary. Use modern formats such as WebP.
- Size images correctly. Do not serve a 4000-pixel-wide photograph into a 800-pixel-wide slot.
- Do not lazy-load the hero image. A common and self-defeating error — lazy-loading the very element LCP measures delays it by definition.
- Preload the important image so the browser fetches it early rather than discovering it late.
- Improve your hosting. Cheap shared hosting frequently has a slow server response, and no amount of front-end optimisation fixes a slow server.
- Use a CDN so files are served from near the visitor.
- Reduce render-blocking resources. Stylesheets and scripts in the head that must load before anything appears.
How to fix CLS
CLS is almost always caused by something arriving late and pushing existing content out of the way.
- Set explicit width and height on every image. This lets the browser reserve the space before the image arrives. It is the most common cause and the easiest fix.
- Reserve space for ads and embeds. An advert that loads into a container with no defined height will shove the article down the page. Give every ad slot a minimum height.
- Avoid injecting content above existing content. Banners, cookie bars and notices that appear at the top after load are a guaranteed shift.
- Preload fonts, and set a sensible font-display policy so text does not reflow when the custom font arrives.
How to fix INP
INP is a JavaScript problem, essentially without exception.
- Remove scripts you do not need. Most sites carry a graveyard of analytics, chat widgets, heat maps and abandoned plugins, all competing for the main thread.
- Defer non-critical JavaScript so it does not block interaction.
- Audit your plugins. On a typical content site, a handful of plugins account for the overwhelming majority of the JavaScript, and several of them are doing nothing you actually use.
- Break up long tasks so the browser can respond between them.
The uncomfortable truth about ads
Advertising is the leading cause of poor Core Web Vitals on content sites, and this creates a genuine tension: the ads pay for the site, and they degrade the site.
It is a trade-off, not a problem to be solved outright. But it can be managed:
- Reserve fixed space for every ad slot, always.
- Do not stack ads above the fold where they delay LCP.
- Choose an ad network that takes page speed seriously — the good ones genuinely do.
- Remember that an ad-heavy page which drives readers away earns less than a fast one they stay on.
Optimise for the reader and the metrics follow. Optimise for the metrics and you will eventually produce a very fast page that nobody wants to read.
How to measure honestly
There are two kinds of data, and confusing them causes needless panic.
Lab data is a simulated test on a simulated device. Useful for debugging, and it is not what Google actually ranks on.
Field data is what real users experienced on real devices. This is what counts. Google Search Console’s Core Web Vitals report shows it.
A page can score badly in a lab test and pass on field data comfortably, because your actual readers are on better connections than the simulation assumes. Trust the field data.
A sensible priority order
- Compress your images. Genuinely, most of the problem, most of the time.
- Set width and height on every image. Fixes most CLS in an afternoon.
- Reserve space for ads. Fixes most of the rest.
- Delete plugins and scripts you do not use.
- Upgrade hosting if the server response is slow.
- Stop. Chasing a perfect score is a poor use of time that would be better spent writing.
Passing Core Web Vitals is not a competition to be won. It is a threshold to clear — and once cleared, the returns on further optimisation fall away sharply.
Frequently asked questions about Core Web Vitals
How much do Core Web Vitals affect rankings?
Less than most people assume. They are a modest ranking signal — genuinely useful content will outrank a faster but worse page almost every time. The stronger reason to fix them is that a slow site loses readers and conversions regardless of where it ranks.
My PageSpeed score is poor but Search Console says I pass. Which do I trust?
Search Console. That is field data — what real users on real devices actually experienced — and it is what Google uses. PageSpeed Insights runs a simulated test on a simulated device, which is useful for debugging but is not what you are judged on.
What is the single highest-impact fix?
Compressing your images, followed immediately by setting explicit width and height on every one of them. Between them, those two changes resolve the majority of LCP and CLS problems on a typical content site, and both can be done in an afternoon.
Do ads ruin Core Web Vitals?
They are the leading cause of poor scores on content sites, but the damage is manageable. Reserve fixed space for every ad slot, avoid stacking ads above the fold where they delay the main content, and choose a network that takes page speed seriously. An ad-heavy page that drives readers away earns less than a fast one they stay on.