How to improve Core Web Vitals on WordPress
To improve Core Web Vitals on WordPress, measure real-visitor data first, then fix the metric that fails: a faster server and hero image for LCP, lighter scripts for INP, and reserved space for images, banners and fonts for CLS. WordPress performance monitoring keeps them good after every update.

The short answer
To improve Core Web Vitals on WordPress, check real-visitor data first, find the metric that fails, then fix that one:
- LCP (loading), good at 2.5 seconds or less: page caching and a faster server, a hero image that is never lazy-loaded, and smaller images in WebP or AVIF.
- INP (responsiveness), good at 200 milliseconds or less: fewer plugins and scripts, delayed chat, ad and tracking tags, and lighter theme or builder output.
- CLS (visual stability), good at 0.1 or less: width and height on every image and embed, reserved space for banners and ads, and fonts that load without jumps.
Measure in PageSpeed Insights and Search Console, fix one template at a time, and keep monitoring after updates, because plugin and theme releases are the usual reason good scores slip.
What Core Web Vitals measure on a WordPress site
Core Web Vitals are three measurements Google uses to judge how a page feels to real visitors:
- Largest Contentful Paint (LCP) measures loading: how long until the largest image, text block or video in view has rendered. Good is 2.5 seconds or less; poor is over 4 seconds.
- Interaction to Next Paint (INP) measures responsiveness: how quickly the page reacts to taps, clicks and key presses. Good is 200 milliseconds or less; poor is over 500. INP replaced First Input Delay as a Core Web Vital on 12 March 2024.
- Cumulative Layout Shift (CLS) measures visual stability: how much content jumps around unexpectedly. Good is 0.1 or less; poor is over 0.25.
Each is judged at the 75th percentile of real page loads, separately for mobile and desktop. A page passes only when all three are good.
How much do Core Web Vitals matter for SEO?
Less than many guides suggest, but more than nothing. Google says Core Web Vitals are used by its ranking systems, and recommends good scores. It also says that good results in Search Console or other tools do not guarantee pages will rank at the top, that chasing a perfect score just for SEO may not be the best use of your time, and that it will still show the most relevant content even when page experience is poor. The practical reading: relevance wins, and speed is a tie-breaker and a conversion win on top.
How WordPress sites compare
WordPress has room to improve. In the HTTP Archive Core Web Vitals Technology Report, built on Chrome UX Report data, 48.7 percent of WordPress sites had good Core Web Vitals on mobile in August 2026, up from 45.0 percent a year earlier but still below the 53.0 percent average for all websites. Looking at each metric, WordPress sites mostly pass INP (90.8 percent) and CLS (87.2 percent); LCP is the problem, good on only 55.8 percent of sites, and only 23.5 percent have a good server response time.

So for most WordPress sites, the fastest route to passing is LCP, and the fastest route to a better LCP is the server.
How to check your WordPress Core Web Vitals
Start with field data, the measurements from real visitors, because that is what Google uses. Lab tests are for diagnosing and checking fixes.
| Tool | What it shows | Use it for |
|---|---|---|
| PageSpeed Insights | Field data from real Chrome visits over 28 days, plus a Lighthouse lab test | A first check of any page |
| Search Console Core Web Vitals report | Field data for groups of similar URLs, mobile and desktop separately | Seeing which templates fail across the site |
| Chrome DevTools Performance panel | Your own LCP, CLS and INP as you load and click, with traces | Finding the exact cause of a slow page |
| web-vitals JavaScript library | Measurements from your real visitors, sent to your analytics | Sites with too little traffic for Google's data |
| Lighthouse | A lab test of one load. It cannot measure INP and uses Total Blocking Time instead | Checking a fix before field data catches up |
Sources: web.dev, Google PageSpeed Insights and Search Console documentation, Chrome DevTools documentation, checked 10 October 2026.
Two tips save a lot of confusion. First, check more than the home page: a fast home page and a slow product or post template is the normal situation. Second, if PageSpeed Insights says there is not enough field data for a page, it falls back to the whole site (the origin). Low-traffic sites may have no field data at all, which is when a lab test and the web-vitals library earn their place.
What WordPress already does for Core Web Vitals
WordPress core has picked up a series of performance improvements, many from the WordPress Performance Team. If your site runs a current version and a well-built theme, these are working for you already:
| Version | What changed | Helps |
|---|---|---|
| 5.5 | Images lazy-loaded by default, and missing width and height filled in on attachment images | LCP, CLS |
| 5.9 | The first image in the content is no longer lazy-loaded | LCP |
| 6.1 | decoding="async" added to images | LCP |
| 6.3 | fetchpriority="high" added to the likely LCP image, and defer or async loading for scripts | LCP, INP |
| 6.5 | AVIF image uploads, where the server supports them | LCP |
| 6.7 | sizes="auto" on lazy-loaded images, so the browser picks the right size | LCP |
| 6.8 | Speculative loading: likely next pages are prefetched for logged-out visitors | LCP on the next page |
| 6.9 | Block styles loaded on demand in classic themes, lower priority for interactive block scripts | LCP |
Sources: WordPress core developer notes and performance field guides on make.wordpress.org, checked 10 October 2026. Plugins and themes can override these defaults.
The same team maintains the Performance Lab plugin (more than 100,000 active installs), which lets you try upcoming features such as Modern Image Formats, Image Prioritizer and Speculative Loading before they reach core. Keeping WordPress itself up to date is one of the cheapest performance fixes there is. Our guide to WordPress automatic updates covers how to do that safely.
How to improve LCP on WordPress
web.dev splits LCP into four parts: the server response (Time to First Byte), the delay before the main image starts loading, the time it takes to load, and the delay before it renders. Work through them in that order.
1. Speed up the server response
web.dev is blunt about this: a high TTFB can make a 2.5 second LCP challenging, or even impossible. On WordPress, that means page caching (from your host or a caching plugin), a CDN for visitors far from your server, a current PHP version, and a database that is not loading megabytes of old options on every request. WordPress database optimization covers the last one.
2. Let the main image load first
The LCP element on most WordPress pages is a hero or featured image. web.dev's rule is simple: never lazy-load your LCP image, and make it discoverable in the HTML. WordPress 6.3 and later add fetchpriority="high" to the image it thinks is the LCP, and skip lazy-loading for the first images on the page. Sliders, background images set in CSS and images injected by JavaScript can defeat both, so check that the LCP image in PageSpeed Insights is the one you expect.
3. Make the image smaller
Serve the image at the size it is shown, using the responsive image sizes WordPress generates, and in a modern format: WebP, or AVIF on WordPress 6.5 and later where your server supports it.
4. Clear render-blocking CSS and JavaScript
Stylesheets in the head block everything after them, and web.dev notes it is almost never necessary to add synchronous scripts. Remove CSS and scripts from plugins you do not use, and load the rest with defer. Since WordPress 6.3, themes and plugins can ask for that when they register a script:
<?php
// Load a theme or plugin script with defer (WordPress 6.3 and later).
wp_enqueue_script(
'my-slider',
get_stylesheet_directory_uri() . '/js/slider.js',
array(),
'1.0',
array( 'strategy' => 'defer', 'in_footer' => true )
);
How to improve INP on WordPress
INP is about what happens after the page loads, when someone taps a menu, opens an accordion or adds to cart. web.dev splits each interaction into input delay, processing time and presentation delay. On WordPress, the usual culprit is JavaScript competing for the main thread:
- Remove what you do not use. web.dev's first advice is to avoid unnecessary JavaScript. Every plugin that adds front-end scripts to every page is a candidate.
- Tame third-party tags. Chat widgets, ad scripts and tracking tags run on your visitors' devices. web.dev recommends reviewing tag manager tags periodically; delaying non-essential ones until after the page is interactive helps INP and LCP.
- Keep the page lighter. Very large pages with deep nesting make every update slower; web.dev notes that rendering work scales with DOM size. Heavily nested page builder layouts are a common cause.
- Find the long task. In Chrome DevTools, record a trace while you repeat the slow interaction. The long task in the trace usually names the script responsible.
A fair warning on our own product: WPCentrify's maintenance work happens through the WordPress REST API and adds nothing to page loads, but its optional visitor-facing features (traffic analytics, live chat, the AI chatbot and the cookie banner) each add a small script. Turn on only the ones you use, as with any plugin.
How to fix CLS on WordPress
- Dimensions on everything. Always include width and height on images and video, or a CSS
aspect-ratio. WordPress adds them to images from the media library; images added through custom HTML, sliders and some builders may not have them. - Reserve space for embeds and ads. Embeds, iframes and ad slots without dimensions push content down when they load. Give their container a minimum height.
- Do not push content down late. web.dev notes that content injected near the top of the screen causes the biggest shifts. Cookie banners, promo bars and notices should overlay the page or have their space reserved from the start.
- Load fonts without a jump. Preload the main web font and use
font-displayandsize-adjustso the fallback font takes up the same space. - Animate with transform. Animations that move
toporleftcause shifts;transformdoes not.
Which WordPress Core Web Vitals fixes help most?
Given that LCP is where most WordPress sites fail, start at the top of this table and work down.
| Problem | Metric | Fix | Effort |
|---|---|---|---|
| No page caching, slow hosting or a bloated database | LCP | Page caching, a CDN, current PHP, database cleanup | Low to medium |
| Hero image lazy-loaded or huge | LCP | Load it eagerly with high priority, resize, WebP or AVIF | Low |
| Render-blocking CSS and scripts in the head | LCP | Defer scripts, trim unused CSS | Medium |
| Too many plugins and third-party tags | INP, LCP | Remove what you do not use, delay tags until needed | Low to medium |
| Heavy theme or page builder output | INP, LCP | Simplify templates, use the builder's performance settings | Medium to high |
| Images and embeds without dimensions | CLS | Set width and height, or a CSS aspect-ratio | Low |
| Cookie banner or notice pushing content down | CLS | Overlay it, or reserve its space from the start | Low |
| Web fonts swapping late | CLS, LCP | Preload key fonts, use font-display and size-adjust | Low |
Our summary of web.dev's optimization guides, applied to WordPress.
How to improve Core Web Vitals on WordPress, step by step
- Check real-visitor data first. Open PageSpeed Insights or the Core Web Vitals report in Search Console and start with mobile. Field data covers the previous 28 days of real Chrome visits.
- Find the failing metric and template. Note which metric fails and on which kind of page: home, post, category, product or checkout. Fix the template, not just the home page.
- Speed up the server response. Turn on page caching, use a CDN, run a current PHP version and clean up a bloated database. Slow server response makes a good LCP hard or impossible.
- Make the main image load first. Do not lazy-load the hero image, let it carry fetchpriority="high", serve it at the size it is shown and in WebP or AVIF.
- Cut the JavaScript. Remove plugins you do not use, load scripts with defer, and delay chat widgets, ad and tracking tags until they are needed.
- Stop layout shifts. Give every image, video and embed a width and height, reserve space for banners, notices and ads, and load web fonts without swapping layouts.
- Test again, then wait for field data. Confirm the fix in Lighthouse or Chrome DevTools, then give field data up to 28 days to reflect it before you judge the result.
- Monitor after every update. Plugin, theme and builder updates are the usual reason good scores slip. Re-check after each round of updates, per template.
Keep Core Web Vitals good after updates
Sites are usually fast on launch day. Then a plugin is added, a builder ships a heavier release, a tracking script is pasted into the header, and the scores slide a little at a time. Because field data trails by 28 days, a regression from an update can sit in Search Console for weeks before anyone notices. The fix is to measure on a schedule and after every round of updates, per template, and to know what changed when a number moves.
That is the job WPCentrify does across every site you manage. (Disclosure: WPCentrify is our product.) Its WordPress performance monitoring is part of a WordPress website management platform that also runs updates, backups, uptime and security:
- Core Web Vitals per template. LCP, INP and CLS on home, post, category, product and checkout templates, on mobile and desktop, against Google's thresholds.
- Lab and field data together. Scheduled tests for consistent comparison, with Chrome UX Report field data alongside where Google has it.
- Checked daily and after updates. Key templates are tested every day and again after any update that could change how a page renders.
- Regression alerts with the cause attached. When a metric gets meaningfully worse, the alert includes what changed around the same time, such as the update that ran or the plugin that was activated.
- Server response time tracked alongside uptime checks from three locations, which usually tells you whether a problem is hosting, a plugin or the front end.
- Every site ranked by Core Web Vitals status on the fleet dashboard, with six and twelve month trends and performance included in client reports.
- The tools to act on it: database cleanup for slow server responses, code snippets to see and remove third-party tags across sites, and safe updates that roll back an update that breaks a page.
WPCentrify identifies and explains performance problems; it does not rewrite your theme. Knowing that the product template got slower on a specific day after a specific plugin update is usually the hard part, and that is what it is built to tell you. For the wider routine, see our guide to WordPress site monitoring.
Sources
- Web Vitals, LCP, INP, CLS, Optimize LCP, Optimize INP, Optimize CLS and The most effective ways to improve Core Web Vitals, web.dev
- Understanding page experience and Core Web Vitals and Google Search, Google Search Central
- About PageSpeed Insights and Core Web Vitals report, Google
- Core Web Vitals Technology Report, HTTP Archive (August 2026 data)
- WordPress core notes: lazy-loading in 5.5, image performance in 6.3, async and defer scripts in 6.3, AVIF in 6.5, auto sizes in 6.7, speculative loading in 6.8, 6.9 front-end performance
- Performance Lab on WordPress.org
All sources checked on 10 October 2026.
Questions about Core Web Vitals on WordPress
Yes, but only as one signal among many. Google says Core Web Vitals are used by its ranking systems, that good scores do not guarantee pages will rank at the top, and that it still shows the most relevant content even when page experience is poor. Treat them as a tie-breaker and a conversion win, not a shortcut to rankings.
The same as for any site: LCP of 2.5 seconds or less, INP of 200 milliseconds or less and CLS of 0.1 or less, measured at the 75th percentile of real visits. A page passes only when all three are good.
According to the HTTP Archive Core Web Vitals Technology Report, 48.7 percent of WordPress sites had good Core Web Vitals on mobile in August 2026, against 53.0 percent across all websites. LCP is the metric WordPress sites fail most often.
The usual causes are a slow server response, render-blocking CSS and JavaScript, a hero image that is lazy-loaded or discovered late, and images that are too large or in an old format. Check the server response time first, because nothing else can make up for a slow one.
Reduce the JavaScript that runs when people interact: remove plugins you do not use, load scripts with defer, delay chat widgets and tracking tags, and keep page builder output lean. Use Chrome DevTools to find the long tasks behind a slow interaction.
Make sure every image, video and embed has a width and height, reserve space for cookie banners, notices and ads instead of pushing content down, and load web fonts so they do not change the layout when they arrive.
It usually improves LCP, because caching cuts the time the server takes to answer. It does little for INP or CLS, which come from scripts and layout. Caching is the first fix, not the only one.
PageSpeed Insights shows lab data for one test run plus field data for one URL or the whole origin. Search Console groups similar URLs and rates each group by its worst metric. Both use 28 days of real Chrome data, so they rarely match exactly.
Field data covers the previous 28 days, so a fix shows up gradually over about four weeks. When you start validation in Search Console, it tracks the pages over a 28-day period before it confirms the fix.
They can add CSS and JavaScript, but the data shows a correlation, not a cause. In August 2026, HTTP Archive measured good mobile Core Web Vitals on 36.8 percent of Elementor sites and 41.7 percent of Divi sites, against 48.7 percent for WordPress overall. Test your own templates rather than assuming.
Use a tool that measures every site on a schedule instead of testing URLs by hand. WPCentrify tracks Core Web Vitals and PageSpeed per template on mobile and desktop for every connected site, and alerts you when an update makes a page slower.
Related reading
Performance monitoring
Core Web Vitals per template, mobile and desktop, with alerts when an update slows a page.
See the featurePageSpeed for every WordPress site
How PageSpeed scores and Core Web Vitals work, and how to see them for every site.
Read the postWordPress site monitoring
Speed is one of nine things worth watching on every site. Here are the others.
Read the guideMore on this topic: WordPress database optimization and managing multiple WordPress sites from one dashboard.
Keep Core Web Vitals good on every site you manage
Core Web Vitals and PageSpeed for every WordPress site, per template, with alerts when an update slows a page down.
Free during early access. No credit card required.