Technical SEO 4 min read

Core Web Vitals on WordPress: Fixing LCP, INP and CLS Step by Step

A hands-on guide to passing Core Web Vitals on WordPress — how to measure correctly, and the specific fixes for slow LCP, sluggish INP and layout shifts caused by themes, plugins, fonts and ads.

On this page

Key takeaways

  • Judge success by field data (real users, shown in Search Console and PageSpeed Insights’ top section), not only the Lighthouse lab score.
  • Most WordPress LCP problems come from slow hosting, an unoptimised hero image or render-blocking CSS/fonts.
  • Most INP problems come from too much JavaScript — page builders, sliders, chat widgets and tracking scripts.

WordPress powers a huge share of the web, and many of those sites struggle with speed. The reason is rarely WordPress itself — it’s heavy themes, stacks of plugins and third-party scripts. Here’s how I approach Core Web Vitals on WordPress on client sites.

Understand the three metrics#

LCPLargest Contentful Paint: when the biggest visible element (usually a hero image or headline) renders. Good: ≤ 2.5 s.
INPInteraction to Next Paint: how quickly the page visually responds to taps, clicks and key presses. Replaced FID in March 2024. Good: ≤ 200 ms.
CLSCumulative Layout Shift: how much content unexpectedly moves. Good: ≤ 0.1.

Google assesses these at the 75th percentile of page loads, separately for mobile and desktop. Learn more in the Core Web Vitals library entry.

Measure correctly first#

  1. Search Console → Core Web Vitals: groups of URLs that pass or fail, based on real Chrome users (CrUX data).
  2. PageSpeed Insights: the top section shows field data for the URL or origin; the bottom section is a Lighthouse lab test useful for diagnosis.
  3. Chrome DevTools → Performance panel: record an interaction to see exactly which scripts slow INP.
Don’t chase 100/100 The Lighthouse score is a lab simulation. A site can score 70 and pass Core Web Vitals for real users, or score 95 and fail. Optimise the field metrics.

Fixing slow LCP#

1. Start with hosting and caching#

If your server takes over a second to respond (Time to First Byte), every metric suffers. Use quality managed or cloud hosting with a data centre near your audience (Mumbai or Singapore for Indian visitors), enable full-page caching, and put a CDN in front of the site.

2. Optimise the LCP image#

  • Serve it in WebP or AVIF at the correct display size, with srcset.
  • Never lazy-load the LCP image. Add fetchpriority="high" to it.
  • Avoid hero sliders; a single static image or text headline is faster and usually converts better.
  • Preload the LCP image if it’s a CSS background.

3. Reduce render-blocking resources#

  • Remove unused plugin CSS/JS on pages that don’t need it (many optimisation plugins can do this per page).
  • Inline critical CSS and defer the rest.
  • Limit web fonts to one or two families and the weights you actually use; use font-display: swap and consider self-hosting.

Need a hand with this?

Get a quick, honest review of your website’s SEO.

Chat on WhatsApp

Fixing poor INP#

INP measures responsiveness throughout the visit. The usual culprit is long JavaScript tasks blocking the main thread.

  • Audit plugins: deactivate and test. Page builders, sliders, popup plugins, social feeds and some analytics add heavy JS.
  • Delay third-party scripts (chat widgets, heatmaps, ad pixels) until user interaction or after load.
  • Defer non-critical JavaScript and avoid jQuery-dependent plugins where lightweight alternatives exist.
  • Reduce DOM size: deeply nested builder layouts make every interaction slower.
  • For custom code, break up long tasks and give the browser a chance to paint between steps.

Fixing CLS#

  • Always set width and height (or aspect-ratio) on images, videos and iframes.
  • Reserve space for ads and embeds with fixed-size containers.
  • Avoid injecting banners (cookie notices, promos) above existing content after load; overlay them instead.
  • Use font-display: swap with fallback fonts of similar metrics to reduce text reflow.
  • Animate with transform and opacity, not properties that change layout.

A lean WordPress stack#

Layer Recommendation
Hosting Managed/cloud host with server-level caching and PHP 8.x
Theme Lightweight theme with minimal JavaScript (like this one)
Caching One caching/optimisation plugin, configured carefully — not three overlapping ones
Images Automatic WebP/AVIF conversion and resizing
CDN Cloudflare or your host’s CDN
Scripts Tag Manager with delayed loading for non-essential tags

Validate and monitor#

After changes, use “Validate fix” in Search Console’s Core Web Vitals report. Field data uses a rolling 28-day window, so expect results to update gradually over about four weeks. Re-test whenever you add a plugin, change the theme or install a new tracking script.

Speed is one part of the bigger picture — see the full technical SEO checklist for everything else.

Core Web Vitals FAQ#

Are Core Web Vitals a ranking factor?#

They are part of Google’s page experience signals. Relevance and content quality matter far more, but good vitals can help as a tie-breaker and clearly improve conversions.

Why do lab and field results differ?#

Lab tests simulate one device and network. Field data reflects real users on many devices and connections over 28 days.

Which caching plugin is best?#

The best one is the one your host supports and you configure carefully. Avoid running several optimisation plugins that do the same job.

Found this useful? Share it

Join the discussion

Your email address will not be published. Required fields are marked *