Core Web Vitals for WordPress in 2026: The Thresholds, and What Actually Moves Them

Same URL. Same PageSpeed report. Same second, 2 September 2026 at 21:32 IST. Desktop scored 96 with a Largest Contentful Paint of 1.0 seconds.

Mobile scored 79 with an LCP of 4.5 seconds. Nothing about the site changed between those two numbers. Only the emulated device did.

PageSpeed Insights desktop report for adityaarsharma.com showing performance 96, LCP 1.0 seconds, CLS 0.003, and No Data for field results.
PageSpeed Insights, desktop tab, adityaarsharma.com. Screenshot taken 2 September 2026 from pagespeed.web.dev. Performance 96, LCP 1.0 s.
Largest Contentful Paint of 1.0 seconds on desktop against 4.5 seconds on mobile for the same URL.
Built from the PageSpeed run at the top of this post, 2 September 2026 at 21:32 IST. Lab data.

The gap is the device, not the site

4.5 seconds is a failing LCP. 1.0 second is a comfortable pass. If you have ever screenshotted your desktop score, you have shown someone a number that describes almost none of your traffic.

That is the first thing to fix, and it is free.

Below are the current thresholds with the date I read each page, where those numbers came from, and which of them a WordPress site can actually move.

Table of Contents

I checked every figure against Google’s own documentation today rather than repeating what the tutorials say.

The thresholds, as published, with dates

The web.dev Web Vitals article showing the LCP, INP and CLS threshold bars with 2.5 and 4.0 seconds, 200 and 500 milliseconds, and 0.1 and 0.25.
web.dev/articles/vitals, screenshot taken 2 September 2026. The page header reads Published: May 4, 2020, Last updated: October 31, 2024.
MetricGoodNeeds improvementPoorPage and date I read it
Largest Contentful Paint2.5 s or less2.5 to 4.0 sover 4.0 sweb.dev/articles/lcp, last updated 4 September 2025
Interaction to Next Paint200 ms or less200 to 500 msover 500 msweb.dev/articles/inp, last updated 2 September 2025
Cumulative Layout Shift0.1 or less0.1 to 0.25over 0.25web.dev/articles/cls, last updated 12 April 2023

How the assessment actually works

All three are assessed at the 75th percentile of page loads, segmented across mobile and desktop. A page passes only if it meets all three at that percentile.

Those numbers have not moved in 2026. The set has not gained a fourth metric. If someone tells you the thresholds changed this year, ask them for the page and the date.

The one change: INP replaced FID in March 2024

The one real change since the last time most people looked is that Interaction to Next Paint replaced First Input Delay as a Core Web Vital on 12 March 2024.

Google announced it on web.dev in a post last updated 31 January 2024, and was blunt about the consequence: FID was deprecated and removed from the programme, dropped from Search Console on the same day, with a six-month deprecation window in PageSpeed Insights and the Chrome User Experience Report.

Why INP broke sites that had passed FID

This is the part worth understanding, because it explains a specific pattern in WordPress: sites that were green for years suddenly went amber and nothing had been installed.

What FID measured

First Input Delay measured only the delay between the first interaction and the moment the browser began processing it. It stopped the clock before your code ran.

A page could block the main thread for two seconds after the click and still post a fine FID, because the delay before processing was short.

What INP measures instead

Interaction to Next Paint measures the whole thing: input delay, plus the event handlers running, plus the browser painting the next frame that shows the result.

And it does not take the first interaction, it effectively reports the worst one across the visit.

What that catches on a WordPress site

On a WordPress site the difference is concrete.

A mega menu that runs a jQuery handler on click, a tabbed section from a page builder that rebuilds its markup, a search box that fires an admin-ajax request before painting anything, a cookie banner that recalculates layout: all of these passed FID and all of them are exactly what INP was built to catch.

The metric did not get harsher. It started measuring the part that was always slow.

Where 200 ms comes from

Google’s threshold document is honest that 200 ms is not arbitrary.

It traces the number back through Jakob Nielsen’s response-time limits to Miller, and to Michotte’s 1962 work on the perception of causality, in which participants stopped perceiving one object as having caused another to move once the delay passed roughly 200 milliseconds.

Past that, a click stops feeling like it did anything.

Where the thresholds came from, which nobody quotes

Google published its reasoning in Defining the Core Web Vitals metrics thresholds, last updated 7 May 2025. It is the most useful page in the whole set and almost nothing links to it.

Three things in it change how you should read your own score.

The good threshold is what good sites can hit

The good threshold is set by what good sites can actually hit. For LCP the team tested 1.5, 2, 2.5 and 3 seconds against top-performing origins and found that 1.5 and 2 seconds are not consistently achievable, while 2.5 seconds is.

So 2.5 s is not a physiological limit. It is the tightest number that well-built sites reach at the 75th percentile.

The share of origins classified poor at each chosen cut-off.
Built from the figures in Defining the Core Web Vitals metrics thresholds, web.dev, last updated 7 May 2025.

The poor threshold is a quota

The poor threshold is set by a quota. Google aims for 10 to 30 percent of origins to land in poor.

At a 4 second LCP cut-off, roughly 26 percent of phone origins and 21 percent of desktop origins are classified poor, which is inside the target band, so 4 seconds was accepted.

CLS at 0.25 puts about 20 percent of phone origins and 18 percent of desktop origins in poor. Failing is defined partly by where everyone else sits.

CLS is lenient because of embeds

CLS is deliberately lenient, and the reason is third-party embeds. Google’s own testing found shifts of 0.15 and above were consistently perceived as disruptive, and CrUX data suggested 0.05 was a reasonable good threshold.

They chose 0.1 anyway, writing that for embedded content the height is often unknown until it loads.

Every WordPress site with a Twitter embed, a YouTube card or an ad slot is the reason your CLS budget is as generous as it is.

Why the 75th percentile and not the 95th

The 75th percentile itself was a trade. A higher percentile describes more of your visitors but gets dragged around by outliers: at the 95th, five bad samples out of a hundred visits decide your grade.

Your Clients Deserve Faster Sites. You Deserve Less Headaches.

You got into this to build websites, not babysit them.

But here you are. Plugin conflicts at 2am. Clients pinging about downtime. Security patches you forgot about.

I run dedicated VPS hosting for agencies. Blazing fast. 24/7 monitored. Plugin updates on autopilot. Hacked site? I clean it same day.

You focus on clients. I keep the servers running.

At the 75th, it takes twenty-five.

The number PageSpeed shows you is not the number Google grades you on

Look at the top of my own report again. Under Discover what your real users are experiencing, it says No Data. Not slow, not fast. Nothing at all.

What No Data means

That is the Chrome User Experience Report saying my site does not have enough Chrome traffic to produce a field sample. Core Web Vitals thresholds are field thresholds, assessed on real visits at the 75th percentile.

If CrUX has no data for your URL, none of the three metrics has a value for you in the sense Google uses.

What you get instead is the lab section, and my report labels its own conditions in small grey text at the bottom of the metrics panel:

Captured at Sep 2, 2026, 9:32 PM GMT+5:30. Emulated Moto G Power with Lighthouse 13.4.1. Single page session. Using HeadlessChromium 151.0.7922.71.

PageSpeed Insights run conditions, read from the report on 2 September 2026

One page load. One emulated mid-range Android. One simulated network. That is a diagnostic, and a good one.

It is not a measurement of your audience, and treating a lab score as a Core Web Vitals grade is the single most common mistake in WordPress performance work.

Two consequences, both actionable

Two consequences follow, and both are actionable. First, a small WordPress site will often never appear in Search Console’s Core Web Vitals report at all, because CrUX needs volume.

Second, the only way such a site gets real numbers is to collect them itself, from its own visitors, with the web-vitals library:

<script type="module">
import {onLCP, onINP, onCLS} from 'https://unpkg.com/web-vitals@4?module';
const send = m => navigator.sendBeacon('/wp-json/mysite/v1/vitals',
  JSON.stringify({name: m.name, value: m.value, id: m.id,
                  rating: m.rating, path: location.pathname}));
onLCP(send); onINP(send); onCLS(send);
</script>

Three callbacks, a beacon, and a REST route to store them. Once that is running you have your own 75th percentile per template, which is the number that actually tells you whether a change worked.

Everything before that is guessing with a nicer interface.

What moves each metric on a WordPress site, and what does not

Grouped by metric, because the mistake I see most often is applying an LCP fix to an INP problem and concluding that performance work does not help.

MetricWhat moves it on WordPressWhat does not
LCPThe hero image: correct size, fetchpriority="high", and never lazy-loaded. Server or edge response time for the document. Render-blocking stylesheets in the head.Minifying JavaScript. Deferring scripts that were already below the fold. An object cache, if your page cache is already hitting.
INPThird-party tags that run handlers. Page-builder interactivity, accordions, tabs, mega menus. admin-ajax calls fired on click. DOM depth, because style recalculation walks the tree.Image compression. A CDN. Anything that only affects how fast bytes arrive rather than what runs after a click.
CLSMissing width and height on images and iframes. Web fonts swapping without a matched fallback metric. Cookie banners and ad slots injected above existing content.Server speed. Caching of any kind. A faster host will shift the layout just as much, sooner.

The asymmetry in what gets sold to you

The asymmetry is the useful bit. Almost every WordPress performance product sells you LCP work, because caching and image handling are easy to package.

INP is the one that needs someone to open the performance panel and look at what a click actually costs, and CLS is usually a CSS defect rather than an infrastructure one.

If you want to see the LCP half of this done live on a real site rather than described, I recorded a full pass:

https://www.youtube.com/watch?v=iRaAQCRoyvY
My own channel. Live Speed Up WordPress Website Web Vitals with FlyingPress v5. A real site, the settings changed one at a time, and the metric re-measured after each.

The best explanation of CLS is five years old

For the CLS side, the clearest explanation I know of comes from the Chrome engineer who built the metric.

Annie Sullivan’s talk Understanding Cumulative Layout Shift, posted on the estellevw channel from #PerfMatters Conference 2020, walks through why the score is impact fraction times distance fraction rather than a simple pixel count.

I share what actually works in WordPress, SEO, and AI automation every week. Real numbers. Real experiments. No recycled advice.

It is cited by web.dev’s own CLS article, which is how I found it. It is five years old and it has not been improved on.

Three things I could not verify, so I am not claiming them

  • Whether any of this affects your rankings, and by how much. Google says page experience is a signal. Nobody outside Google can isolate its weight. Anyone showing you a ranking lift from a Core Web Vitals fix is showing you a correlation with a confound.
  • My own field numbers. CrUX returns No Data for adityaarsharma.com, so I have no 75th percentile to report for my own site. Every figure I gave for it is lab.
  • What the thresholds will be next year. Google’s own Web Vitals page says the set will evolve and CLS documentation floats a stricter 0.05 in a future iteration. Floating is not announcing.

Do this in the next ten minutes

Open PageSpeed Insights on your most-visited template, not your homepage, and read only two things. First, whether the field section says No Data.

If it does, your score is a lab simulation and your next move is to collect real numbers, not to change a setting. Second, the mobile LCP, ignoring the score entirely.

The question that decides your week

Then ask the question that actually decides your week: is my mobile LCP above 4.0 seconds? If it is, you have a document-delivery or hero-image problem and it is worth days of work.

If it is under 2.5 and the site still feels slow, your problem is INP, and no amount of caching will touch it.

Related reading

Resources

Stop Managing Servers!
Start Managing Clients.

Your clients deserve servers that never flinch.
You deserve to never think about servers again.

Whether you need a bulletproof setup built from scratch or someone to take over what you already have  I handle the infrastructure so your agency can focus on what it bills for.

No downtime calls. No 3am panics. No excuses.

Explore Further