Skip to main content Skip to content
furyhost
Get started

How to Make Core Web Vitals Pass on WordPress

Abstract gauge dials representing Core Web Vitals measurement

Core Web Vitals measure three things: how fast your main content appears, how quickly the page responds when someone taps it, and whether the layout jumps around while it loads. A WordPress site passes when it meets all three thresholds for real visitors over a 28-day window — not in a single lab test.

The three metrics and their thresholds

Google publishes a pass mark for each. You need the 75th percentile of real visits to be at or under all three.

Largest Contentful Paint (LCP) — 2.5 seconds or less. The moment the biggest thing in the viewport finishes rendering, usually a hero image or headline.

Interaction to Next Paint (INP) — 200 milliseconds or less. How long the page takes to visibly respond after a tap or click. This replaced First Input Delay in 2024 and is much harder to fake.

Cumulative Layout Shift (CLS) — 0.1 or less. How much content moves unexpectedly while loading. An advert or a late-loading font pushing a paragraph down is what this catches.

What hosting can actually fix

Hosting owns the first part of LCP: how long the server takes to send the first byte, and how far that byte has to travel. Serving cached HTML from an edge location near the visitor removes most of that delay, and object caching stops repeated database queries from adding to it. If your time to first byte is over half a second, hosting is your bottleneck and no amount of theme work will rescue the number.

Hosting cannot fix INP or CLS. Both are decided in the browser, by your theme and plugins.

What only your theme and plugins can fix

INP is almost always JavaScript. A slider, a chat widget, a consent banner or an analytics bundle occupying the main thread means the browser cannot respond to a tap until it finishes. The fix is removing or deferring scripts, not buying a faster server.

CLS is nearly always missing dimensions. Images without width and height attributes, ad slots with no reserved space, and web fonts swapping in at a different size all shift the layout. Setting explicit dimensions fixes most of it in an afternoon.

A sensible order of work

Measure the field data first, so you know which metric is actually failing.

Fix CLS. It is the cheapest win and rarely regresses once dimensions are set.

Audit JavaScript for INP. Remove what nobody uses, defer what can wait.

Then look at LCP: server response, image format and size, and whether the hero image is preloaded rather than discovered late.

Measure honestly: field data, not lab scores

PageSpeed Insights shows two things and people routinely confuse them. The score out of 100 is a lab simulation on a throttled connection. The Core Web Vitals assessment above it is field data from real Chrome users. Only the field data affects search. A perfect lab score with failing field data means your test conditions do not match your visitors.

Field data also lags. It is a rolling 28-day window, so a fix you shipped on Monday will not show up fully for a month. Do not judge a change by re-running the test an hour later.

The short version

Hosting fixes the server half of LCP. Your theme fixes INP and CLS. Both matter, and the common mistake is buying faster hosting to solve a JavaScript problem, or blaming a theme for a slow server. Measure first, and you will know which one you have.

Built with Oxygen