🎯 SEO Basics 🔍 Keyword Research 📄 On-Page SEO ⚙️ Technical SEO 🔗 Link Building 📍 Local SEO ✍️ Content SEO 🌐 Off-Page SEO
🧠 Semantic SEO & NLP 📚 Topical Authority 🏆 E-E-A-T Guide ⭐ Featured Snippets ⚡ Core Web Vitals 🏗️ Schema Markup 📊 PageRank & Link Equity 🖼️ Image SEO 📱 Mobile SEO
🛒 E-Commerce SEO 🌐 WordPress SEO ⚙️ SaaS SEO ✍️ SEO Copywriting 🎥 Video & YouTube SEO 🎙️ Voice Search SEO 🌍 International SEO 📝 SEO for Bloggers 🚀 SEO for Startups
🇬🇧 UK SEO Guide 🏪 Small Business SEO UK 📍 Google Business Profile ⚖️ Law Firms UK 🏠 Estate Agents UK 🍽️ Restaurants UK 🔧 Tradespeople UK
🛠️ SEO Tools Guide 📊 SEO Analytics 🔎 SEO Audit Guide 🏆 Competitor Analysis 💷 SEO ROI & Reporting 📖 SEO Glossary ❓ SEO FAQ 🗺️ SEO Roadmap 🎁 Free Resources
Free Checklist Start learning →

Core Web Vitals 2026 – Fix LCP, INP & CLS to Rank Higher

Core Web Vitals are Google's real-world user experience metrics and a confirmed ranking factor. This guide explains what each metric measures, what good scores look like, and exactly how to fix every common failure case.

What Are Core Web Vitals and Why Do They Affect Rankings?#

Core Web Vitals (CWV) are a set of specific, quantifiable metrics Google uses to measure real-world user experience on web pages. They became an official ranking factor as part of the Page Experience update and Google uses real Chrome user data (the Chrome UX Report / CrUX dataset) to classify each page's performance. Pages scoring "Good" on all three Core Web Vitals have a confirmed ranking advantage in competitive SERPs where content quality is otherwise comparable. More practically, pages with poor CWV scores have higher bounce rates and lower conversion rates — fixing them improves both rankings and commercial performance simultaneously.

2.5sLCP "Good" threshold (target)
200msINP "Good" threshold (target)
0.1CLS "Good" threshold (target)
800msTTFB "Good" threshold (related)

LCP — Largest Contentful Paint#

LCP measures how long it takes for the largest visible element on a page to fully load and render from the user's perspective. This is typically a hero image, a large heading, or a video thumbnail — whatever is the biggest element visible in the initial viewport. LCP is widely considered the most important Core Web Vital because it most directly represents perceived loading speed.

Good: Under 2.5 seconds • Needs Improvement: 2.5–4.0 seconds • Poor: Over 4.0 seconds

How to Fix Poor LCP

1

Optimise and Preload the LCP Image

If your LCP element is an image (the most common case), optimise it: compress to WebP format, serve at the correct display dimensions, and add a <link rel="preload" as="image"> tag in the head to prioritise its loading. Never apply lazy loading to the LCP image — it will delay loading by definition. These combined changes often improve LCP by 1–2 seconds alone.

2

Reduce Server Response Time (TTFB)

A slow server response time delays the entire page load. Target TTFB under 800ms. Improvements: upgrade to faster hosting (managed WordPress hosting like Kinsta or WP Engine have faster TTFB than shared hosting), implement full-page caching (WP Rocket, W3 Total Cache), use a CDN to reduce geographic latency, and optimise database queries if running a CMS. TTFB improvements cascade through all other speed metrics.

3

Eliminate Render-Blocking Resources

CSS and JavaScript that loads synchronously before the main content blocks the browser from rendering the LCP element. Use PageSpeed Insights' "Eliminate render-blocking resources" recommendation to identify offending files. Defer non-critical JavaScript with the async or defer attribute, inline critical CSS, and move non-essential scripts to load after the page is visible.

INP — Interaction to Next Paint#

INP measures how responsive a page is to user interactions — clicks, taps, and keyboard inputs. Specifically, it measures the time from when a user interacts with the page to when the browser renders the next visual update in response. INP replaced FID (First Input Delay) as an official Core Web Vital in March 2024 because it captures the full interaction experience rather than just the first interaction.

Good: Under 200ms • Needs Improvement: 200–500ms • Poor: Over 500ms

How to Fix Poor INP

Poor INP is almost always caused by excessive JavaScript execution on the main thread. The main thread is where the browser handles both JavaScript execution and rendering — when JavaScript monopolises it, user interactions must wait. Fixes: break up long tasks (>50ms) into smaller asynchronous chunks using requestIdleCallback or setTimeout, remove or defer unnecessary third-party scripts (chat widgets, analytics, ad networks are frequent offenders), reduce the total amount of JavaScript your site loads, and avoid synchronous DOM updates triggered by user interactions. In React and similar frameworks, use code splitting and lazy component loading to reduce initial JavaScript bundle sizes.

CLS — Cumulative Layout Shift#

CLS measures visual stability — how much the page content shifts unexpectedly during or after loading. When elements shift, users may click the wrong thing or lose their reading position, creating a frustrating experience. The CLS score is a sum of all unexpected layout shifts throughout the page's lifespan, weighted by the fraction of the viewport affected and the distance elements moved.

Good: Under 0.1 • Needs Improvement: 0.1–0.25 • Poor: Over 0.25

How to Fix Poor CLS

  • Always specify width and height attributes on images and videos: Without dimensions, the browser cannot reserve space for media before it loads, causing content to jump down when images appear. Add explicit width and height to every <img> tag.
  • Reserve space for ads and embeds: Ad slots that load asynchronously are a major CLS contributor. Use CSS min-height to reserve the expected space before the ad loads.
  • Avoid inserting content above existing content: Dynamically injected banners, cookie notices, or sticky headers that push content down after load cause significant CLS. Use CSS transforms for animations instead of properties that affect layout.
  • Use font-display: optional or preload web fonts: Web fonts that load after text is displayed cause a flash of unstyled text (FOUT) and layout shift as text reflows to the new font metrics. Preloading your font files or using font-display: optional prevents this.

Measuring Core Web Vitals: The Right Tools#

ToolData TypeBest For
PageSpeed InsightsField (real user) + LabURL-level diagnosis with specific recommendations
Google Search Console CWV ReportField (28-day real user data)Site-wide overview, identifying worst-performing URL groups
Chrome DevTools LighthouseLab (simulated)Development testing, before-and-after validation of fixes
CrUX Dashboard (Looker Studio)Field (monthly trend)Tracking improvement over time with historical context
WebPageTest.orgLab (detailed)Advanced waterfall analysis for complex performance issues
📌 Field Data vs Lab Data

Field data (real user measurements from actual Chrome users) is what Google uses for ranking. Lab data (simulated measurements from tools) is useful for development and testing but does not directly reflect Google's view of your page. Always check field data in Google Search Console and PageSpeed Insights' "Discover what your real users are experiencing" section to understand your true CWV status for ranking purposes.

Quiz

Test your knowledge

Question 1 of 5

Score: 0/5

Continue learning