Core Web Vitals measure three things real visitors feel: how fast the main content appears (Largest Contentful Paint, LCP), how quickly the page responds when they tap or click (Interaction to Next Paint, INP), and whether things jump around while it loads (Cumulative Layout Shift, CLS). WordPress can pass all three comfortably. When it doesn't, the causes are remarkably consistent.
First, Measure the Right Thing
Google assesses Core Web Vitals on real-user data (the Chrome UX Report), at the 75th percentile, mostly on mobile. A perfect lab score on your laptop can sit alongside failing field data. Start with the Core Web Vitals report in Search Console to see which URL groups fail and on which metric, then use PageSpeed Insights and browser DevTools to diagnose individual templates.
| Metric | Good | Poor |
|---|---|---|
| LCP | 2.5 s or less | Over 4 s |
| INP | 200 ms or less | Over 500 ms |
| CLS | 0.1 or less | Over 0.25 |
Fixing LCP
- Slow server response. If time to first byte is high, fix it first: full-page caching, a persistent object cache, current PHP, and hosting sized for your traffic. Nothing on the front end compensates for a slow server.
- The LCP image is lazy-loaded. A common mistake: lazy-loading the hero image. Exclude above-the-fold images from lazy loading and give the LCP image high fetch priority.
- Oversized images. Serve correctly sized images in modern formats with responsive
srcset. - Render-blocking CSS and fonts. Page builders and multipurpose themes often load large stylesheets on every page. Inline critical CSS, defer the rest, and preload the main font.
- Sliders and heavy hero sections. A carousel as the LCP element delays everything. A single static hero image is almost always faster, and usually converts as well or better.
Fixing INP
INP is usually a JavaScript problem.
- Too much JavaScript on the main thread. Page builders, sliders, animation libraries and jQuery-dependent plugins all add work. Audit what each page loads and remove what it doesn't use.
- Third-party scripts. Chat widgets, tag managers, heatmaps and ad pixels frequently cause the worst interaction delays. Load them later or on interaction, and remove ones nobody uses.
- Heavy event handlers. Menus, filters and forms that do a lot of work on click. Break up long tasks and give visual feedback immediately.
Fixing CLS
- Images and embeds without dimensions. Always set width and height (or aspect ratio) so the browser reserves space.
- Web fonts swapping in. Preload key fonts and use fallback fonts with similar metrics to reduce the shift.
- Banners and notices injected at the top. Cookie bars, promo bars and ads pushed in after load. Reserve their space or overlay them.
The Plugin and Theme Question
Optimisation plugins help, but they are working around problems caused by everything else. The largest improvements usually come from removing weight: a leaner theme, fewer plugins, and less third-party script. We compare the options in custom theme vs page builder. For WooCommerce stores, see our 12 fixes for slow WooCommerce stores.
Be patient with the report. Field data is a rolling 28-day window, so after you fix something, Search Console takes weeks to reflect it. Use lab tools to confirm the fix immediately, and the field data to confirm real users feel it.
Our WordPress performance service diagnoses on real-user data and fixes the causes rather than stacking another plugin on top. Book a performance review.
FAQ
Why does my WordPress site fail Core Web Vitals?
The most common causes are slow server response, a lazy-loaded or oversized hero image, render-blocking CSS from heavy themes and page builders, too much JavaScript from plugins and third-party scripts, and images, embeds or banners that load without reserved space.
How do I improve LCP on WordPress?
Fix server response time first with caching and adequate hosting, then make sure the main hero image is not lazy-loaded, is correctly sized in a modern format and is prioritised, and reduce render-blocking CSS and fonts.
How do I fix a poor INP score on WordPress?
INP problems are usually caused by JavaScript. Remove unused plugins and scripts, delay third-party tools such as chat widgets and trackers, and simplify heavy click handlers on menus, filters and forms.
How long does it take for Core Web Vitals fixes to show in Search Console?
Search Console uses a rolling 28-day window of real-user data, so improvements take several weeks to be fully reflected. Lab tools such as PageSpeed Insights show whether a fix worked immediately.
Written by
Karan Joshi · WooCommerce Engineer
Karan architects high-volume WooCommerce sites. He specialises in custom plugins, performance optimisation, and complex product catalogues.
Meet the team →