Core Web Vitals Explained & How to Pass Them

Core Web Vitals are three real-user metrics Google uses to measure a page's speed and visual stability: Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS). To pass, keep LCP at or under 2.5 seconds, INP at or under 200 milliseconds, and CLS at or under 0.1.

Key takeaways

  • Core Web Vitals are part of Google's page experience ranking signals, so passing them helps both your visitors and your SEO.
  • The three metrics measure loading (LCP), responsiveness (INP), and visual stability (CLS).
  • Good scores as of 2026 are LCP ≤ 2.5s, INP ≤ 200ms, and CLS ≤ 0.1.
  • INP replaced First Input Delay (FID) as a Core Web Vital in March 2024, so responsiveness now counts across the whole visit, not just the first click.
  • Google ranks on field data (real visitors, from the CrUX dataset), while lab data from tools like Lighthouse is only for debugging.

Why Core Web Vitals matter

You have probably seen the phrase "Core Web Vitals" in a PageSpeed Insights report or a Search Console email and wondered whether it actually affects you. It does. Core Web Vitals are Google's attempt to put numbers on something visitors feel every day: does the page load quickly, does it react when I tap, and does it hold still while I read? When any of those go wrong, people leave.

There are two reasons to care. First, users: a page that loads fast, responds instantly, and does not jump around keeps people on your site and makes them more likely to buy, sign up, or read on. Second, search: Core Web Vitals are part of Google's page experience signals, the group of ranking factors that reward pages which are pleasant to use. They are not the biggest ranking factor — relevance and content quality still lead — but when two pages are close, the faster, steadier one has the edge.

This guide is for site owners and WordPress users who want plain-English definitions, the exact thresholds that count as passing, and a practical list of fixes for each metric. It sits under our wider guide to website speed optimization, which covers the full picture of making a site fast. Don't worry if the metrics look intimidating at first — each one maps to a small set of fixable causes.

What the three Core Web Vitals are

Core Web Vitals measure three different parts of the experience. Each has its own threshold — a cut-off value — that sorts your page into good, needs improvement, or poor. Google judges each metric at the 75th percentile, meaning 75% of your real visits must hit the "good" bar for the page to pass. The thresholds below are current as of 2026.

Largest Contentful Paint (LCP) — loading

Largest Contentful Paint (LCP) measures how long it takes for the largest visible element on the screen to render — usually your hero image, a banner, or the main heading. In plain terms, it is the moment the page looks loaded to the visitor. A slow LCP feels like staring at a half-blank screen.

LCP thresholds (as of 2026): good is 2.5 seconds or less, needs improvement is between 2.5 and 4 seconds, and poor is over 4 seconds. LCP is heavily influenced by two things: your server response time (how quickly the server sends the first byte, known as TTFB) and the size and loading of the hero image. Fix those two and LCP usually falls into line.

Interaction to Next Paint (INP) — responsiveness

Interaction to Next Paint (INP) measures how quickly the page visually responds when someone interacts with it — a click, a tap, or a key press. It looks at the delay between the action and the next time the screen updates, across the whole visit, and reports close to the worst interaction. A high INP is the lag you feel when you tap a menu and nothing happens for a beat.

INP thresholds (as of 2026): good is 200 milliseconds or less, needs improvement is between 200 and 500 milliseconds, and poor is over 500 milliseconds. INP replaced First Input Delay (FID) as a Core Web Vital in March 2024. The old FID metric only measured the delay on the very first interaction; INP measures responsiveness for the entire session, which is a far tougher and more honest test. INP is driven mainly by JavaScript — the code that runs in the browser — because heavy scripts keep the browser too busy to respond.

Cumulative Layout Shift (CLS) — visual stability

Cumulative Layout Shift (CLS) measures how much the page unexpectedly shifts around while it loads. It is a score, not a time. You have felt bad CLS when you go to tap a button, an image loads above it, and the whole layout jumps so you tap the wrong thing. CLS adds up every one of those unexpected moves.

CLS thresholds (as of 2026): good is 0.1 or less, needs improvement is between 0.1 and 0.25, and poor is over 0.25. The score has no unit — it is a ratio of how far things moved relative to the screen. CLS is almost always caused by images, ads, or embeds that load without reserved space, or by late-loading fonts that reflow the text once they arrive.

Metric Measures Good Needs work Poor
LCPLoading≤ 2.5s2.5–4s> 4s
INPResponsiveness≤ 200ms200–500ms> 500ms
CLSVisual stability≤ 0.10.1–0.25> 0.25

To pass Core Web Vitals overall, all three metrics must reach the "good" band for most of your real visitors. A single metric in the poor range means the page fails, so it pays to know which one is dragging you down before you start fixing.

How to measure your Core Web Vitals

Before you fix anything, measure. There are three tools worth knowing, and the difference between them matters more than most people realise.

Google PageSpeed Insights is the quickest place to start. Enter any URL at pagespeed.web.dev and it shows two sets of numbers: field data (what real visitors experienced over the last 28 days) at the top, and lab data (a single simulated test) below. This one page tells you both whether you are passing and where the bottleneck is.

The Core Web Vitals report in Google Search Console shows how your whole site is doing, grouped into "good," "needs improvement," and "poor" URLs for mobile and desktop. This is the report Google itself watches, and it is the best way to see the scale of a problem across many pages rather than one at a time.

The CrUX dataset — short for the Chrome User Experience Report — is the raw source of the field data both tools above rely on. It collects anonymous, real-world measurements from actual Chrome users who visit your site. If your page does not have enough traffic, CrUX may not have data for it yet, which is why brand-new pages often show "no field data available."

Field data vs lab data — the key distinction. Field data comes from real visitors (via CrUX) on real devices and networks, and it is what Google actually uses for ranking. Lab data comes from a controlled test in a tool like Lighthouse; it is repeatable and great for debugging, but it is a simulation, not your real audience. When the two disagree, trust the field data for whether you pass, and use the lab data to work out why.

How to improve LCP (loading)

LCP is a race to paint the largest element. Almost every slow LCP comes down to a slow server, a heavy hero image, or code that blocks rendering. Work through these in order.

  1. Improve your server response time (TTFB). TTFB (Time to First Byte) is how long the server takes to send the first byte of the page, and a slow one delays everything after it. Aim for a TTFB under about 200ms. Faster hosting, less bloated code, and a lighter database all help — our guide to reducing server response time walks through the causes and fixes in detail.
  2. Enable caching and a CDN. Caching stores a ready-made copy of your page so the server does not rebuild it every visit, and a CDN (Content Delivery Network) serves your files from a location near each visitor. Together they cut LCP for everyone, especially visitors far from your server. On WordPress, a caching plugin plus your host's CDN is usually enough.
  3. Optimize and preload the hero image. The largest element is often the hero image, so make it small and load it early. Save it in a modern format such as WebP or AVIF, size it correctly, and give the browser a head start with <link rel="preload"> and the attribute fetchpriority="high". Never lazy-load the hero image — that delays the very thing LCP measures.
  4. Remove render-blocking resources. CSS and JavaScript that load in the <head> can freeze rendering until they finish. Defer non-critical scripts with defer or async, inline the small amount of "critical" CSS needed for the top of the page, and load the rest afterwards so the hero can paint sooner.

How to improve INP (responsiveness)

INP is almost entirely a JavaScript problem. When the browser's main thread is busy running scripts, it cannot respond to a tap or click, so the fix is to give it less work and to break the work into smaller pieces.

  1. Reduce and optimize JavaScript. Every script the browser downloads and runs competes for the same main thread. Remove plugins and scripts you do not need, minify what is left, and only load code on pages that use it. Less JavaScript is the single most effective INP fix.
  2. Break up long tasks. A long task is any piece of JavaScript that runs for more than 50ms without pausing, and it blocks the browser from responding the whole time. Split heavy work into smaller chunks and yield back to the browser between them so it can react to the user in the gaps.
  3. Minimize and defer third-party scripts. Analytics, chat widgets, ad tags, and social embeds are common INP killers because you do not control their code. Load only the ones you truly need, add defer or async, and delay non-essential ones until after the user first interacts with the page.
  4. Avoid heavy work on interaction. When someone clicks, run only the small piece of code needed to show a response, then do the rest afterwards. Show the visual result first — open the menu, highlight the button — and let slower background work happen once the screen has already updated.

How to improve CLS (visual stability)

CLS is caused by things that arrive late and push existing content out of the way. The fix is to reserve the right amount of space up front so nothing has to move when the late content lands.

  1. Set width and height on images and video. Always include the width and height attributes (or a CSS aspect-ratio) on every image and video. This tells the browser how much room to reserve, so text does not jump when the image finally loads. This one change fixes most CLS problems on its own.
  2. Reserve space for ads and embeds. Ads, iframes, and social embeds often load after the page and shove content down. Give each slot a fixed minimum height in CSS so the space is held from the start, even before the ad or embed appears.
  3. Avoid inserting content above existing content. Banners, cookie notices, and "you might also like" boxes that appear at the top after load push everything down and score badly. If you must add them, reserve their space in advance or insert them below the fold where they will not move what the reader is looking at.
  4. Use font-display to prevent font-swap shifts. When a web font loads late and replaces the fallback, the text can reflow. Set font-display: optional or swap and preload key fonts so the switch causes little or no movement. Matching the fallback font's size to the web font also reduces the shift.

Common mistakes to avoid

Warning: A perfect Lighthouse score does not mean you pass. Google ranks on field data from real visitors, so a page can show 100 in the lab and still fail Core Web Vitals if real users on slower phones and networks have a worse experience. Always confirm with field data in PageSpeed Insights or Search Console.

Chasing a perfect lab score while field data still fails. It is easy to obsess over the Lighthouse number because it changes instantly when you tweak something. But that number is a simulation on one device. If your Search Console report still shows "poor" URLs, the lab score is lying to you — fix for real visitors, not for the test.

Ignoring INP now that it replaced FID. Many sites passed the old First Input Delay easily and assumed responsiveness was solved. INP is much stricter because it measures every interaction, not just the first. If you have not looked at your INP since March 2024, check it now — plenty of previously passing sites quietly slipped into "needs improvement."

Not setting image dimensions. Leaving width and height off images is the most common cause of a failing CLS, and it is one of the easiest to fix. Add the attributes to every image and video and a large share of layout shift disappears in one edit.

How to keep passing over time

Check Search Console monthly. Core Web Vitals are measured on a rolling 28-day window of real traffic, so scores drift as your site and your visitors change. A quick monthly look at the Core Web Vitals report catches a regression before it spreads across many pages.

Test new plugins and scripts before they go live. A single new plugin, ad tag, or tracking script can wreck INP or add layout shift. Measure a page in PageSpeed Insights before and after you add anything heavy, and drop it if the cost is not worth it. On WordPress, our guide to speeding up WordPress covers the plugins and settings that matter most.

Keep your platform lean. Fewer plugins, an efficient theme, current PHP, and enough server resources all keep every metric healthy at once. Bloat is the enemy of all three vitals, so treat every addition as a cost, not a freebie.

Set a budget and stick to it. Decide on target numbers — say LCP under 2.5s and INP under 200ms — and treat any change that breaks them as a bug to fix, not a number to explain away. Prevention is far cheaper than a rescue mission after rankings dip.

Frequently asked questions

What are Core Web Vitals in simple terms?

Core Web Vitals are three scores Google uses to measure how good a page feels to real users: how fast it loads (LCP), how quickly it responds when you tap or click (INP), and how much it jumps around while loading (CLS). Pass all three and your page is fast, responsive, and stable.

What is a good LCP, INP, and CLS score?

As of 2026, a good score is LCP of 2.5 seconds or less, INP of 200 milliseconds or less, and CLS of 0.1 or less. To pass overall, at least 75% of your real visits must hit the "good" band for every metric. A single metric in the "poor" range means the page fails.

Are Core Web Vitals a ranking factor?

Yes, but a modest one. Core Web Vitals are part of Google's page experience signals, so they can help a page rank when other factors are close. They will not rescue thin or irrelevant content — relevance and quality still matter most — but for two similar pages, the faster, steadier one has an advantage.

What is the difference between lab data and field data?

Field data comes from real visitors on real devices, collected in the CrUX dataset, and it is what Google uses for ranking. Lab data comes from a single simulated test in a tool like Lighthouse and is used for debugging. When they disagree, trust field data for whether you pass and use lab data to find out why.

What replaced First Input Delay (FID)?

Interaction to Next Paint (INP) replaced First Input Delay as a Core Web Vital in March 2024. FID only measured the delay on the first interaction, while INP measures responsiveness across the whole visit. That makes INP a stricter, more realistic test, so some sites that passed FID need to improve their JavaScript to pass INP.

Why does my page have no field data?

Field data comes from real Chrome users, so a page needs enough traffic before the CrUX dataset can report on it. New or low-traffic pages often show "no field data available." Until then, rely on lab data from PageSpeed Insights for guidance, and check back once the page has been getting visitors for a few weeks.

Which Core Web Vital should I fix first?

Fix whichever one is in the "poor" band, because a single failing metric fails the whole page. If more than one is poor, LCP is usually the best starting point since improving your server response time and hero image often helps the overall experience the most. Use PageSpeed Insights to see which metric is worst for real users.

Summary

Core Web Vitals boil down to three questions: does the page load fast (LCP ≤ 2.5s), respond fast (INP ≤ 200ms), and stay still (CLS ≤ 0.1)? Measure with PageSpeed Insights and Search Console, trust the field data for whether you pass, and fix the worst metric first — a faster server and hero image for LCP, lighter JavaScript for INP, and reserved space for images and fonts for CLS. Remember that INP replaced FID in March 2024, so responsiveness now counts across the whole visit. For the full picture of a fast site, continue with our main guide to website speed optimization, and if you run WordPress, our guide to speeding up WordPress turns these fixes into concrete plugin and setting changes.

References

  • Google web.dev — Core Web Vitals, and the individual guides to LCP, INP, and CLS (metric definitions and thresholds).
  • Google Search Central — Understanding page experience in Google Search results and the Core Web Vitals report in Search Console.
  • Google — Chrome User Experience Report (CrUX) documentation (field data source).
  • Google web.dev — INP replaces FID announcement (change made March 2024).
Bitrich777 Hosting Team
About the author

The editorial team behind the Bitrich777 Hosting Help Center — practical, tested guides on web hosting, WordPress, servers, DNS, SSL, email, security and migration. Every walkthrough is reproduced on a live host before it is published.

Spotted an error? Tell us