WordPress Core Web Vitals are failing on more sites than most people realise. According to data from Hostingstep’s analysis of 3 million WordPress origins, only 46% of WordPress sites pass Core Web Vitals on mobile as of late 2025 meaning more than half are falling short of Google’s performance benchmarks. And the mobile score is what determines your rankings, not desktop.
The reason most WordPress sites fail is not a platform limitation. It is configuration. WordPress gives you full control over every performance factor hosting, caching, image delivery, JavaScript loading but none of it is optimised out of the box. This guide covers every fix, in priority order, with the exact settings to apply.
What LCP, INP, and CLS Actually Measure
Core Web Vitals are three metrics Google uses to measure the real experience your visitors have on your pages is not a simulated lab score, but actual data collected from Chrome users visiting your site. Google calls this “field data” and it is what determines whether your site passes or fails.
LCP — Largest Contentful Paint measures how quickly the largest visible element on the page loads. On most WordPress sites, the LCP element is your hero image or your H1 heading. Google’s threshold is under 2.5 seconds for a good score. Above 4 seconds is poor.
INP — Interaction to Next Paint measures how quickly your page responds when a user clicks, taps, or types something. It replaced FID (First Input Delay) in March 2024 and is a stricter measurement. Under 200ms is good. Above 500ms is poor. INP is where most WordPress sites struggle because JavaScript from plugins slows the page’s response to user interactions.
CLS — Cumulative Layout Shift measures visual instability how much page elements shift around during loading. A score under 0.1 is good. Common causes on WordPress are images loading without reserved dimensions, fonts swapping in after the page renders, and banners appearing after initial page load and pushing content down.
Your Lighthouse performance score and your Core Web Vitals score are not the same thing. A Lighthouse score of 95 in PageSpeed Insights does not mean you pass Core Web Vitals. Google uses real user field data from Chrome which reflects actual visitor devices, networks, and interaction patterns. A site scoring 75 on Lighthouse with passing Core Web Vitals will outrank a site scoring 95 with failing LCP.
Why WordPress Sites Fail Core Web Vitals
Research from CoreWebVitals.io, based on real audits of hundreds of WordPress sites, identifies five consistent failure patterns:
1. Lazy loading the LCP image. WordPress adds loading="lazy" to images by default. If your hero image is the LCP element, lazy loading it tells the browser to defer downloading it is directly causing a high LCP score. The LCP image must never be lazy loaded.
2. Too many stacked caching plugins. Installing WP Rocket, Autoptimize, LiteSpeed Cache, and W3 Total Cache simultaneously creates conflicts that cancel each other out or generate worse performance than having none at all. Use one caching plugin and configure it properly.
3. Heavy page builder themes. Elementor and Divi sites consistently show median mobile LCP scores of 3.8 to 5.2 seconds before optimization well above the 2.5 second threshold. Gutenberg sites with lightweight themes (Astra, GeneratePress) achieve median LCP under 2.0 seconds with minimal configuration.
4. Unoptimized images. A WP Rocket study found the average WordPress site has images 3 to 5 times larger than necessary. JPEG images served at full resolution to mobile visitors dramatically increase LCP.
5. Poor hosting with no object caching. DebugHawk’s Q4 2025 report based on 5.7 million WordPress pageviews found that sites with persistent object caching had a median PHP execution time of 508ms versus 1,542ms without. Page caching delivers 7x faster TTFB than uncached pages. Budget shared hosting with no object cache is the single biggest LCP killer on WordPress.
How to Test Your WordPress Core Web Vitals Score
Always check the mobile score first, Google uses mobile-first indexing so your mobile performance is what determines your rankings.
Go to PageSpeed Insights and enter your homepage URL. The Core Web Vitals Assessment at the top of the results page will show either “Passed” or “Failed” in green or red. Below it you will see your individual scores for LCP, INP, and CLS each colour-coded as Good (green), Needs Improvement (orange), or Poor (red).
For ongoing monitoring, Google Search Console → Core Web Vitals shows your site-wide performance across all pages, split into mobile and desktop. This is the field data report real user measurements. If a page does not have enough visitor data yet, it will not appear here and you will need to rely on PageSpeed Insights lab data instead.
Test multiple pages, not just your homepage. Your homepage might score well because it is cached and frequently visited, while your article pages fail because they are less cached and more JavaScript-heavy. Test your pillar page, your highest-traffic article, and a recently published article to get a realistic picture.
How to Fix LCP on WordPress
LCP fixes must be applied in this order — each one has a different impact and some only make sense after the previous step is done.
In your WordPress theme settings or Rank Math’s Image SEO settings, find the hero image on your most important pages. Add fetchpriority="high" and remove loading="lazy" from the LCP image specifically. In WP Rocket, go to Media → Enable LazyLoad for images, then exclude your hero image from lazy loading by adding its CSS selector to the exclusion list.
WebP files are 25 to 35% smaller than JPEG at equivalent quality. Install Imagify or ShortPixel, both convert your existing media library automatically and serve WebP to supported browsers. Set new uploads to convert automatically. Your hero image converted to WebP alone can drop LCP by 0.5 to 1 second on mobile.
WP Rocket leads in all-in-one performance with a 50% Core Web Vitals pass rate across 2 million sites, according to NitroPack’s 2026 plugin comparison. LiteSpeed Cache is the best free alternative if your host runs LiteSpeed server. Do not install more than one caching plugin. Enable page caching, browser caching, and GZIP compression as the minimum settings.
A CDN delivers your static files from servers nearest to each visitor, cutting download time dramatically for visitors far from your hosting server’s location. Cloudflare’s free tier is sufficient for most WordPress sites. Connect it through your domain’s DNS settings, it takes about 10 minutes to set up and can reduce LCP by 20 to 40% for international visitors.
Add a preload link tag in your page header to tell the browser to start downloading the LCP image before it discovers it in the HTML. In WP Rocket, enable Media → Preload LCP Image. This is particularly effective for hero images that are set as CSS backgrounds rather than HTML img tags, which browsers discover later during rendering.
How to Fix INP on WordPress
INP failures on WordPress almost always come from JavaScript executing on the main browser thread during user interactions, blocking the page from responding quickly. The fix is finding which JavaScript is causing the delay and either removing it, deferring it, or replacing it with a lighter alternative.
Step 1 — Identify the offending JavaScript. Open Chrome DevTools (F12) → Performance tab → record a click interaction on your page. Look for tasks taking over 50ms on the main thread, these are “Long Tasks” that block INP. The task name usually indicates which plugin is responsible.
Step 2 — Defer JavaScript execution. In WP Rocket, go to File Optimization → Delay JavaScript Execution → enable it for all files. This tells the browser not to execute non-critical JavaScript until after the user first interacts with the page, dramatically improving INP scores. Test each page after enabling this — some plugins break when their JavaScript is deferred and need to be excluded.
Step 3 — Disable plugin scripts on pages where they are not needed. Install Perfmatters to disable specific plugin scripts on specific page types. A WooCommerce cart script running on every blog post is a common example – it executes JavaScript on pages where no cart functionality is needed, increasing INP on those pages with zero benefit.
How to Fix CLS on WordPress
CLS fixes are about preventing elements from loading in a way that moves other content around. The three most common WordPress CLS causes and their fixes:
Images without explicit dimensions. When an image loads without a defined width and height, the browser does not know how much space to reserve for it during initial render. Add explicit width and height attributes to every image. Rank Math’s Image SEO module does this automatically if you enable “Add Missing Dimensions” in the settings.
Google Fonts swapping in after page render. When the page loads with a system font and then replaces it with your Google Font, every line of text shifts. Fix this by adding display=swap to your Google Fonts URL – WP Rocket does this automatically when you enable “Load Google Fonts Locally” under File Optimization.
Ads and banners loading dynamically. If your site displays advertisements that appear after the page renders, they push content down and create CLS. Fix this by reserving space for the ad container with a minimum height CSS value, even before the ad loads. Set min-height: 250px (or whatever your ad size is) on the ad container div.
Rank Math handles several Core Web Vitals settings including image dimensions and lazy loading. Read our Rank Math SEO setup guide to make sure these settings are configured correctly alongside your performance plugin.
This article is part of our Technical SEO for WordPress series. For the full overview: Technical SEO for WordPress — The Complete 2026 Fix-It Guide.
Why Hosting Matters More Than Any Plugin
Every performance plugin and optimization technique in this guide has a ceiling set by your hosting quality. A performance plugin on bad hosting is like putting racing tires on a car with a broken engine. The DebugHawk Q4 2025 report found that page caching delivers 7x faster TTFB but if your uncached TTFB is already 2 seconds, caching it still leaves you at 285ms, and LCP will still suffer from the slow server baseline.
If your PageSpeed Insights TTFB (Time to First Byte) is consistently above 600ms even with caching enabled, your hosting is the problem. Managed WordPress hosting from SiteGround, Kinsta, or WP Engine includes server-level object caching, edge CDN, and PHP 8.x optimisation out of the box things budget shared hosts do not provide. The cost difference pays for itself in ranking improvement on any site generating meaningful traffic.
Frequently Asked Questions
Go to PageSpeed Insights (pagespeed.web.dev), enter your page URL, and run the test. Check the mobile tab, the Core Web Vitals Assessment at the top shows Pass or Fail, and the individual metric scores show your LCP, INP, and CLS values. For site-wide data, check Google Search Console → Core Web Vitals.
WP Rocket significantly improves Core Web Vitals by handling page caching, JavaScript deferral, critical CSS generation, and lazy loading. Data from NitroPack’s 2026 plugin analysis shows WP Rocket achieves a 50% Core Web Vitals pass rate across over 2 million sites. It does not fix everything, hosting quality and image optimization still need to be addressed separately but it handles the largest share of what plugin-level optimization can deliver.
Aim for 80 or above on mobile and 90 or above on desktop. However, the PageSpeed score is less important than whether you pass Core Web Vitals. A site scoring 75 with passing LCP, INP, and CLS will outrank a site scoring 95 with failing metrics. Always check the Core Web Vitals Assessment first, then use the diagnostic suggestions below it to improve.
Yes, directly. Each plugin adds JavaScript and CSS to your page loads. Sites running more than 15 to 20 active plugins are very likely failing INP because of JavaScript competing for main thread time. Audit your plugins quarterly deactivate any that are not actively needed, and check PageSpeed Insights after removing each one to measure the improvement.
Kia has worked in SEO and digital marketing for over a decade, building and optimising websites across different industries. He founded Technexies to share what actually works in modern search written from direct professional experience rather than theory. All content on Technexies is researched, written, and reviewed by Kia personally.

