Core Web Vitals are three performance metrics created by Google to measure real user experience on your site. Since 2021, they directly influence your search ranking—a slow or unstable site loses positions to faster competitors.
These three indicators (LCP, INP, CLS) measure specific aspects of experience: perceived loading speed, responsiveness to interactions, and visual stability. Unlike traditional technical metrics, Core Web Vitals reflect what your visitors actually experience, not just what a testing tool measures in an artificial environment.
LCP (Largest Contentful Paint): perceived loading speed
LCP measures the time required to display the largest visible element in the browser viewport. This element is typically a hero image, main text block, or video at the top of the page. Google considers a good LCP to be under 2.5 seconds.
Why it matters: LCP reflects how quickly a visitor sees useful content, not just how quickly the page starts loading. A page can start loading in 0.3 seconds but display nothing useful for 4 seconds—LCP captures that gap.
How to improve your LCP
- Optimize your images: compress them without visible quality loss (WebP or AVIF rather than JPEG/PNG), use dimensions adapted to actual display (not a 3000px image displayed at 800px), and enable lazy loading for all images outside the initial viewport.
- Improve server response time: a high TTFB (Time to First Byte) delays everything else. Use a CDN, enable gzip/brotli compression, and optimize database queries on the server side.
- Eliminate render-blocking resources: CSS and JavaScript files that must be downloaded before content displays delay LCP. Load critical CSS inline, defer non-essential JavaScript, and use async/defer for third-party scripts.
- Preload critical resources: if your largest element is an image or font, use
<link rel="preload">to tell the browser to download it as a priority.
To precisely identify what’s slowing down your LCP, run a free SEO audit that measures these metrics in real conditions.
INP (Interaction to Next Paint): responsiveness to interactions
INP measures how quickly your page responds to user interactions (clicks, keyboard presses, mobile taps). Google considers a good INP to be under 200 milliseconds. INP replaced FID (First Input Delay) in March 2024 because it measures all interactions throughout the session, not just the first one.
A high INP means your page feels “stuck” or “laggy” when clicking a button, opening a menu, or typing in a form field. It’s one of the most common frustrations on JavaScript-heavy sites.
How to improve your INP
- Reduce JavaScript executing on the main thread: heavy scripts block the browser and delay responses to interactions. Break long tasks (>50ms) into shorter chunks, use Web Workers to delegate computation off the main thread, and remove unused JavaScript.
- Optimize event listeners: avoid expensive handlers on frequent events (scroll, mousemove). Use debouncing or throttling to limit execution frequency.
- Defer non-critical code: load analytics scripts, live chat, or social widgets after the page is interactive, not during initial load.
- Test on real devices: INP is particularly sensitive to CPU power. A mid-range phone with a slow processor can have an INP 3-4 times higher than a MacBook Pro, even on the same site.
CLS (Cumulative Layout Shift): visual stability
CLS measures unexpected content shifts during loading. You’ve clicked on a link, then an ad loaded above it and you accidentally clicked the ad instead? That’s a bad CLS. Google considers a good CLS to be under 0.1.
Shifts are calculated based on the impacted area and movement distance. A small icon jumping 2 pixels has negligible impact; a text block moving 300 pixels down when an image loads has enormous impact.
How to improve your CLS
- Reserve space for images and videos: always specify width and height in your
<img>and<video>tags. The browser can then reserve the exact space before loading, preventing shifts when the media appears. - Avoid inserting content above existing content: banners, ads, or notifications that insert at the top of the page after initial load cause shifts. Reserve space from the start or display them as overlays without moving content.
- Use system fonts or preload your webfonts: font swapping (FOUT or FOIT) can cause shifts if the custom font has different metrics than the fallback font. Use
font-display: swapcarefully and adjust fallback metrics to minimize shift. - Size ad slots: if you use Google AdSense or display ads, reserve a fixed-size space for each placement, even if the ad doesn’t load immediately.
CLS is also linked to your HTML structure. Good page architecture with well-dimensioned containers naturally reduces shifts. For a comprehensive view of technical optimization, check our local SEO audit guide.
Measuring your Core Web Vitals: lab vs. field data
There are two types of Core Web Vitals data: lab data and field data. Lab data comes from tools like PageSpeed Insights or Lighthouse, which test your page in a controlled environment. Field data comes from real users via the Chrome User Experience Report (CrUX).
Google uses field data for SEO ranking, not lab data. You can have a Lighthouse score of 95/100 but poor ranking if your real users experience slowness. Conversely, a mediocre Lighthouse score may not penalize your SEO if your actual visitors have a good experience.
Check your field data in Google Search Console (“Core Web Vitals” section) or in PageSpeed Insights (“Field Data” tab). If you don’t have enough traffic, CrUX won’t collect data—in that case, focus on lab data while you wait.
Prioritizing fixes based on real impact
Not all Core Web Vitals issues have the same impact. Focus your efforts on pages that generate the most traffic and conversions. A slow product page seen by 10,000 visitors per month deserves more attention than a rarely visited blog post, even if the latter has a worse score.
Use Google Search Console to identify URL groups with similar issues. If 50 pages have high LCP caused by the same unoptimized hero image, fix the template once and all pages improve.
Core Web Vitals are only part of overall user experience. A fast site with poor content or confusing navigation won’t convert better. Combine technical optimization with solid content strategy—explore how SEO and GEO complement each other to maximize your visibility.
Real-world optimization examples and results
An e-commerce site reduced LCP from 4.2s to 1.8s by converting their hero images from JPEG to WebP (60% smaller file size) and implementing a CDN. The result: 23% increase in organic traffic and 15% improvement in conversion rate within 6 weeks.
A news publisher improved INP from 380ms to 150ms by deferring ad scripts and lazy-loading comments sections. Bounce rate dropped 18% and time-on-page increased 31%, signaling better engagement to Google’s algorithms.
A SaaS landing page fixed CLS (from 0.31 to 0.04) by specifying dimensions for all images and reserving space for dynamically loaded testimonials. The fix took 2 hours of developer time and eliminated the #1 user complaint from their feedback surveys.
These aren’t exceptional cases—they’re typical results when you systematically address Core Web Vitals issues on high-traffic pages. The ROI on performance optimization often exceeds content marketing or link building because it compounds every other SEO effort.
Common mistakes that sabotage Core Web Vitals
- Optimizing for Lighthouse score instead of real user data: chasing a perfect 100/100 in lab tests while ignoring what your actual visitors experience in the field.
- Loading too many third-party scripts: analytics, chat widgets, social pixels, A/B testing tools—each adds latency and blocking time. Audit your scripts quarterly and remove what doesn’t provide measurable value.
- Not testing on mobile devices: desktop performance can be excellent while mobile suffers. Test on actual mid-range Android phones, not just iPhone Pros or emulators.
- Ignoring post-load interactions: your page might load fast initially but become sluggish after users interact with filters, accordions, or tabs. INP measures these interactions too.
- Treating Core Web Vitals as a one-time project: new features, plugins, or content types can degrade performance over time. Monitor monthly and set up alerts for regressions.
Frequently asked questions about Core Web Vitals
Do Core Web Vitals affect SEO on mobile and desktop the same way?
Yes, but Google measures mobile and desktop performance separately. Your mobile ranking depends on your mobile Core Web Vitals, and your desktop ranking depends on your desktop Core Web Vitals. In practice, the mobile version is often slower (less stable network, less powerful CPU), so that’s where most issues concentrate.
My Lighthouse score is excellent but PageSpeed Insights shows poor Core Web Vitals. Why?
Lighthouse measures lab data (a single test in a controlled environment), while PageSpeed Insights also displays field data (CrUX, based on real users over the last 28 days). Real users have slower connections, less powerful devices, and variable contexts (browser extensions, empty cache, multitasking). Field data reflects this reality and is what counts for SEO.
How long does it take to see the ranking impact of Core Web Vitals improvements?
CrUX collects data over a rolling 28-day period. An improvement deployed today will start appearing in field data progressively and be fully reflected after 28 days. The SEO impact can take a few additional weeks for Google to recrawl and re-evaluate your pages. Generally, expect 1-2 months to see measurable effects on rankings.
Should I aim for 100/100 on PageSpeed Insights?
No. A score of 90+ is excellent and more than sufficient to avoid Google penalties. Going from 92 to 100 often requires disproportionate effort for negligible SEO gain. Focus on getting all your Core Web Vitals into “good” (green) in field data, not on maximizing a lab score.




