Skip to content
codecollab.pl
§ Blog WooCommerce store is slow

Why is my WooCommerce store slow (and how to fix it)

A slow store is not cosmetics - it is money leaking out every single day.

Krystian Kacik 8 min read
Contents

When your WooCommerce store is slow, there is almost never a single cause - it is usually several things stacking on top of each other. In e-commerce every second of delay means fewer carts and a lower search position. The good news: in most cases a slow WooCommerce can be fixed without building the store again.

Below I break down the most common causes I see with clients - from the most obvious to the ones that only show up under the bonnet.

Cheap shared hosting

This is cause number one. WooCommerce is dynamic - every cart, account and checkout page is computed live rather than served from a ready-made file. On shared hosting for a few zloty a month you share the CPU and memory with hundreds of other sites. When your neighbour gets traffic, your store slows down.

What helps: hosting with real SSD/NVMe, PHP 8.1+ and enough memory (a minimum of 256-512 MB per process), ideally dedicated to WordPress/WooCommerce. That is usually the cheapest performance jump per zloty.

Too many plugins (and badly written ones)

It is not about the count itself, but about what the plugins do on every page. One badly written plugin - loading its own CSS and JavaScript across the whole site, querying the database on every visit - can slow a store more than twenty light ones. The classic culprits: heavyweight page builders, sliders, “page speed” plugins that add their own overhead, and marketing plugins loading external scripts.

What helps: auditing plugins by their real impact (the Query Monitor tool shows which plugin eats how much time), deleting the unnecessary ones and swapping heavy ones for lighter equivalents.

No caching - or caching set up wrong

Without a cache, WordPress generates every page from scratch on every visit. Page caching serves ready-made HTML and is often the fastest instant win. The catch is that WooCommerce has pages that must not be cached - cart, checkout, account - and here many configurations either cache nothing or cache too much, and customers end up with somebody else’s cart contents.

What helps: a good cache plugin (one with correct WooCommerce exceptions), object caching (Redis) for database queries, and OPcache on the PHP side.

Heavy, unoptimised images

A store means product photos - and they are usually the heaviest thing on it. A photo uploaded straight from a camera is 4-6 MB, and there are hundreds in the catalogue. The browser has to download all of it.

What helps: compression and a next-generation format (WebP/AVIF), serving images at the size they actually display, and lazy loading anything below the first screen.

A bloated database

Over time a WooCommerce database swells: post revisions nobody deletes, expired transients, plugin logs, abandoned carts, old sessions. Every query against a database like that takes longer.

What helps: cleaning up the database, clearing transients, adding indexes on tables, and with large catalogues moving sessions and carts out of the main tables.

WooCommerce’s own quirks

There are also things specific to WooCommerce that are easy to miss: cart fragments (a script refreshing the cart over AJAX on every page), no disabling of unnecessary scripts on pages with no cart, and themes loading an entire CSS framework for one button.

What helps: disabling cart fragments where they are not needed, loading WooCommerce scripts conditionally, and a theme written for performance rather than for “1,000 features in the demo”. That same mechanism can eat carts at checkout too - I write about that at greater length in the piece on abandoned carts in WooCommerce.

How to find out what specifically is slowing your store

Before you change anything, measure. Otherwise you are shooting blind:

  1. PageSpeed Insights - shows Core Web Vitals (LCP, INP, CLS) and concrete recommendations for your URL, separately for phone and desktop.
  2. Query Monitor (a dev plugin) - shows which database queries and which plugins eat page generation time.
  3. The waterfall in browser dev tools (the Network tab) - you see what loads in what order and what blocks rendering.

Only with those numbers do you know whether the problem is hosting, plugins, images or the database - and what to fix first for the biggest effect at the lowest cost. Step by step, where exactly to click and what to read off the results, I set out in a separate piece on how to test your store speed.

Your WooCommerce store got slow overnight - after an update or a new plugin

I treat a store that has always dragged differently from one where WooCommerce runs slowly only since a few days ago. A sudden slowdown usually has one cause and one date: a plugin or theme update, a new marketing plugin, a cache setting changed by a WordPress update. Instead of shopping for a new host straight away, I go back to that date.

The order that works fastest: I take a copy of the store, work on the copy rather than the live store, and switch off one by one the plugins added or updated in the last few days, measuring page generation time in Query Monitor after every step. If time returns to normal after one of them goes off, you have your culprit and you do not need to move servers at all. If it does not return, I check whether the update disabled the cache and whether the host has switched PHP back to an older version - you can spot the latter by every page responding more slowly at once, including pages where the new plugin does nothing at all.

Only when the store is evenly slow everywhere, with plugins off, does a hosting conversation make sense. Migrating a slow WooCommerce store that one plugin is choking costs several days of work and fixes nothing - that same plugin travels to the new server with everything else.

How long it takes and what it costs: the typical set of fixes - caching, images, database housekeeping, trimming plugins - is hours of work spread over a few days, not weeks. It only takes longer when the theme has to be touched or the store moved to another server. The review that tells you what is choking your particular store I do free of charge - that is how development and optimisation of existing stores works with me: measure first, then a written quote with a scope, and only then the work.

Do I have to rebuild the store from scratch?

Usually not. In most cases a slow WooCommerce is the sum of several of the causes above, not a “bad store”. Sorting out hosting, caching, images and plugins can cut load time several times over - with no loss of products, orders or Google positions. A full rebuild is only worth considering when the theme or foundation is so outdated that patching costs more than a solid redesign - on when a redesign is enough and when you really do need to rebuild from scratch, I write separately in the piece on redesigning a store without rebuilding it. Exactly what it costs to sort out hosting, caching and images depends on what needs touching - I set that out in the piece on what speeding up a store costs.

Frequently asked questions

How fast should a WooCommerce store load? The reference point is Google’s threshold for mobile: the main content of the first screen should appear within 2.5 seconds. Above 4 seconds you are in the zone where customers start leaving before they see anything. Always measure on a phone over mobile data, because a test on office Wi-Fi almost always flatters you.

Will changing hosting alone speed up the store? It often helps more than any other single change, but it is rarely enough. A better server shortens the first response time, while heavy images, missing caching and plugins loading their own code on every page will travel to the new host unchanged. The order that works: measure first, then hosting and caching, then images and plugins.

Will an optimisation plugin sort it out? Partly. A good cache plugin can deliver a big instant jump, but in WooCommerce it has to have correct exceptions for cart, checkout and account - otherwise customers get each other’s cart contents. Plugins promising “one-click speed” can add their own overhead too, so after installing I always measure before and after.

Does speeding up a store risk losing orders or changing the design? No, if it is done in sequence and with a backup before every bigger change. Optimisation touches server settings, caching, images and scripts - not content, products or the order database. The look stays the same; only how fast it appears changes.


Sitting on this yourself and unsure where to start? I speed up and repair existing sites and stores - Core Web Vitals, outages, the features that are missing. Tell me what is happening and you will get a concrete quote with a date.

§ Quote in 24h

Facing a similar problem and not sure where to start?

Describe the scope in two sentences or send a link. I tell you what to fix first, and you get a fixed bid in writing within 24 hours - no "from X" pricing.

Send your scope - quote in 24h