To speed up a WordPress site and pass Core Web Vitals, fix the server first (good hosting, a current PHP version and page caching), then shrink what each page sends (optimised images, fewer plugins, less JavaScript and CSS), and finally tune the details that the three metrics measure: a fast-loading main image for LCP, light scripts for INP and reserved space for CLS. Most slow WordPress sites fail for the same handful of reasons, so a methodical pass usually fixes more than any single “speed plugin” can.
Softwix has been building and maintaining WordPress and WooCommerce sites since 2017, and performance is a standard part of our WordPress development work. This guide follows the order of work we recommend: measure, fix the foundation, trim the front end, then check the field data again.
WordPress speed optimisation at a glance
| Step | What to do | Main metric it helps | Effort |
|---|---|---|---|
| 1. Measure | Check PageSpeed Insights field data and Search Console’s Core Web Vitals report | All | Low |
| 2. Hosting and PHP | Use adequate hosting, PHP 8.3 or newer, server-level caching | LCP (via TTFB) | Medium |
| 3. Page caching | Serve cached HTML pages instead of building each one on request | LCP | Low |
| 4. Images | Resize, compress, use WebP/AVIF, never lazy-load the main image | LCP | Low |
| 5. Plugins and scripts | Remove unused plugins, delay non-essential JavaScript, cut third-party tags | INP, LCP | Medium |
| 6. CSS and fonts | Remove unused CSS, host fonts locally, limit font weights | LCP, CLS | Medium |
| 7. Layout stability | Set image and embed dimensions, reserve space for banners and ads | CLS | Low |
| 8. CDN | Serve static files from a content delivery network | LCP | Low |
| 9. Re-test | Wait for 28 days of field data to update before judging results | All | Low |
What are Core Web Vitals and what scores do you need?
Core Web Vitals are three Google metrics that measure loading speed, responsiveness and visual stability. A page passes when it hits the “good” threshold for all three at the 75th percentile of real visits.
According to Google’s web.dev guide to Web Vitals, the targets are:
| Metric | What it measures | “Good” threshold |
|---|---|---|
| Largest Contentful Paint (LCP) | How quickly the main content (often a hero image or headline) appears | 2.5 seconds or less |
| Interaction to Next Paint (INP) | How quickly the page responds when someone taps, clicks or types | 200 milliseconds or less |
| Cumulative Layout Shift (CLS) | How much the layout jumps around while loading | 0.1 or less |
INP replaced First Input Delay (FID) and became a stable Core Web Vital in 2024. If you read an older guide that only talks about FID, its advice on interactivity is out of date.
The 75th percentile rule matters. It means three out of four visits need to be fast, so a page that loads quickly on your office fibre connection can still fail if most of your visitors use mid-range phones on mobile data.
Do Core Web Vitals affect Google rankings?
Yes, but as one signal among many. Google’s Search Central documentation on Core Web Vitals (updated December 2025) says good Core Web Vitals align with what its core ranking systems seek to reward, and recommends site owners achieve them “for success with Search”.
Speed will not lift thin content above a better answer, but it acts as a tiebreaker between similar pages, and it has a direct effect on how many visitors stay, browse and buy. For a WooCommerce store, a faster checkout is often worth more than the ranking benefit itself.
If you are weighing platforms before a rebuild, our WordPress vs Shopify comparison covers how much speed control each gives you. WordPress gives more control, which also means more responsibility.
How do you measure WordPress speed correctly?
Use field data from real users first and lab tests second. Field data tells you whether you pass; lab data helps you find out why you do not.
Google’s PageSpeed Insights documentation explains the difference:
- Field data comes from the Chrome User Experience Report and covers real visits over the previous 28-day collection period. This is what Core Web Vitals assessments are based on.
- Lab data comes from a Lighthouse test in a simulated environment. It produces the familiar 0–100 performance score, where 90 or above is “good”, 50–89 “needs improvement” and below 50 “poor”.
The two can disagree. A page can score 65 in the lab and still pass Core Web Vitals in the field, or the reverse. Do not chase a perfect lab score at the cost of features your customers use.
A simple measurement routine
- Open the Core Web Vitals report in Google Search Console to see which groups of URLs fail and on which metric.
- Run your homepage, a category or service page, a product page and a blog post through PageSpeed Insights. Test mobile first.
- Note the LCP element PageSpeed Insights identifies on each template. It is often a hero image, a slider or a large heading.
- Record the numbers before you change anything, so you can prove what worked.
Small sites may not have enough traffic for page-level field data. In that case use origin-level data and lab tests as your guide.
Why is my WordPress site slow?
The most common causes are slow hosting, no page caching, oversized images, too many plugins and heavy page builders or third-party scripts. Usually it is a combination of three or four of these.
Google’s guide to optimising LCP breaks loading time into four parts and suggests that roughly 40% should be server response time (TTFB), roughly 40% loading the main resource, and under 10% each for the delay before that resource starts loading and the time to render it. It also warns that a high TTFB can make a 2.5 second LCP “challenging, or even impossible”. That is why the server comes first.
How do hosting and PHP version affect WordPress speed?
They set the floor for every other optimisation. On weak or overcrowded hosting, even a well-built theme will have a slow first byte.
The official WordPress.org requirements page recommends PHP 8.3 or greater and MySQL 8.0 or greater (or MariaDB 10.11 or greater). It notes that older versions, though still compatible, have reached end of life and may expose your site to security risks. Newer PHP versions are also faster, so updating PHP is one of the cheapest wins available.
Hosting checklist
- Choose a data centre close to your main audience. For a Bangladeshi audience, Singapore is a common choice; for UK customers, a London or European location.
- Make sure the host offers server-level caching or object caching (Redis or Memcached) for dynamic sites such as WooCommerce.
- Check that HTTP/2 or HTTP/3 and Brotli or Gzip compression are enabled.
- If you consistently hit your plan’s CPU or memory limits, upgrade. The WordPress handbook notes this can help when you are maxing out limits.
Which caching setup should a WordPress site use?
Every WordPress site should use page caching, and dynamic sites should add object caching. Page caching is usually the biggest single improvement.
The official WordPress optimisation handbook tells site owners who need a quick fix to go straight to caching, because it gives “the biggest benefit for the smallest hassle”. A caching plugin or host-level cache saves pages as static files, so WordPress does not rebuild each page from PHP and the database on every visit.
| Cache type | What it does | Who needs it |
|---|---|---|
| Page cache | Stores finished HTML pages | Every site |
| Object cache | Stores database query results in memory | WooCommerce, membership and busy sites |
| Browser cache | Tells browsers to keep static files locally | Every site |
| CDN cache | Stores files on servers close to visitors | Sites with visitors in several regions |
For WooCommerce, make sure the cart, checkout and my-account pages are excluded from page caching. Most reputable caching tools do this automatically, but always check.
Use one caching solution, not two. Running a host cache and a caching plugin that both try to cache pages is a common source of broken layouts and stale content.
How do you optimise images in WordPress?
Resize images to the size they are displayed, compress them, serve modern formats and load the main image as early as possible. Images are the LCP element on most WordPress pages.
- Resize before upload. A 5,000-pixel photo straight from a camera is wasted weight in a 1,200-pixel content area.
- Use WebP or AVIF. The WordPress handbook recommends considering WebP because it is smaller in size. Many image plugins and CDNs convert automatically.
- Do not lazy-load the main image. Google’s LCP guide says to “never lazy-load your LCP image”. WordPress lazy-loads images by default and tries to skip the first one, but sliders and page builders can defeat this.
- Prioritise the hero image. Add
fetchpriority="high"to the LCP image so the browser downloads it early. Recent WordPress versions add this automatically in many cases; check your page source to confirm. - Replace sliders with a single image. Hero sliders load several large images and scripts for little benefit.
How many plugins is too many?
There is no fixed number. What matters is what each plugin loads on the front end and how much database work it does.
The WordPress handbook says the first and easiest way to improve performance is to “deactivate and delete any unnecessary plugins”. A site with 30 well-written plugins can be faster than one with 10 heavy ones.
How to audit your plugins
- List every plugin and write down why it is there. Delete anything nobody can justify.
- Look for overlap: two SEO plugins, two form plugins, or a page builder plus several add-on packs.
- Use a tool such as Query Monitor on a staging copy to see which plugins add slow database queries or many scripts.
- Check whether a plugin loads its scripts on every page when it is only used on one, such as a contact form. Many can be restricted to the pages that need them.
The same thinking applies to WooCommerce extensions, many of which load scripts on every page. If you sell online, our WooCommerce SEO guide covers how speed fits alongside product and category optimisation.
How do you improve INP on a WordPress site?
Reduce the JavaScript that runs on the main thread, especially from third-party tags, chat widgets and heavy builders. INP fails when the browser is too busy running scripts to respond to a tap or click.
- Audit third-party scripts. Analytics, ad pixels, heatmaps, chat widgets and review badges all add work. Remove tags for tools you no longer use, and load the rest through a single tag manager.
- Delay non-essential JavaScript until the user interacts, using your caching or optimisation plugin. Test carefully: menus, add-to-cart buttons and forms must still work instantly.
- Remove jQuery-dependent add-ons where a lighter alternative exists.
- Simplify heavy pages. Huge DOMs, mega menus and animations slow every interaction.
WordPress 6.8 also added speculative loading to core. The WordPress core team’s 2025 announcement explains that it prefetches a page when a user starts clicking a link, using conservative settings by default, and that the earlier feature plugin ran on over 50,000 sites. It makes moving between pages feel faster without any configuration.
How do you fix CLS (layout shift) in WordPress?
Give every image, video, embed and ad slot fixed dimensions, and stop content being injected above what the visitor is already reading. CLS is usually the easiest of the three metrics to fix.
- Make sure images have
widthandheightattributes. WordPress adds these for images inserted through the editor, but custom theme code and some builders leave them out. - Reserve space for cookie banners, promotional bars and ads with CSS, or show them as overlays rather than pushing content down.
- Host web fonts locally, preload the main font file and use
font-display: swapwith a fallback font of similar size, so text does not jump when the font loads.
Do page builders slow down WordPress?
They can, because builders often load extra CSS, JavaScript and nested markup. A well-configured builder site can still pass Core Web Vitals, but it takes more care than a lightweight block theme.
If you use a builder, turn on its built-in performance options, avoid stacking add-on packs, and keep layouts shallow. For new projects, a lightweight block theme with custom blocks is often the faster option, and our web design team can build one to match your brand without the extra weight.
Should you use a CDN for WordPress?
Yes, if your visitors are spread across regions or your server is far from your audience. A CDN serves images, CSS and JavaScript from locations near the visitor.
The WordPress handbook notes that offloading images, JavaScript, CSS and theme files to a CDN is faster and “takes a great load off your WordPress server”. Some CDNs can also cache full HTML pages at the edge, which reduces TTFB further. This suits a Bangladeshi business selling to the UK, or a UK agency with clients worldwide.
Frequently asked questions
What is a good PageSpeed score for WordPress?
Google’s PageSpeed Insights treats 90 or above as good, 50–89 as needs improvement and below 50 as poor. However, the lab score is a diagnostic tool, not a ranking factor in itself. Passing Core Web Vitals in field data matters more than reaching 100.
How long does it take for Core Web Vitals improvements to show?
Field data in PageSpeed Insights covers the previous 28 days, so changes appear gradually over about four weeks. Search Console’s report can take a similar time to move a URL group from “poor” to “good”. Lab tests show the effect of a change immediately.
Can a caching plugin alone fix Core Web Vitals?
Caching often fixes slow server response and improves LCP, but it rarely fixes everything. Oversized images, heavy third-party scripts and missing image dimensions still need separate work. Treat caching as the first step, not the whole job.
Is WooCommerce slower than a normal WordPress site?
WooCommerce adds dynamic pages such as the cart and checkout that cannot be fully page-cached, so it needs better hosting and object caching. With the right setup, product and category pages can be as fast as any other WordPress page. Plugin choice matters more on stores because many extensions load scripts site-wide.
Should I rebuild my site or optimise the existing one?
Start by optimising the existing site, since hosting, caching, images and plugin clean-up often get a site passing. A rebuild makes sense when the theme or builder is the main bottleneck, or when the site needs a redesign anyway. A speed audit will show which applies to you.
Get help speeding up your WordPress site
If your site still fails Core Web Vitals after the basics, the cause is usually in the theme, a specific plugin or the hosting setup, and it takes hands-on testing to find. Our WordPress team can audit your site, fix the bottlenecks and show you the before-and-after field data. Contact Softwix to book a WordPress speed review.
