How to Fix Core Web Vitals in WordPress (LCP, INP, CLS)
Core Web Vitals — LCP (Largest Contentful Paint), INP (Interaction to Next Paint), CLS (Cumulative Layout Shift) — are real ranking signals. WordPress sites can usually fix all three by working through the same audit workflow because the underlying issues (slow hosting, unoptimised images, blocking JS, unreserved layout) are shared. This guide covers the unified WordPress CWV workflow. Drill down on individual metrics: CLS, LCP/speed.
Step 1: Baseline all three metrics
PageSpeed Insights on 5 representative URLs. Record LCP, INP, CLS under mobile (where most CWV failures live). Note field data vs lab data — Google ranks on field.
Step 2: Audit hosting and TTFB
If TTFB exceeds 600ms, LCP is fundamentally capped. Test with a managed WP host (Kinsta, WP Engine) trial or move to a tuned VPS. This is the highest-leverage single change for LCP.
Step 3: Install and configure caching
WP Rocket or WP Fastest Cache. Enable page caching, browser caching, GZIP, lazy load below-fold images. Caching alone usually moves LCP by 30-50%.
Step 4: Optimise images comprehensively
Bulk compress, convert to WebP, ensure responsive srcset, enable native lazy loading, add CDN. Detailed in 'Fix Images in WordPress'.
Step 5: Reduce JavaScript execution time (INP)
Use Query Monitor to identify slow plugins. Remove or replace JS-heavy plugins. Defer non-critical JS via WP Rocket. Move analytics and ad scripts to load after user interaction where possible.
Step 6: Reserve layout space (CLS)
Image dimensions on every img tag, fixed-height containers for ad slots, font-display: optional, audit plugin-injected content. Detailed in 'Fix CLS in WordPress'.
Step 7: Add a CDN
Cloudflare or BunnyCDN. Improves LCP for international visitors, takes load off origin server.
Step 8: Monitor field data over time
Set up Search Console → Core Web Vitals report. Watch for regressions weekly. Plugin updates routinely cause CWV regressions — catch them in the first 28 days before field data is fully affected.
Frequently Asked Questions
How long after fixing WordPress CWV before field data updates?
Field data is a 28-day rolling average from real Chrome users (CrUX). Single-fix impact appears within 7-10 days but full effect requires 28+ days. During that period, both lab and field numbers should be tracked: lab to confirm fixes are correct, field to confirm real-user benefit.
Does WP Rocket alone fix Core Web Vitals?
It's the highest-leverage single plugin but rarely a complete fix. WP Rocket handles caching, lazy loading, JS deferral and database optimisation. It doesn't fix hosting bottlenecks (TTFB), oversized images already uploaded, plugin-injected layout shifts, or third-party script INP impact. Expect WP Rocket alone to fix 60-70% of CWV issues; the rest requires targeted manual work.
Why does my INP score get worse after upgrading WordPress?
WordPress core updates sometimes add JavaScript to admin and editor interfaces that leaks into the front-end via emoji scripts, block editor scripts, or Site Health pings. After every WP update, disable wp-embed, emoji and other non-essential scripts via Perfmatters or a code snippet.
Is hosting really the biggest lever for WordPress CWV?
For LCP, yes — TTFB cap means no amount of CDN or caching can rescue a slow origin. For INP and CLS, hosting matters less; those are fixed by plugin/theme/code-level changes regardless of host.
Should I use 'Page Experience' plugins?
Most so-called 'Page Experience' plugins are repackaged caching+image-optimisation. They don't add unique value over a mainstream stack (WP Rocket + ShortPixel + Cloudflare). Prefer the proven stack to a one-stop 'CWV plugin'.
📊 Audit your Core Web Vitals
Get LCP, INP and CLS measurements with specific fix priorities.
Run CWV Audit →