Core Web Vitals for WordPress: What Agencies Need to Fix
Core Web Vitals are Google’s way of measuring how fast and stable a page feels to the people actually using it. They play a part in search visibility, and a bigger part in whether visitors stay. For agencies, they also explain a lot of client emails that start with “why does our site feel slow?” or “why did our rankings drop?”
The three metrics in plain words, what usually breaks them on WordPress, and which fixes to do first.
The three metrics
Largest Contentful Paint (LCP)
How long it takes for the main content, usually the hero image or the headline, to show up. 2.5 seconds or less counts as good.
Interaction to Next Paint (INP)
How quickly the page reacts when someone clicks, taps or types. It replaced First Input Delay in 2024. Good is 200 milliseconds or less.
Cumulative Layout Shift (CLS)
How much the layout jumps around while the page loads. Good is 0.1 or less.
Field data and lab data
PageSpeed Insights shows two sets of numbers, and people mix them up all the time. Field data comes from real Chrome users over the last 28 days, and it’s what Google uses. Lab data is one simulated test run, handy for debugging. Start with the field data in Search Console to see where the problem is, then use lab tests to work out why.
LCP on WordPress
The usual suspects are a large hero image in an old format, or a hero image that’s lazy-loaded and so arrives late. Slow server responses from cheap hosting or missing page caching come next, followed by CSS and fonts that block rendering, and sliders or page builder sections that load heavy scripts before anything else.
To fix it, serve the hero image in a modern format at the right size and preload it. Don’t lazy-load anything above the fold. Add page caching and a CDN, and move hosts if the server itself is slow. Inline the critical CSS and load the rest without blocking. Cut down the font files and use font-display: swap.
INP on WordPress
INP problems nearly always come down to JavaScript: too much of it from plugins, the theme and the page builder, plus third-party scripts like chat widgets, tracking pixels and A/B testing tools. When a visitor taps something, the browser is still busy with long tasks and can’t respond.
Remove plugins you don’t need, and load the remaining plugins’ scripts only on pages that use them. Hold back non-essential third-party scripts until the first interaction. Replace heavy sliders and effects with lighter ones, and split long tasks in your own code.
CLS on WordPress
Layout shift usually comes from images, videos and iframes without width and height, web fonts that change size as they load, banners, cookie notices or ads pushed in above the content, and blocks that load late without space reserved for them.
The fixes are simple once you know where to look. Set dimensions on every image, video and iframe. Reserve space for anything that loads later. Show cookie banners as overlays instead of pushing the page down. Pick fallback fonts that are close in size to the web fonts.
The theme matters more than you’d think
A lot of Core Web Vitals trouble comes from the theme itself. Multipurpose themes and page builders load a lot of CSS and JavaScript on every page, whether that page needs it or not. Sometimes the only lasting fix is a lightweight custom theme, as we explain in custom vs premium themes.
Keeping the scores up
A good score doesn’t stay good by itself. New plugins, content and tracking scripts slowly eat into the improvements. Check Core Web Vitals monthly as part of a care plan and fix regressions while they’re small.
For the full list of optimisations, see our WordPress speed optimization checklist. If you would rather hand the work over, our WordPress speed optimization service fixes Core Web Vitals on client sites, with before-and-after reports under your brand.
Send us a client site for a speed audit.