- Core Web Vitals are three real-visitor metrics Google uses as a ranking signal: LCP, INP and CLS.
- The 2026 targets are LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1.
- INP replaced FID as the interactivity metric in March 2024 and is stricter about slow interactions.
- CLS measures visual stability: images without width and height, late fonts and injected banners are the usual WordPress causes.
- Field data from real visitors decides your ranking, not the lab score you see in a single test.
What are Core Web Vitals, and do they affect WordPress SEO?
Core Web Vitals are three metrics Google uses to score real-visitor experience: LCP for loading, INP for responsiveness, and CLS for visual stability. They have been a Google Search ranking signal since June 2021. A WordPress site that meets all three thresholds on real traffic has a measurable ranking advantage over one that fails them.
The word that matters is real-visitor. Google grades your site on data collected from actual Chrome users over the previous 28 days, not on a lab test you run once. So the goal is not a single green score on your own laptop. It is a page that stays fast and stable across cheap phones, slow networks and older browsers, visit after visit.
A ranking signal since June 2021
Core Web Vitals became part of Google's page experience ranking systems in June 2021. They are a tie-breaker more than a magic wand: strong content still wins, but between two similar pages, the faster and more stable one gets the edge.
Speed is also a business number, not only an SEO one. Slow pages lose visitors before they read a word, and the effect compounds on mobile. If you want the commercial case first, read how slow websites kill conversions, then come back for the mechanics.
What are the Core Web Vitals thresholds for 2026?
There are three thresholds for 2026: LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1. To pass, the 75th percentile of your real visitors must hit each target. That means a quarter of visits can be worse and you still pass, but one metric in the red fails the whole page.
| Metric | Good | Needs improvement | Poor | Unit |
|---|---|---|---|---|
| LCP (loading) | 2.5 or less | 2.5 to 4.0 | over 4.0 | seconds |
| INP (responsiveness) | 200 or less | 200 to 500 | over 500 | milliseconds |
| CLS (visual stability) | 0.1 or less | 0.1 to 0.25 | over 0.25 | unitless score |
The three Core Web Vitals and their 2026 bands, measured at the 75th percentile of real visitors. Source: Google web.dev.
One red metric fails the page
Google does not average the three. A page with a fast LCP and INP but a CLS of 0.3 still fails Core Web Vitals. Fix the worst metric first, not the one that is easiest to improve.
The thresholds and definitions here follow Google's official Core Web Vitals documentation on web.dev. Google reviews these metrics roughly once a year, so check the official source before treating any number as permanent.
What is LCP and how do I fix it on WordPress?
LCP, Largest Contentful Paint, measures how long it takes for the biggest visible element to appear: usually a hero image, a large heading, or a banner. The target is 2.5 seconds or less. On WordPress, LCP is decided by three things in order: how fast your server responds, whether the hero resource is delayed, and how big that resource is.
The largest element must paint within 2.5 seconds for a Good rating.
Start with the server. Time to First Byte is the quiet foundation under LCP: it is the gap between the browser asking for the page and the first byte arriving. If the server takes over a second before it sends anything, no front-end trick recovers it. On oversold shared hosting, that number swings wildly because your PHP workers are shared with hundreds of sites. The same page can answer in 300 milliseconds at 6am and 2 seconds at lunchtime, and no caching plugin fixes that variance.
Once the server is quick, the concrete WordPress fixes for LCP are:
1. Preload the hero image. Add a preload hint so the browser fetches the LCP image early instead of discovering it late in the HTML. 2. Set fetchpriority high on the hero image so the browser treats it as urgent, and never lazy-load the LCP image (that delays the one image you need first). 3. Serve the hero in a modern format (WebP or AVIF) at the size it is actually displayed, not a 4000-pixel original scaled down in the browser. 4. Defer render-blocking CSS and JavaScript: inline the small amount of CSS needed for the top of the page, and load the rest without blocking the first paint. 5. Cache full pages so most visitors get static HTML and skip PHP and the database entirely.
Before you touch a plugin, measure where the time goes. If TTFB alone is over a second, that is a hosting problem, not a theme problem. Our WordPress performance guide walks through the full server-to-browser chain.
What is INP, and how is it different from FID?
INP, Interaction to Next Paint, measures how quickly your page responds to real interactions: taps, clicks and key presses. The target is under 200 milliseconds. INP replaced FID (First Input Delay) as a Core Web Vital in March 2024, and it is far stricter. FID only timed the delay before the first interaction was handled. INP measures the full response, from the click to the next frame drawn, across every interaction in the visit.
| FID (retired) | INP (since March 2024) | |
|---|---|---|
| What it timed | Delay before the first interaction started processing | Full time from interaction to the next visible frame |
| How many interactions | Only the first | Every interaction, worst ones counted |
| Good threshold | 100 milliseconds or less | 200 milliseconds or less |
Why sites that passed FID can fail INP: INP watches the whole visit, rather than only the opening click.
Heavy JavaScript is the usual cause of poor INP. When a script runs a long task, the main thread is busy and the browser cannot respond to the tap the visitor just made. WordPress sites loaded with plugins often ship large scripts that all compete for that one thread. The concrete fixes are:
1. Cut third-party scripts. Chat widgets, heat maps, multiple analytics tags and ad scripts are the most common INP killers. Remove what you do not need and load the rest late. 2. Break up long tasks. Any script that runs for more than 50 milliseconds blocks interaction; split heavy work so the browser can respond between chunks. 3. Audit plugins by what they load on the front end, not by how useful they feel in the admin. A single form or slider plugin can add hundreds of kilobytes of JavaScript to every page. 4. Avoid running large scripts on interaction; defer non-essential work until the browser is idle.
JavaScript decides your INP
INP is a main-thread problem. On our platform, the most common cause of a failing INP on WordPress is a stack of third-party tags loaded on every page. Cutting them is usually faster and cheaper than any optimisation plugin. See why performance should not depend on plugins.
What is CLS and what causes layout shift on WordPress?
CLS, Cumulative Layout Shift, measures how much the page jumps around as it loads. It is a unitless score, and the target is 0.1 or less. Layout shift happens when content moves after the visitor can already see it: you go to tap a link, an image loads above it, and the whole page lurches down. CLS is the metric most often ignored on WordPress, and the easiest to break by accident.
A Good CLS score is 0.1 or less; 0.25 and above is Poor.
The common WordPress causes of layout shift are predictable once you know them:
1. Images without width and height attributes. The browser cannot reserve space, so text reflows when the image arrives. Always set explicit dimensions. 2. Ad and embed slots with no reserved space. A late-loading ad, map or video pushes everything below it down. Give each slot a fixed height. 3. Late-loading web fonts. When a custom font swaps in, text reflows and lines re-wrap. Preload key fonts and use font-display settings that avoid a jarring swap. 4. Cookie banners and notices injected above the content. A banner that appears at the top after render shoves the whole page down; render it as an overlay, or reserve its space in advance.
CLS is the cheapest Core Web Vital to fix because most causes are markup, not infrastructure. Set width and height on every image, reserve space for anything that loads late, and preload your main font. That alone clears most WordPress CLS failures.
How do I measure Core Web Vitals on my WordPress site?
Measure with two kinds of data: lab and field. Lab data is a single test in a controlled setting, useful for debugging. Field data is what real visitors experienced, and it is what Google ranks you on. The four tools that matter are PageSpeed Insights, the Chrome UX Report, Search Console's Core Web Vitals report, and your browser's own DevTools.
| Tool | Data type | Best for |
|---|---|---|
| PageSpeed Insights | Field and lab | One-page check with real-visitor scores plus lab diagnostics |
| Chrome UX Report (CrUX) | Field | The real-visitor dataset Google uses to grade you |
| Search Console CWV report | Field | Every URL on your site grouped by pass or fail |
| Chrome DevTools | Lab | Reproducing and debugging a specific slow interaction |
Lab data helps you debug; field data decides your ranking.
PageSpeed Insights is the place to start. Enter a URL and it shows the Chrome UX Report field data at the top (your real 28-day scores) and lab diagnostics below. If the top section says the page has not enough real-visitor data, you fall back to the lab score, but do not treat that lab number as your ranking grade. Search Console's Core Web Vitals report is the one to watch over time: it groups every URL on your site into Good, Needs improvement and Poor, so you fix templates, not single pages.
Lab green does not mean field green
A perfect lab score on your fast laptop and fibre connection tells you little about a visitor on a three-year-old phone and mobile data. Always trust the field data (CrUX) in PageSpeed Insights and Search Console over any single lab run.
Why does hosting decide your Core Web Vitals ceiling?
Hosting sets the ceiling because every Core Web Vital starts with server response time. LCP cannot beat your Time to First Byte. A slow or unpredictable server delays the first paint, and no plugin recovers time the server already spent. On shared hosting your response time depends on what every other site on the box is doing, so your scores wobble even when your own page never changes.
This is where isolation matters. On G7Cloud every site runs in its own dedicated container with its own database, so your response time does not depend on a noisy neighbour. There is no shared PHP pool competing for CPU at lunchtime. Steady server response is what turns a page that passes on your laptop into a page that passes on real traffic, which is the score Google actually reads.
Visibility helps too. Our dashboard keeps CPU and memory metrics for 90 days, so when a score drops you can see whether the cause was resource pressure at a specific time, rather than guessing. If you run a shop, the same isolation logic drives WooCommerce speed optimisation, where an uncached checkout hits PHP and the database on every request.
"You cannot cache your way out of a slow server. Fix Time to First Byte first, then optimise the front end. Do it the other way round and you are polishing a page that arrives late anyway."
Common WordPress Core Web Vitals questions
A few questions come up on almost every WordPress Core Web Vitals audit. Short answers below; the sections above have the detail.
Frequently asked questions
What is a good Core Web Vitals score for WordPress?
You pass when all three metrics hit their targets on real visitors: LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1, each at the 75th percentile. One metric in the red fails the whole page, so fix the worst one first.
Did INP replace FID for WordPress sites?
Yes. INP (Interaction to Next Paint) replaced FID (First Input Delay) as a Core Web Vital in March 2024. INP is stricter: it measures the full response of every interaction in a visit, rather than only the delay before the first one, so some sites that passed FID now fail INP.
Why is my Core Web Vitals score good in PageSpeed Insights but poor in Search Console?
PageSpeed Insights often shows a lab score from a fast test machine, while Search Console reports field data from real visitors on real devices and networks. Field data is what Google ranks you on, so trust Search Console and the Chrome UX Report over a single lab run.
Can a caching plugin fix Core Web Vitals on WordPress?
Caching helps LCP by serving static HTML, but it cannot fix a slow server underneath, and it does nothing for INP (a JavaScript problem) or CLS (a markup problem). If Time to First Byte is over a second on shared hosting, the fix is faster, isolated hosting, not another plugin.
How often does Google update Core Web Vitals data?
Google grades your site on a rolling 28-day window of real Chrome visitors, updated roughly daily. So a fix does not show its full effect until enough visitors experience the improved page. Expect two to four weeks before a change fully lands in your field score.
About G7Cloud Engineering
Articles written by the engineers who build and run G7Cloud: UK managed hosting and the AI Website Builder. We write about what we operate every day: containers, backups, databases, and the small-business websites that run on them.
More about G7Cloud →