← All insights

Why Is My WordPress Site Failing Core Web Vitals?

Core Web Vitals are Google's ranking signals for speed and experience. Here is what LCP, CLS, and INP mean in plain English, and why WordPress sites often fail them.

Most WordPress sites fail at least one Core Web Vitals threshold. The most common failure is LCP, the measurement of when your main content appears. Here is what each metric actually measures, why WordPress sites struggle with each, and what you can do to pass.

What is Largest Contentful Paint and why do WordPress sites fail it?

Largest Contentful Paint, or LCP, measures when the biggest visible thing on your page finishes loading. Usually that is your main headline, hero image, or the largest block of content a visitor sees first.

Google considers under 2.5 seconds good. Over 4 seconds is poor and can affect your rankings.

WordPress sites fail LCP for a handful of common reasons.

Oversized images. If your hero image was uploaded at camera resolution, it might be 4 to 8 megabytes. That image IS your LCP element. Compressing it to under 300 kilobytes can move your LCP from 6 seconds to under 2 seconds. This is the most common fix. See the full guide on fixing oversized images.

No server-side caching. Every time someone visits a WordPress page, the server runs code and queries the database to build it. On shared hosting, that work takes time. A caching layer stores a ready-made copy and sends it immediately. Without caching, the server response time alone can eat 1 to 2 seconds before any content loads.

Render-blocking scripts. Some scripts must load and run before the browser can display your page. Many plugins add scripts like this. The result is that your page is ready to display but waits on scripts to finish first. PageSpeed Insights flags these as “eliminate render-blocking resources.”

What is Cumulative Layout Shift and how do I fix it?

Cumulative Layout Shift, or CLS, measures whether your page moves around while it loads. You have seen this happen: you go to click a link and it jumps down as an image loads above it. You accidentally tap the wrong thing.

Google considers under 0.1 good. Over 0.25 is poor.

The most common cause is images uploaded without explicit width and height dimensions. When the browser does not know how tall an image will be, it cannot reserve space for it. The image loads and pushes everything else down.

The fix is to make sure every image tag includes width and height attributes. WordPress adds these automatically to images inserted through the media library in modern versions, but older images or images pasted from builders may not have them. Your builder may also inject images without dimensions.

Ads loading after the page renders are another common CLS cause. If you run Google Ads or any ad network on your site, those widgets often push content around.

What is Interaction to Next Paint and why is it the hardest to fix?

Interaction to Next Paint, or INP, measures how quickly your page responds after someone clicks or taps something. Under 200 milliseconds is good. Over 500 milliseconds is poor.

Poor INP usually means your page has too much JavaScript running and the browser is too busy to respond immediately. Visual page builders, marketing tools, chat widgets, and analytics scripts all add JavaScript that runs in the background. When too much is running, the browser cannot handle a click promptly.

INP is the hardest Core Web Vital to fix on a plugin-heavy site because the JavaScript usually comes from plugins and themes that you cannot easily edit. The options are to remove the heaviest scripts or to defer them so they run later, after the page is interactive.

What you can do today

  1. Check your scores. Enter your address in Google PageSpeed Insights and look at the three Core Web Vitals values. Note which ones are failing.
  2. Fix your LCP image first. If PageSpeed Insights shows an image as your LCP element and it is over 300 kilobytes, compress it and re-upload it. This is the most common and most fixable failure.
  3. Enable server-level caching. Log into your hosting control panel and look for caching settings. Turning on server-level caching improves LCP by reducing server response time.
  4. Add image dimensions. Make sure your hero image and other large images have explicit width and height values. In WordPress, editing an image in the media library and re-inserting it often adds these.
  5. Remove unused scripts. Disable plugins that run scripts you no longer need, like old chat widgets or unused marketing tools.

Why WordPress sites struggle with these metrics structurally

Core Web Vitals measure things that happen in the browser: how fast content appears, how stable the layout is, how responsive the page is to interaction. All three are affected by how much code the browser has to process.

WordPress sites tend to accumulate code over time. Each plugin adds scripts. Each update can introduce new loading patterns. Themes change how CSS loads. The result is that a site you last optimized a year ago may be failing metrics it passed before.

This is not a WordPress flaw. It is the nature of a system with many independently updated parts. Every part adds weight. The browser has to process all of it.

A platform where the page is fully assembled before anyone visits it, with no plugins and no live database queries, passes Core Web Vitals with no ongoing tuning required. That is the architecture Basalt moves sites to. Basalt moves small business websites off WordPress to a platform with nothing to hack and nothing to update. The move is free. Learn more at alternatives to WordPress for small business.

Find out what is wrong in 60 seconds

Or skip all this. Enter your web address and we will tell you exactly what is wrong with your site. Free, 60 seconds, no account needed.

Quick answers

What are Core Web Vitals?

Core Web Vitals are three measurements Google uses to evaluate page experience: Largest Contentful Paint (when the main content appears), Cumulative Layout Shift (how much the page moves while loading), and Interaction to Next Paint (how quickly the page responds to clicks). Google uses these as ranking signals.

Does failing Core Web Vitals hurt my Google ranking?

Yes. Google uses Core Web Vitals as a ranking signal, meaning pages that fail the thresholds can rank lower than pages that pass, when other ranking factors are similar. It is one factor among many, but it is a real one with a measurable effect.

What score do I need to pass Core Web Vitals?

For LCP, under 2.5 seconds is good, 2.5 to 4 seconds needs improvement, and over 4 seconds is poor. For CLS, under 0.1 is good, 0.1 to 0.25 needs improvement, and over 0.25 is poor. For INP, under 200 milliseconds is good, 200 to 500 milliseconds needs improvement, and over 500 milliseconds is poor.

How do I check my Core Web Vitals scores?

Go to Google PageSpeed Insights (free, no account needed) and enter your web address. It shows your scores for both mobile and desktop. The Search Console in Google also shows real-world Core Web Vitals data from actual visitors if you have verified your site there.

Can I fix Core Web Vitals on WordPress?

Often yes, at least enough to pass the thresholds. Image compression, good hosting with server-level caching, and removing unused scripts usually gets LCP into range. CLS is fixed by setting dimensions on all images. INP is the hardest and usually requires reducing JavaScript.

Sixty seconds. Zero jargon.

See what's actually wrong with your site: speed, plugins, and every way in.

Check my site free