BLOG

How to Fix Core Web Vitals on WordPress: LCP, INP and CLS

April 1, 2026 | WordPress Optimization

Updated October 4, 2026

To fix Core Web Vitals on WordPress, first find which of the three metrics fails in Google's real-visitor data, then fix that metric's usual cause: a slow server or a heavy hero image for Largest Contentful Paint (LCP), too much JavaScript for Interaction to Next Paint (INP), and content that arrives without reserved space for Cumulative Layout Shift (CLS). Most fixes are settings and housekeeping, not a rebuild.

What are Core Web Vitals, and what scores are good?

Core Web Vitals are three measurements of how a page feels to real visitors: how fast the main content appears, how quickly the page responds, and how steady the layout stays. Google judges each at the 75th percentile of visits, separately for mobile and desktop, so a page is "good" when at least three visits in four meet the mark.

MetricWhat it measuresGoodPoor
Largest Contentful Paint (LCP)When the main image or text block appears2.5 seconds or lessOver 4 seconds
Interaction to Next Paint (INP)How fast the page reacts to clicks, taps and keys200 milliseconds or lessOver 500 milliseconds
Cumulative Layout Shift (CLS)How much the layout jumps while loading0.1 or lessOver 0.25

Anything between the two columns "needs improvement". INP replaced First Input Delay (FID) in March 2024, so advice about FID is out of date.

Do Core Web Vitals affect Google rankings?

Yes, as one of several page experience signals, but they do not outweigh relevance. Google's page experience guidance says Core Web Vitals "are used by our ranking systems". The same page says Google shows the most relevant content even when its page experience is poor, and that good report results do not guarantee top rankings.

The stronger reason to fix them is your visitors, who find a fast, steady page easier to use.

How do you check your WordPress site's Core Web Vitals?

Use PageSpeed Insights for one page at a time and the Core Web Vitals report in Google Search Console for the whole site. Both rely on field data: anonymous measurements from real Chrome users, collected in the Chrome UX Report (CrUX) over the previous 28 days.

  • PageSpeed Insights. The top section is field data and the pass or fail Core Web Vitals assessment. Below it is a lab test, one Lighthouse run on a simulated mid-range phone; its 0 to 100 score is a lab score, not your Core Web Vitals, and it varies between runs. Use it to diagnose, including which element is the LCP.
  • Search Console. The report groups similar pages, rates each group by its worst metric, and after a fix can validate the group over 28 days.

Small sites often lack page-level field data. PageSpeed Insights then shows whole-site data, Search Console leaves those pages out, and the lab results become your guide. A page-load lab test cannot measure INP, which needs real clicks and taps; Google suggests Total Blocking Time as a rough stand-in.

How do you fix a slow LCP on WordPress?

Speed up the server's first response, then make the main image small and first in line. On most WordPress pages the LCP element is the hero image or the main heading.

Start with hosting and page caching

Google's server response guidance says hosting should be the first thing you consider, and that WordPress speed depends on the number and quality of plugins and on the theme. It suggests a Time to First Byte (how long the server takes to start sending the page) of 0.8 seconds or less as a rough guide.

Turn on page caching, which saves a ready-made copy of each page so WordPress does not rebuild it on every visit; use your host's cache or one caching plugin, never two. Ask your host for a current PHP version (WordPress.org recommends 8.3 or greater), and delete plugins you no longer use.

Make the hero image small, modern and first in line

  • Right size and format. Export the hero at about the width it is shown, compress it, and serve WebP or AVIF; WordPress accepts both, and an image optimizer plugin can convert existing JPEGs.
  • Never lazy load it. Lazy loading the LCP image always adds a delay.
  • Give it priority. Since version 6.3, WordPress adds fetchpriority="high" to the image it judges most likely to be the LCP and keeps it out of lazy loading, but only for images WordPress outputs itself.
  • Watch page builder backgrounds. Many page builders set the hero as a CSS background image, which still counts as the LCP but is found late, so preload it or use a regular image. WP Rocket detects the main image, background images included, preloads it and gives it high priority.

Keep fonts and CSS out of the way

Text can be the LCP too. Use fewer font families and weights, in WOFF2 format, with font-display set so text appears in a fallback font first. Removing unused CSS, a setting in most caching plugins, also helps.

How do you fix INP on WordPress?

Cut the JavaScript that runs while visitors are trying to click. INP suffers when the browser is busy: if a chat widget, tracking pixel or plugin script is running when someone taps the menu, the tap waits.

  • Remove what you do not use. Every plugin that adds front-end scripts adds work.
  • Load plugin scripts only where needed. A form plugin's files only need to load on pages with a form; Perfmatters' Script Manager switches scripts off page by page.
  • Delay non-essential scripts. WP Rocket and Perfmatters can hold back analytics, ad and chat scripts until the visitor interacts. This can break things, so test menus, forms, sliders and the cookie banner afterward.
  • Keep pages lean. Google notes that rendering work grows with the size of a page's structure (its DOM), so long pages of deeply nested builder sections give the browser more to redraw after each tap. Check your page builder's own performance settings before adding another plugin.

How do you fix CLS on WordPress?

Reserve space for everything before it loads. Layout shifts happen when something arrives late and pushes content down.

  • Images without dimensions. Give every image width and height attributes (or a CSS aspect ratio) so the browser holds the space. WordPress adds missing dimensions to the images it outputs, but custom HTML and some page builder modules can still lack them.
  • Fonts. A web font that swaps in late can reflow text. font-display: optional, fewer font files and a fallback font close in size to the web font all reduce the jump.
  • Ads, embeds and iframes. Give the container for ads, videos, maps and booking widgets a minimum height.
  • Cookie banners. A banner inserted at the top pushes the page down. Show it as an overlay instead, such as a bar fixed to the bottom of the screen.

Does cleaning up the database speed up WordPress?

It can, mainly on pages that cannot come from the cache, such as search results, the cart and checkout, and the admin area. Over time the database collects post revisions, auto-drafts, spam comments, expired transients (temporary plugin data) and settings left behind by removed plugins.

  • Clean up with a plugin. WP-Optimize clears revisions, auto-drafts, spam comments and expired transients, and optimizes the tables. It also includes page caching, so leave that off if you already use another cache.
  • Watch autoloaded options. WordPress loads some settings on every request, and Site Health (under Tools) warns when they pass 800 KB; remove options your site no longer needs, such as those left by deleted plugins.
  • Limit revisions. This line in wp-config.php keeps the last three revisions of each post:
define( 'WP_POST_REVISIONS', 3 );

Back up the database before any cleanup, and check the site afterward.

Do you need a CDN for your WordPress site?

A content delivery network (CDN) helps most when your visitors are far from your server: it keeps copies of your images, CSS and JavaScript on servers around the world, so each visitor downloads them from somewhere nearby. Some hosts include one, so check first.

Cloudflare's free plan includes a CDN. Its Automatic Platform Optimization (APO) for WordPress caches whole pages on Cloudflare's network through the Cloudflare WordPress plugin; at the time of writing (October 2026), APO costs $5 a month on the free plan and is included in the Pro, Business and Enterprise plans.

For a local business with mostly nearby visitors, a CDN adds less to speed, though it still takes requests off your server. Purge its cache after changes, and on a store, test the cart and checkout.

What should you fix first?

Fix the metric that fails in field data on the pages that matter most: the homepage, top landing pages and, on a store, product pages and checkout. Change one thing at a time on a staging copy, then retest. Field data covers 28 days, so real-visitor numbers take a few weeks to catch up.

If you would rather hand it off, WP Resolve's Speed Optimization is a one-off $399 Core Web Vitals pass with before-and-after numbers. For speed checked on a schedule, the Business Care plan ($149 a month) includes a quarterly speed tune-up.

Not sure where your site stands? The free site health check covers your updates, backups, security and speed, or text WP Resolve at (916) 209-0917.

Frequently asked questions

What are good Core Web Vitals scores?

An LCP of 2.5 seconds or less, an INP of 200 milliseconds or less and a CLS of 0.1 or less. Google measures each at the 75th percentile of real visits, separately for mobile and desktop.

Why is my PageSpeed Insights score different every time I test?

The 0 to 100 score comes from a single lab test in simulated conditions, so it varies between runs. The field data at the top of the report covers real Chrome users over 28 days and is what the Core Web Vitals assessment uses.

Do I need a PageSpeed score of 100?

No. The score is a lab result. What matters for Core Web Vitals is whether real visitors' LCP, INP and CLS are in the good range.

Should I lazy load my hero image?

No. The hero is usually the LCP element, and lazy loading it always delays it. WordPress skips lazy loading for the image it judges most likely to be the main one, so make sure your plugins and page builder do too.

Will a caching plugin fix Core Web Vitals on its own?

It usually helps LCP by speeding up the server's response, and some can delay scripts and add missing image dimensions. It will not resize oversized images, remove plugins you do not need or stop a cookie banner from pushing the page down.

How long do Core Web Vitals fixes take to show in Search Console?

Field data covers the previous 28 days, so improvements appear gradually. When you start validation in the Core Web Vitals report, Google tracks the affected pages for 28 days.

BLOG

More from WP Resolve