Speed

Why Is WooCommerce So Slow? 10 Causes and How to Fix Them

WooCommerce too slow? The 10 most common causes – hosting, theme, plugins, images, database – plus why checkout gets slow and how to fix each one step by step.

Jordan Andreev 11 min read

Every extra second of load time costs sales. Shoppers won't wait – they'll go back to Google and buy from a competitor. On top of that, Google uses speed as a ranking factor, so a slow store loses twice: visitors and rankings.

In short: The usual suspects are cheap hosting, a heavy theme, too many plugins, unoptimised images and a bloated database. Start by measuring – don't guess.

Why is WooCommerce so slow in the first place?

WooCommerce itself isn't slow – but it's easy to make it slow. It runs on WordPress, where every page is built by PHP and the database on each request, and every plugin can hook into that process. A store adds a lot on top of a regular website:

  • Dynamic pages – cart, checkout and My Account are personal to each customer and can't be served from page cache.
  • Heavy database queries – products, variations, attributes and orders live in large tables; filters and search multiply the queries.
  • Plugins on every request – shipping, payment, invoicing, marketing and SEO plugins all run, even on pages that don't need them.
  • Autoloaded data – plugins store settings in wp_options that load on every page; on older stores this can grow to several megabytes.

The good news: almost all of this can be fixed without rebuilding the store. Here's how to find what's slowing yours down.

First: measure speed properly

Before changing anything, measure. Open PageSpeed Insights (pagespeed.web.dev) and test three pages: the home page, a category and a product. Look at Google's three Core Web Vitals:

Target values (Core Web Vitals)

LCP – main content loadunder 2.5 s
INP – click responsivenessunder 200 ms
CLS – layout shiftunder 0.1

Test the mobile version too – it matters more. Google indexes sites primarily through their mobile version, and most online shoppers buy on their phones.

The 10 most common causes of a slow WooCommerce store

1. Cheap shared hosting

WooCommerce is not a simple blog. The cart, checkout and filters make many database queries. On an overcrowded shared server, it simply can't keep up. Fix: hosting with PHP 8.2+, enough RAM, server-side caching (LiteSpeed, Redis or Memcached) and a server close to your customers.

2. A heavy all-in-one theme

Multipurpose themes load sliders, animations and dozens of modules on every page – even when you don't use them. Fix: a lightweight or custom theme that only loads what each page actually needs.

3. Too many plugins

It's about quality, not quantity. One badly written plugin can add a second to every page. Fix: remove unused plugins, replace heavy ones and check which plugins load scripts everywhere instead of only where needed.

4. Unoptimised images

A 4 MB product photo displayed as a 300-pixel thumbnail is a classic. Fix: WebP or AVIF, correct sizes (srcset) and lazy loading for images below the fold. This alone often cuts 70–80% of page weight.

5. No caching

Without caching, the server rebuilds every page on every visit. Fix: page caching (excluding cart, checkout and account) plus object caching (Redis) for the database.

6. A bloated database

Over time the database fills up with expired transients, old revisions, sessions and plugin logs. Fix: regular cleanup, table optimisation and enabling HPOS (High-Performance Order Storage) – WooCommerce's newer order storage.

7. Render-blocking JavaScript and CSS

If the browser has to download 15 files before showing anything, the page feels frozen. Fix: defer scripts, inline critical CSS and remove unused code.

8. Third-party scripts

Chat widgets, pixels, tracking codes, embedded videos and maps all pull code from other servers. Fix: keep only what you need and load it after interaction or once the page is ready.

9. Externally hosted fonts

Google Fonts and similar services add requests and often cause text to jump. Fix: self-host fonts as WOFF2, load only the weights and character sets you need and use font-display: swap.

10. Heavy AJAX requests

Mini-cart updates (cart fragments) and live filters can load the server on every page. Fix: limit cart fragments to pages that need them and use optimised filters with indexed data.

Why WooCommerce checkout is slow

Checkout is where speed costs the most – the customer has already decided to buy. It's also a page that can't be cached, so problems show up here first. The usual causes:

  • Live shipping calculations – courier plugins (e.g. Econt or Speedy) that call an external API on every address change. Fix: cache office lists and rates, and only recalculate when something relevant changes.
  • Constant order-review refreshes – every field change triggers an AJAX request (update_order_review) that recalculates totals. The more plugins hook into it, the slower each refresh gets.
  • Payment gateway scripts – several gateways loading their scripts at once, plus fraud-check and tracking scripts.
  • Checkout field and upsell plugins – each one adds queries and scripts to the heaviest page in the store.
  • Slow hosting, no object cache – without page cache, server response time (TTFB) is everything here. Redis object caching helps a lot.

How to find the culprit: temporarily install the free Query Monitor plugin, open checkout and look at slow queries, external HTTP calls and which plugin they come from. A slow checkout directly drives abandoned carts.

Where to start

If you can only do three things, start with these – they give the biggest impact for the least time:

  • Images – WebP + correct sizes.
  • Caching – page and object cache.
  • Plugin audit – remove everything that doesn't make you money.

💡 From practice: The Wood Wonders Workshop store loads in 0.8 seconds not because of a magic plugin, but because it was built lightweight from day one – no heavy theme, no unnecessary extensions. Speed is designed in, not bolted on at the end.

Frequently asked questions

How fast should an online store be?
Aim for the main content to load in under 2.5 seconds (LCP), the page to respond to a click in under 200 ms (INP) and no layout shifts (CLS under 0.1). These are Google's thresholds for a good user experience.
Will a caching plugin fix my slow site?
It often helps, but rarely solves everything. Caching doesn't help on the cart, checkout and customer account pages, where WooCommerce runs uncached. There, speed depends on hosting, the database and your plugins.
Do I need to change my theme to speed up my store?
Not always. Measure first and find what actually slows the site down. If the theme loads hundreds of kilobytes of CSS and JavaScript on every page, replacing or slimming it usually has the biggest impact.
How much does speed optimisation cost?
It depends on the state of the site. Basic optimisation (caching, images, plugin cleanup) takes days, while a heavy theme or an old database may need more serious work. The most accurate answer comes after a free audit.
Why is WooCommerce slower than Shopify?
Shopify is hosted software – the platform handles servers and caching for you. WooCommerce runs on your own hosting, so speed depends on the server, theme and plugins you choose. A well-built WooCommerce store on good hosting can be just as fast.
Why is my WooCommerce admin so slow?
Usually the same causes – weak hosting, heavy plugins and a large database – plus admin-only extras like dashboards, analytics widgets and plugin notices. Enabling HPOS, cleaning autoloaded options and adding object caching usually help the most.

Want to know exactly what's slowing your store down? Get in touch – I'll audit it and tell you which changes will make the biggest difference. More about the service: SEO & Core Web Vitals.

Need an online store?

Describe your project and get a detailed quote within 24 hours.

Request a quote
Jordan Andreev

Author:

Web developer specialising in WordPress and WooCommerce. I build fast, secure and SEO-optimised online stores.

Esc
↑↓↵EscJ.Andreev