Nearly half of all WordPress sites fail Google’s Core Web Vitals, and most owners have no idea theirs is one of them. A slow site quietly loses sales and rankings at the same time. This is a practical guide to fixing Core Web Vitals on WordPress in 2026, ranked by what actually moves the score, with no fluff.
The three numbers you are graded on
Core Web Vitals are three metrics, each with a clear passing threshold.
- Largest Contentful Paint, LCP. How fast the main content loads. Good is 2.5 seconds or less.
- Interaction to Next Paint, INP. How quickly the page responds when someone taps or clicks. Good is 200 milliseconds or less.
- Cumulative Layout Shift, CLS. How much the page jumps around as it loads. Good is 0.1 or less.
Pass all three and you are in good standing with Google and, more importantly, with the customer whose thumb is hovering over the buy button.
Fixing LCP, the loading score
LCP is usually about two things on WordPress: how fast your server responds, and how fast your biggest image or headline appears. Work them in this order.
- Page caching first. Caching stores the finished HTML so WordPress does not run PHP and hit the database on every visit. This cuts server response time and directly improves LCP.
- Hosting next. If your server takes more than 600 milliseconds to respond, no plugin will save you. Better hosting is the first fix when the server is slow.
- Preload the main image. Tell the browser to fetch your hero image early so it appears sooner.
- Inline critical CSS. Deliver the styles needed for the top of the page first, so it renders without waiting.
- Preload fonts with display swap. Stop invisible text while a custom font loads.
Fixing INP, the responsiveness score
INP is the metric most sites now fail. About 43 percent of sites miss the 200 millisecond threshold, and on WordPress the cause is almost always too much JavaScript running on the main thread. Every plugin that loads its own scripts adds to the pile.
- Cut the plugins you do not need. Each one often ships its own JavaScript that runs on every page.
- Defer and break up heavy scripts, so the browser can respond to taps instead of being busy.
- Replace bloated plugins with lighter code where a feature is simple enough to build directly.
- Audit what runs on your most important pages, like the product and checkout pages, and trim it.
This is the same discipline I use on Shopify, where heavy apps cause the same problem. The platform changes, the cause does not.
Fixing CLS, the stability score
CLS is about things moving as the page loads. The fixes are simple but easy to forget.
- Set width and height on images and embeds, so the browser reserves the space.
- Reserve space for ads and dynamic blocks, so content does not jump when they load.
- Load fonts in a way that does not shove text around when the custom font arrives.
Plugins or custom work
A good caching and optimization plugin handles a lot of this automatically, and for many sites that is enough to pass. Where plugins fall short is INP on a heavy site, because the real fix is removing the JavaScript the plugins themselves pile on. That is where trimming and custom code beat stacking another plugin on top. The honest path is plugins first, then targeted custom work where the score still will not move.
How to measure your scores properly
Before you fix anything, measure it the right way. There are two kinds of data, and they tell different stories. Lab data, from a tool like PageSpeed Insights run on demand, is a controlled test that is useful for debugging. Field data, from real visitors over the last 28 days, is what Google actually uses to judge your site, and you can see it in Search Console. Chase the field data, because a perfect lab score means little if real visitors on real phones still have a slow experience.
The biggest WordPress speed killers
Most slow WordPress sites are slow for the same handful of reasons. If you recognise your site here, you know where to start.
- Heavy page builders that ship bloated markup and extra scripts on every page.
- Too many plugins, each adding its own JavaScript and CSS whether the page uses it or not.
- A bloated theme that loads everything everywhere instead of only what the page needs.
- Unoptimized images that are far larger than the space they fill.
- Cheap or shared hosting with a slow server response time.
A realistic order to fix things
Do not try to fix everything at once. Work in the order that moves the score most for the least effort. Start with caching and hosting, because they lift every page. Then optimize your images and preload the main one. Then tackle the JavaScript that hurts INP by trimming plugins and deferring heavy scripts. Finish with the small CLS fixes, like setting image dimensions. Re-measure after each step so you can see what worked, rather than changing ten things and guessing.
Why Core Web Vitals matter beyond Google
It is easy to treat Core Web Vitals as an SEO checkbox, but the score is really a measure of how the site feels to a real person. A slow LCP means the visitor stares at a blank space. A poor INP means they tap and nothing happens. A high CLS means the button moves just as they reach for it. Each one quietly pushes someone toward the back button. Passing the metrics is not about pleasing Google. It is about not losing the customer who was ready to buy.
Mobile is where you win or lose
Most of your traffic is on a phone, often on a middling connection, and that is exactly where Core Web Vitals are hardest to pass. A site that feels fine on your office desktop can be sluggish on a real phone on mobile data. Always test on mobile, because that is the experience Google measures and the one most of your customers actually have. A fast desktop and a slow phone is still a failing site.
Do you need a plugin or a developer?
For a typical small site, a good caching and optimization plugin gets you most of the way, and that is the right first step. For a heavy site that still fails after the plugin, especially on INP, the fix is removing the JavaScript the plugins and theme pile on, and that is developer work. Try the plugin first and bring in custom help only where the score still will not move. Paying a developer to do what a plugin already does is waste, and stacking more plugins to fix a plugin problem is worse.
Keep your scores from slipping back
Passing once is not the finish. Every new plugin, heavy image, or redesign can undo your gains, so speed needs a light touch of ongoing attention. Check your field data in Search Console every month and after any big change. A quick look each month is far cheaper than discovering six months later that a plugin you added quietly pushed you back into the red.
Frequently asked questions
Why does my site still fail after installing a speed plugin?
Usually INP. Caching plugins fix loading, but they cannot remove the JavaScript that makes a page slow to respond. If your site still fails, the next step is trimming plugins and heavy scripts, not adding another optimization plugin.
Is hosting really that important?
Yes. If your server responds slowly, every page starts behind. When response time is over 600 milliseconds, upgrading hosting is the first and biggest win, before any other tuning.
How long does it take to pass Core Web Vitals?
A focused pass on a typical WordPress site is usually days to a couple of weeks, depending on how many plugins are involved and how heavy the theme is.
Will faster pages actually help sales?
Yes. Speed lifts both rankings and conversion, because a page that responds quickly keeps the visitor who would have bounced. The gain compounds with every visit you are already paying for.
Do images really make that big a difference?
Yes. Oversized images are one of the most common causes of a slow LCP, because the browser downloads far more than it needs. Right-sizing and compressing your images, and serving modern formats, is often the single biggest quick win on a WordPress site. Set the width and height too, and you fix a common cause of layout shift at the same time.
Get your WordPress site into the green
If your Core Web Vitals are red and you are not sure where to start, tell me about your site and I will send a prioritised plan and a quote within 24 hours. For the Shopify version of this work, see my Shopify Core Web Vitals checklist and my WordPress development service.