Why Is My WooCommerce Store So Slow? 9 Fixes That Actually Work
Slow WooCommerce store losing sales? Here are 9 fixes I use on client stores, covering hosting, plugins, images, caching and database cleanup.
Murad Raza
Freelance Full-Stack Developer

A slow WooCommerce store costs you sales every single day. Customers don't wait around. They tap a product, stare at a blank screen for four seconds, and go back to Google to find someone else.
I've fixed a lot of slow WooCommerce stores over the years, and the good news is the cause is almost never a mystery. It's usually the same handful of problems, stacked on top of each other. Fix two or three of them and the store feels like a different site.
The short answer: most WooCommerce stores are slow because of cheap shared hosting, too many heavy plugins, oversized product images, missing or broken caching, and a cluttered database. Fix those five and you've solved most speed problems.
Here's what I check, roughly in the order I check it.
How to find out what's slowing down your WooCommerce store
Don't start deleting plugins on a hunch. Get a baseline so you know whether your changes are helping.
I use three tools:
- PageSpeed Insights for Core Web Vitals. Test your homepage, a product page and the cart, not just the homepage. The homepage is often the fastest page on the whole site.
- Query Monitor (a free plugin) to see slow database queries and which plugin is causing them.
- GTmetrix or WebPageTest for a waterfall view, so you can see exactly what loads and in what order.
Write the numbers down. Then work through the list below.
1. Your hosting is too cheap for a store
This is the big one, and nobody wants to hear it.
A brochure site can survive on a $3 a month shared plan. A WooCommerce store can't. Every cart update, every checkout and every logged-in customer skips the page cache and hits PHP and the database directly. On crowded shared hosting, that's where things fall apart.
What to look for in a host:
- PHP 8.2 or newer (older versions are noticeably slower)
- Server-level caching like LiteSpeed or Nginx FastCGI cache
- Object caching with Redis
- Servers close to your customers
If your Time to First Byte is over 800ms even on a simple page, hosting is very likely your bottleneck. No plugin will fix that.
2. You have too many plugins (or a few bad ones)
The plugin count matters less than people think. I've seen stores with 40 plugins that load fast and stores with 12 that crawl. What matters is what each one does.
Open Query Monitor, load a product page, and look at "Queries by Component". You'll usually find one or two plugins doing far more work than they should. Common offenders are:
- Related products and "frequently bought together" plugins that run heavy queries on every page
- Live chat and popup tools loading scripts site-wide
- Old plugins you installed once for a sale and forgot about
Deactivate, retest, and only keep what earns its place.
3. Your WooCommerce product images are too big
Store owners upload photos straight from the camera or from a supplier. I regularly find 3MB images being squeezed into a 400px wide thumbnail.
Fix it like this:
- Resize images before upload, around 1200 to 1600px wide for main product shots is plenty
- Serve WebP or AVIF instead of JPEG and PNG
- Lazy load images below the fold, but not the main product image, because that hurts your Largest Contentful Paint
- Regenerate thumbnails after changing image sizes in your theme
An image optimization plugin like ShortPixel or Imagify handles most of this automatically for your existing library.
4. Caching isn't set up properly for WooCommerce
Page caching is the fastest win on most WordPress sites. With WooCommerce you have to be careful, because caching the cart or checkout page means customers see someone else's cart.
A good caching setup:
- Caches product, category and content pages
- Excludes cart, checkout and my account pages
- Doesn't cache for logged-in users who have items in their cart
- Uses object caching (Redis) for the database side
WP Rocket and LiteSpeed Cache both handle the WooCommerce exclusions out of the box. If you're using something else, double check those exclusions yourself.
5. Your WooCommerce database is full of junk
WooCommerce stores collect clutter over time. Expired transients, old sessions, post revisions, logs from plugins you deleted years ago. The wp_options table is usually the worst, because a lot of that data is set to "autoload" and gets pulled into memory on every single page load.
Worth checking:
- Autoloaded data size in
wp_options. Over 1MB is a warning sign - Expired transients and old
wc_sessions - Leftover tables from uninstalled plugins
WP-Optimize can clear most of it. Take a full backup first. I mean it.
If your store has been running for years with thousands of orders, also make sure High-Performance Order Storage (HPOS) is turned on in WooCommerce settings. It moves orders into their own tables and makes the admin a lot snappier.
6. Cart fragments are slowing every page
WooCommerce runs a background AJAX request called wc-ajax=get_refreshed_fragments to keep the mini cart count up to date. On some setups, it fires on every page for every visitor and can't be cached.
Look for it in your waterfall. If it's taking a second or more, you can disable it on pages that don't need it, or use a plugin that loads it only after someone adds something to the cart. Newer versions of WooCommerce have improved this, but plenty of themes still trigger it.
7. Your theme or page builder is too heavy
Multipurpose themes that promise to do everything also load everything. Sliders, animation libraries, icon packs, five font weights. You pay for all of it on every page, even if you use none of it.
Page builders add their own weight on top. (More on that in Is Elementor 4 faster?) That doesn't mean you have to rebuild the store. Often the fix is:
- Turning off unused theme modules and widgets
- Limiting fonts to two families and a couple of weights
- Removing sliders from the homepage (they rarely convert anyway)
- Unloading scripts on pages where they aren't needed with a plugin like Perfmatters or Asset CleanUp
If the theme is really the problem, a lightweight base like Kadence, Blocksy or GeneratePress makes a huge difference.
8. You're not using a CDN
If your server is in the US and half your customers are in the UK or the Gulf, every image and file has to travel the long way.
A CDN like Cloudflare stores copies of your static files on servers around the world. The free plan is fine for most stores. Just make sure your cart and checkout rules don't get cached at the CDN level either.
9. Nobody is maintaining it
This is the quiet one. A store gets built, launched and then left alone. Plugins pile up, updates get skipped, the database grows, and a year later everyone wonders why it's slow.
Speed isn't a one-time job. A short monthly routine keeps it in check:
- Update WordPress, WooCommerce, the theme and plugins (on a staging site first)
- Run a PageSpeed test on your key pages and compare against last month
- Clean the database
- Remove anything you no longer use
If you'd rather not deal with it yourself, that's exactly what my website maintenance plans cover.
How to speed up a slow WooCommerce store in one hour
If you can only do a few things today, do these:
- Test your product page in PageSpeed Insights and note the score
- Compress and convert your biggest product images
- Install a proper caching plugin with WooCommerce exclusions
- Deactivate any plugin you can't explain the purpose of
Then retest. You'll usually see a real jump just from that. Speed is only one part of ranking well, so it's also worth checking you're not making any of these 7 WordPress SEO mistakes. If the numbers barely move, the problem is probably your hosting or theme, and that's a bigger job. That's where my performance optimization service comes in, or a proper rebuild through WooCommerce development if the store has outgrown its setup.
Frequently asked questions
Need this fixed on your site?
I Build Websites That Work as Hard as You Do


