A WooCommerce store gets slow in ways an ordinary site does not. Carts, checkout, product pages and a lot of moving data all add weight, and most of it is invisible until a customer is waiting on a spinner with their card in hand. I once took a store from 37 to 92 on Lighthouse, and almost all of it came from the same WooCommerce-specific checklist below.
The general WordPress speed basics apply here too. This piece is about the parts that are specific to a store.
First, test the pages that actually matter
Do not just test the homepage. Run PageSpeed Insights on a product page and, most importantly, the cart and checkout. Checkout is where sales are won or lost, and it is usually the slowest page, because it cannot be cached the way a normal page can.
Why WooCommerce gets slow
- Too many extensions. Every WooCommerce add-on runs its own queries on every page, including the ones that do not need it.
- Cart fragments. WooCommerce loads a live cart script on every page by default, even pages with no cart, which adds a request to each view.
- Heavy product images. A catalog is mostly images, and unoptimised ones are the single biggest weight.
- Dynamic pages that cannot be cached. Cart, checkout and account are personal, so normal page caching skips them, and they fall back on the server and database.
- Database bloat. Expired sessions, old orders and transients pile up and slow every query.
The fixes
Trim the extensions
Audit every active plugin and WooCommerce add-on. Each one is weight on every page. Remove what you do not use, and replace a few that do one small job with a little custom code.
Optimise product images
Serve images as WebP, size them to how they are actually shown, and lazy-load everything below the fold. On an image-heavy catalog this alone can transform the scores.
Cache the right way
Use page caching for the shop and product pages, but exclude cart, checkout and account so customers never see someone else data. Add object caching so the dynamic pages that cannot be page-cached still respond fast.
Tame the cart fragments
Stop WooCommerce from loading its live cart script on pages that do not have a cart. It is a small change that removes a request from most of your pages.
Clean the database
Clear expired sessions and transients, and keep old order data tidy. A lean database makes every WooCommerce query faster, and stores accumulate this clutter quickly.
Get hosting built for a store
WooCommerce needs more than the cheapest shared plan. Proper hosting, plus a CDN for your images, takes real time off every page, especially under traffic.
Checkout is the one that pays for itself
If you fix one thing, make it checkout. A slow checkout is abandoned carts, which is money that got all the way to the finish line and left. Keep it lean: no page builder bloat, no extra scripts, nothing between the customer and the pay button.
When to get help
Plugins and settings take you a long way. But if the slowness is baked into a heavy theme or a page builder on your product templates, stacking more plugins will not fix it, and a developer fixing the root cause will. That is part of my WooCommerce work. If your store feels slow and you are losing checkouts, a short call is enough for me to tell you where the time is going.