The short answer: most slow WooCommerce stores have weak hosting, caching that's missing or misconfigured, oversized images, too many plugins and third-party scripts, or a bloated database. Measure first, then fix in that order. Big wins usually come from the first three.
1. Measure the right pages first
Don't just test the homepage. Test a product page, a category page, the cart and checkout separately, because they're slow for different reasons.
- PageSpeed Insights on mobile, for each page type.
- Core Web Vitals in Google Search Console, which shows real visitors' experience.
- The free Query Monitor plugin, which shows slow database queries and which plugin causes them.
Write down the numbers before you change anything, so you know what helped.
2. Fix hosting and PHP
WooCommerce does far more work per page than a brochure site. Cheap shared hosting is the single most common cause of a slow store. Check that:
- You're on a supported, current PHP version (8.2 or newer). Your host's control panel usually lets you switch.
- Your plan has enough memory and isn't throttled at busy times.
- Your host offers server-level caching or LiteSpeed, and object caching (see fix 4).
If your server takes more than about a second to respond before anything loads (time to first byte), no plugin will fully fix it. Moving host may be the best investment you make.
3. Turn on page caching, with the right exclusions
Page caching serves a ready-made copy of a page instead of building it each time. Use your host's cache or a caching plugin such as WP Rocket or LiteSpeed Cache. The important part for a store: cart, checkout and my-account pages must never be cached, or customers see other people's baskets. Good caching plugins exclude them automatically, but check.
4. Add object caching
Page caching doesn't help logged-in customers, carts or admin. An object cache (Redis or Memcached) stores database results in memory and speeds these up a lot. Many managed WordPress hosts include Redis. You enable it with a plugin such as Redis Object Cache.
5. Fix product images
- Upload images at the size they're shown, not straight from the camera.
- Serve modern formats (WebP or AVIF). Most image plugins and CDNs can convert automatically.
- Lazy-load images below the fold, but not the main product image at the top.
- Regenerate thumbnails after changing themes so WooCommerce isn't scaling huge files in the browser.
6. Audit your plugins and theme
Every plugin can add scripts, styles and database queries to every page. Use Query Monitor to see which plugins are slowest, then:
- Delete plugins you no longer use.
- Replace several single-feature plugins with one that does the job.
- Be wary of heavy multipurpose themes and page builders on product and category pages.
7. Tame third-party scripts
Chat widgets, review widgets, social feeds, tracking pixels and pop-ups often slow a store more than WooCommerce itself. Remove what you don't use. Delay the rest until the visitor interacts with the page; many caching plugins have a "delay JavaScript" option. Keep Google Tag Manager tidy and remove old tags.
8. Clean up the database
Stores build up clutter over time: expired transients, old post revisions, thousands of completed or failed scheduled actions, and large "autoloaded" settings left behind by deleted plugins. Back up first, then:
- Clear expired transients and old revisions with a cleanup plugin such as WP-Optimize.
- Clear old completed and failed actions in WooCommerce → Status → Scheduled Actions.
- Check the size of autoloaded options and remove leftovers from deleted plugins.
- Enable High-Performance Order Storage (HPOS) in WooCommerce settings if your store still uses the old order storage. It's the default for new stores and speeds up order queries.
9. Check cart fragments
WooCommerce used to run a background "cart fragments" request on every page to refresh the mini cart, which slowed uncached pages. Since WooCommerce 7.8, it only loads when the cart widget is shown, but some themes and plugins still load it everywhere. In your browser's developer tools, look for a request to wc-ajax=get_refreshed_fragments on pages that don't need it.
Add a CDN
A CDN such as Cloudflare serves images, scripts and styles from servers near your visitors. It's especially useful if you sell across the UK, Europe and the US. Make sure it bypasses cache for cart, checkout and logged-in users.
When to rebuild instead
If the store is on very old code, a heavy theme you can't change, and dozens of overlapping plugins, a clean rebuild on a lightweight theme can be cheaper than patching. It's usually the last resort, after hosting, caching and images.
I did this kind of work for Sportsgalleries.com, a large WooCommerce store, covering speed, SEO and security together.
Questions people ask
Why is my WooCommerce checkout slow?
Checkout can't be page-cached, so it depends on hosting, object caching, payment and shipping plugins, and third-party scripts. Check it with Query Monitor and remove scripts that don't need to run there.
How many plugins is too many for WooCommerce?
There's no fixed number. One badly built plugin can do more damage than twenty light ones. Measure with Query Monitor and remove what's slow or unused.
Will a caching plugin fix my slow store?
It helps a lot for visitors browsing products, but it can't fix slow hosting, a slow checkout or a bloated database. It's one fix of several.
Does site speed affect Google rankings?
Yes. Page experience, including Core Web Vitals, is part of how Google ranks pages. Speed also affects conversions: slow stores lose customers before the page loads.
