Core Web Vitals are the three page experience metrics Google uses as ranking signals. They were announced in 2020, became ranking factors in 2021, and have been refined since. Unlike most SEO factors, Google has been unusually transparent about these signals โ naming them, providing measurement tools, and publishing exactly what threshold separates good from poor scores. That transparency means there is no excuse for not knowing where your site stands.
What does LCP (Largest Contentful Paint) measure?
LCP measures how quickly the largest visible element on your page loads. That element is usually your hero image, a large photo, or a large block of text. LCP tracks the moment that element becomes fully visible to the user โ from the moment they start loading the page.
The thresholds:
- Good: LCP under 2.5 seconds
- Needs Improvement: 2.5โ4.0 seconds
- Poor: over 4.0 seconds
The most common causes of poor LCP are large unoptimised images, slow server response times, and render-blocking JavaScript or CSS that delays when the page can start displaying content.
How do you fix a poor LCP score?
The most effective LCP fixes in priority order:
- Compress and convert your hero image to WebP or AVIF format โ this single change is the fastest LCP improvement for most image-heavy pages
- Add a
loading="eager"andfetchpriority="high"attribute to your hero image so the browser prioritises loading it immediately - Improve server response time โ if your Time to First Byte (TTFB) is over 600ms, server performance or hosting quality is limiting LCP
- Remove or defer render-blocking JavaScript that delays page painting
What does INP (Interaction to Next Paint) measure?
INP measures how quickly your page responds to user interactions โ clicks, taps, and keyboard inputs. It replaced the previous FID (First Input Delay) metric in March 2024. Where FID only measured the first interaction, INP measures all interactions throughout the entire page session and reports the worst one.
The thresholds:
- Good: INP under 200 milliseconds
- Needs Improvement: 200โ500 milliseconds
- Poor: over 500 milliseconds
Poor INP is almost always caused by JavaScript blocking the browser's main thread. When JavaScript is running, the browser cannot process user interactions, creating the feeling that the page is frozen or unresponsive.
How do you fix a poor INP score?
INP improvements require JavaScript optimisation:
- Break up long JavaScript tasks โ any task taking over 50ms blocks the main thread. Split large functions into smaller chunks using
setTimeoutorscheduler.yield() - Remove or defer unused JavaScript โ third-party scripts (chat widgets, analytics, ad code) frequently cause INP issues on pages where they are not necessary
- Use web workers to move heavy computation off the main thread entirely
What does CLS (Cumulative Layout Shift) measure?
CLS measures how much your page content unexpectedly shifts around while loading. You have experienced poor CLS when you try to click a button and it suddenly moves as something above it loads, causing you to click something else entirely. Or when an ad banner appears and pushes the article text down after you have already started reading.
The thresholds:
- Good: CLS under 0.1
- Needs Improvement: 0.1โ0.25
- Poor: over 0.25
How do you fix a poor CLS score?
CLS has the clearest fixes of the three Core Web Vitals:
- Always specify width and height attributes on images โ this reserves the exact space before the image loads, preventing text from jumping when the image appears
- Reserve space for ad slots โ ad containers with no defined dimensions cause content to jump when ads load. Define a minimum height for every ad placement.
- Avoid inserting content above existing content โ banners, cookie notices, and dynamic content that appear above the fold after page load are common CLS causes
- Use transform animations instead of position/size changes โ CSS transitions that change element size or position contribute to CLS; transform animations do not
How do you check your Core Web Vitals scores?
You have three reliable ways to check your scores:
- Our page speed tool โ test any URL instantly for all three Core Web Vitals with specific recommendations
- Google Search Console โ Core Web Vitals report โ shows field data (real user measurements) across all your pages, separated by mobile and desktop
- Google PageSpeed Insights โ provides both lab data (simulated) and field data for any individual URL
Always prioritise field data over lab data. Field data reflects real user experiences on real devices and real connections โ this is what Google actually uses for ranking. Lab data is useful for diagnosing specific issues but may not reflect your actual score.
Do Core Web Vitals affect all websites equally?
The ranking impact of Core Web Vitals is most significant in competitive niches where multiple pages have similar content quality, similar backlink profiles, and similar relevance signals. In those situations, page experience becomes a genuine tiebreaker.
For new sites or pages competing for low-competition long-tail keywords, content quality and topical relevance matter far more than marginal Core Web Vitals improvements. A page with Good scores that has weak content will consistently lose to a page with Needs Improvement scores that has excellent content.
Summary
- Core Web Vitals are three Google ranking signals: LCP (loading speed), INP (responsiveness), and CLS (visual stability)
- LCP under 2.5s, INP under 200ms, and CLS under 0.1 are the Good thresholds to target
- Fix LCP with image compression and format conversion to WebP/AVIF, hero image prioritisation, and server response improvements
- Fix INP by breaking up long JavaScript tasks and removing unnecessary third-party scripts
- Fix CLS by specifying image dimensions, reserving space for ads, and avoiding content insertion above the fold
- Check your scores with our speed tool and use Search Console field data as the authoritative measurement
Continue reading: What is a sitemap and do you actually need one for SEO?