How to improve Core Web Vitals in WordPress

To improve Core Web Vitals in WordPress, start from the field data in Search Console to see which templates fail, then fix each metric at its cause: a fast server and an early hero image for Largest Contentful Paint, less JavaScript for Interaction to Next Paint, and reserved space for images and ads for Cumulative Layout Shift. Then wait for 28 days of new field data before judging the result.

Core Web Vitals are Google's three user-experience metrics. A page passes when, at the 75th percentile of real visits, LCP is 2.5 seconds or less, INP is 200 milliseconds or less, and CLS is 0.1 or less. They are part of Google's page experience signals, but relevance still matters far more, so fix the pages that get traffic first.

Step by step

1. Find the failing pages in field data

Open Experience → Core Web Vitals in Search Console. It groups similar URLs and shows which metric fails for each group, separately for mobile and desktop. Groups usually map to templates: posts, product pages, the homepage. Fixing the template fixes the group. For a single URL, PageSpeed Insights shows the same real-user data at the top and a lab test below it.

2. Fix LCP: start with the server

Largest Contentful Paint cannot happen before the HTML arrives. If time to first byte is slow, fix that first with how to reduce TTFB. PageSpeed Insights names the LCP element for a page, which on most WordPress templates is the featured image or a hero banner.

3. Fix LCP: load the hero image early

  • Do not lazy-load it. Recent WordPress versions skip lazy loading on the first large image and add fetchpriority="high" to the image they judge to be the LCP element. Page builders, sliders and optimization plugins sometimes override this. Check the image tag in the page source for loading="lazy".
  • Serve the right size. A 3000px upload shown at 800px wastes bandwidth. WordPress creates smaller sizes and uses srcset, as long as the theme outputs images through WordPress functions.
  • Use a modern format. WebP or AVIF files are usually much smaller than JPEG at the same quality.
  • Avoid hero sliders. The first slide often waits for JavaScript before it appears.

4. Fix INP: cut JavaScript on the main thread

Interaction to Next Paint measures how quickly the page responds to taps, clicks and key presses. Slow INP almost always comes from JavaScript: heavy page builders, chat widgets, several analytics and ad tags, and plugins that load scripts on every page when they are needed on one. Remove what you do not use, load third-party tags after the page is interactive, and restrict plugin assets to the pages that need them. Hydrogen SEO itself adds no JavaScript to the front end.

5. Fix CLS: reserve space before content loads

Cumulative Layout Shift counts content jumping around while the page loads.

  • Make sure every image and iframe has width and height attributes. WordPress adds them for images inserted through the editor; custom theme code often forgets.
  • Give ad slots, embeds and cookie banners a fixed minimum height, or place banners over the content instead of pushing it down.
  • Web fonts that swap in late can shift text. Preload the one or two fonts used above the fold and self-host them if you can.

6. Test changes in the lab first

Run PageSpeed Insights or Chrome's Lighthouse panel on staging before and after each change, on the mobile setting. Lab tests cannot measure INP directly, so use Total Blocking Time as the stand-in. Change one thing at a time so you know what helped. The Performance area of the Hydrogen SEO site health score also flags common problems such as oversized images.

7. Deploy, then validate in Search Console

Push the change live, open the failing group in the Core Web Vitals report and click Validate fix. Google collects 28 days of new field data before confirming. Low-traffic pages may not have enough visits for their own data, in which case they are judged with their group.

Where WordPress sites usually lose

ProblemMetric it hurts
Uncached pages on slow hostingLCP
Lazy-loaded or oversized hero imagesLCP
Page builders and many third-party scriptsINP
Ads, embeds and banners without reserved spaceCLS
Late-loading web fontsCLS, LCP

Check these before reaching for another optimization plugin. Stacking several plugins that all minify and defer scripts often breaks pages and makes results harder to trace.

Common mistakes

  • Chasing a lab score of 100. Google uses field data. A page can pass Core Web Vitals with a lab score in the 70s.
  • Testing only on desktop. Most sites fail on mobile first, where phones are slower and networks less reliable.
  • Lazy-loading everything, including the image at the top. That is a common cause of slow LCP.
  • Judging a fix after two days. Field data rolls over 28 days.

Common questions

What are good Core Web Vitals scores?

At the 75th percentile of real visits: LCP of 2.5 seconds or less, INP of 200 milliseconds or less, and CLS of 0.1 or less.

Do Core Web Vitals affect rankings?

They are part of Google's page experience signals, but relevance and content quality count for much more. Treat them as a way to keep visitors, with a small ranking benefit.

Why does PageSpeed Insights show different numbers each time?

The lab test runs on a simulated device and varies between runs. The field data at the top comes from real Chrome users over 28 days and is what Google uses.

Can an SEO plugin fix Core Web Vitals?

No. Performance comes from hosting, caching, the theme and scripts. The most an SEO plugin can do is avoid making it worse by adding front-end code.