Core Web Vitals advice has become extremely repetitive, and most of it lists every possible optimisation without saying which ones matter. Our WordPress speed optimization service exists because the gap between a passing score and a failing one is usually three or four specific problems, not thirty.
This guide covers what the three metrics actually measure, the fixes that reliably move them on WordPress, and the common work that produces impressive lab numbers and no real improvement.
What the Three Metrics Measure
Largest Contentful Paint measures how long until the main content appears. Interaction to Next Paint measures how quickly the page responds when someone interacts with it. Cumulative Layout Shift measures how much the page jumps around while loading.
Between them they approximate three questions a visitor asks without thinking: has it loaded, does it respond, and is it stable. That framing is more useful than the acronyms.
Field Data Is the Only Data That Counts
Lab tools give you a controlled score from a single simulated device. Field data reflects what real visitors on real connections actually experienced. Assessment is based on field data, which is why a site can score well in a testing tool and still fail.
If your lab score and your field data disagree, trust the field data and work out what your real audience has that your test did not: older phones, slower networks, or a geography further from your server.
Fixing LCP: Usually the Hero Image
The Common Cause
On most WordPress business sites the largest contentful element is the hero image or heading at the top of the page. LCP problems are therefore usually image problems: the file is too large, it is lazy-loaded when it should not be, or it is served in an outdated format.
- Serve modern formats: WebP or AVIF instead of oversized JPEG and PNG files
- Never lazy-load the hero: lazy loading the above-the-fold image actively delays LCP
- Size images correctly: a 4000px image scaled down in CSS still downloads at full weight
- Preload the LCP image: so the browser discovers it early rather than after parsing CSS
- Cut render-blocking CSS: inline the critical styles and defer the rest
Server Response Time
If your server takes 800ms to return HTML, no amount of image optimisation gets you a good LCP. Page caching, a reasonable host, and a database that is not full of expired transients all matter here before anything on the front end does.
Fixing INP: Almost Always JavaScript
Interaction to Next Paint is the metric most WordPress sites fail, and the cause is nearly always the same: too much JavaScript competing for the main thread. When someone taps a menu, the browser is busy running scripts and cannot respond promptly.
The unglamorous fix is to run less JavaScript. Audit what is loading, remove plugins that inject scripts on every page for functionality used on one, and defer third-party tags that do not need to run immediately.
Tracking scripts, chat widgets, and A/B testing tools are the usual culprits. Each is individually defensible and collectively fatal.
Fixing CLS: Reserve the Space
Layout shift comes from elements that load late and push content around: images without dimensions, ads and embeds without reserved space, and web fonts that swap and reflow text.
- Set explicit width and height attributes on images and video
- Reserve fixed space for ad slots and embeds before they load
- Use font-display carefully so text does not reflow dramatically on swap
- Avoid injecting banners or notices above existing content after load
- Test on mobile, where shifts are more disruptive and more common
Work That Looks Productive but Is Not
Chasing a perfect lab score is the most common waste of effort. So is aggressive script combining, which frequently breaks functionality for a marginal gain, and installing a second optimisation plugin to fix problems the first one created.
Stacking caching plugins in particular tends to produce conflicts that are harder to diagnose than the original slowness.
The Order Worth Doing Things In
Fix server response time, then images, then JavaScript, then layout stability. This sequence front-loads the changes that affect every page and leaves the fiddly per-template work until the foundations are solid.
Want to know which of these your site is actually failing? A free site audit is the fastest way to find out where the real time is going.
Get a free audit covering security, updates, backups, and performance gaps. Takes 60 seconds to request and costs nothing.
