Ivan Book a call →

2026-06-10 · Ivan

Why Your WordPress Site Fails Core Web Vitals (And How to Fix It)

Most WordPress sites fail LCP, INP, and CLS not because of hosting — but because of decisions made years ago in the theme and plugin stack. Here's how to diagnose and fix each one.


Every week I audit a WordPress site for someone who says the same thing: “We switched to a faster host and it didn’t help.” It never does. Hosting is rarely the problem.

The real causes are almost always the same three things: a bloated theme, too many plugins doing overlapping jobs, and images that were never optimised. Here’s how to find and fix each one.

LCP: The Largest Contentful Paint problem

LCP measures how long it takes for the largest visible element — usually a hero image or heading — to render. The two most common causes are:

Fix the image first. Add fetchpriority="high" and remove loading="lazy" from your hero image. Then check whether your theme is loading its web fonts via a render-blocking <link> tag — if so, move to font-display: swap.

INP: Interaction to Next Paint

INP replaced FID in 2024 and it’s stricter. It measures how quickly the page responds to any interaction — click, tap, keystroke — throughout the entire session.

The most common culprit on WordPress sites is JavaScript loaded by plugins that runs on the main thread. Cookie consent banners, chat widgets, and analytics scripts are frequent offenders. Use Chrome DevTools’ Performance panel to find long tasks, then delay or remove the scripts causing them.

CLS: Layout Shift

If your page jumps around as it loads, you’re leaking CLS. The usual causes:

Add dimensions to every image. If you’re using Gutenberg blocks, check that each block has a defined aspect ratio.

The audit order that works

Don’t guess. Measure first with PageSpeed Insights, then with Chrome DevTools in an incognito window on a throttled connection. Fix LCP first — it has the biggest impact on perceived performance and the highest ranking weight.

If you’ve done all of this and you’re still failing, the problem is almost certainly your theme. Page builders like Divi and Elementor load hundreds of kilobytes of unused CSS and JavaScript on every page. The only real fix is replacing them.