WooCommerce Speed Optimization: 12 Fixes That Work

Most slow WooCommerce stores have one of three problems: the server builds pages too slowly, the pages are too heavy, or pages that could be cached are not. Measure first, then fix hosting, caching, images, plugins and the database in that order.
To speed up WooCommerce, measure Core Web Vitals in PageSpeed Insights, then run PHP 8.3 or newer, turn on HPOS, use page caching that skips
cart, checkout and My Account, add a persistent object cache, compress images to WebP or AVIF, remove heavy plugins, clean the database, and serve static files from a CDN.
This guide is for US store owners, including B2B and industrial sellers, whose WooCommerce store feels slow. Every fix below is based on WooCommerce or Google documentation, and each one is something you or your developer can check this week.
First, measure: what “fast” means in 2026
Before you change anything, get a baseline. Run your home page, a product page, a category page and your checkout through PageSpeed Insights. Look at the “real users” section first, because that is field data from actual visitors.
Google’s Core Web Vitals give you three targets, measured at the 75th percentile of page loads:
| Metric | What it measures | Good score |
|---|---|---|
| LCP (Largest Contentful Paint) | How fast the main content appears | 2.5 seconds or less |
| INP (Interaction to Next Paint) | How fast the page responds to a tap or click | 200 ms or less |
| CLS (Cumulative Layout Shift) | How much the layout jumps | 0.1 or less |
WooCommerce’s own speed guide says a slow store usually comes down to three things: the server takes too long to build the page, the page is too heavy, or the page can’t be served from cache. Keep those three in mind as you work through the list.
The 12 fixes
1. Run a current PHP version
PHP is the language WordPress and WooCommerce run on. WooCommerce recommends PHP 8.3 or newer, and notes that each major PHP release has been faster than the last. Check your version under Tools > Site Health > Info > Server. Always back up and test on staging before you switch.
2. Make sure your hosting has enough room
If the admin area is slow even with plugins disabled, or speed swings by time of day, the server may be the limit. WooCommerce lists a PHP memory limit below 256 MB in Site Health as one warning sign. Cheap shared hosting often can’t keep up with a busy store’s uncached pages.
3. Turn on High-Performance Order Storage (HPOS)
HPOS moves orders out of WordPress’s general posts table into tables built for orders. That speeds up order management and helps the store scale as orders grow. New stores have it on by default. Older stores may still use legacy storage, so check WooCommerce > Settings > Advanced > Features. Confirm your extensions are compatible before switching, and test on staging.
4. Use page caching, but never cache cart, checkout or My Account
Page caching saves a finished copy of a page so the server doesn’t rebuild it for every visitor. It is the biggest single win for product and category pages.
But WooCommerce’s caching docs say the Cart, Checkout and My Account pages must stay dynamic, because they show each shopper’s own data. They also list WooCommerce cookies, such as woocommerce_cart_hash, woocommerce_items_in_cart and wp_woocommerce_session_, that caching systems should respect. Many caching plugins and managed hosts set these exclusions for you. After you turn caching on, test add to cart, quantity changes and checkout in a private window. If the cart shows the wrong count, something is cached that shouldn’t be.
5. Add a persistent object cache (Redis or Memcached)
Cart, checkout, logged-in B2B buyers and wholesale accounts often skip the page cache. That is where an object cache helps. A persistent object cache keeps the results of common database queries in memory, so database queries across the entire store need fewer trips to the database. This helps most for logged-in users and wholesale buyers who don’t use page caching. Ask your host whether Redis or Memcached is available. WooCommerce 10.7 also reported fewer SQL queries on product pages and product lists.
6. Check cart fragments and your mini cart
Older stores often loaded the “cart fragments” script on every page. It sends an extra request to the server to refresh the cart widget. Since WooCommerce 7.8, the script only loads when the classic Mini Cart widget is used, a theme or plugin needs it, or it is added in code (WooCommerce developer blog). Some themes still hard-code the widget. If yours does, WooCommerce suggests the Mini-Cart block, which does not use the cart fragments API.
7. Optimize product images (WebP or AVIF)
Product photos are often the heaviest part of a page. Resize images to the size your theme really displays, compress them, and use modern formats. WebP and AVIF files are usually much smaller than JPEGs at similar quality, and current WordPress versions can handle both. Lazy-load images below the fold, but not your main product image, since that is often the LCP element.
8. Audit your plugins
Every active plugin adds work to page loads. WooCommerce recommends the free Query Monitor plugin: load a product page, then check “Queries by Component” and the Scripts and Styles panels. A contact form loading its script on every product page is a common culprit. The Health Check & Troubleshooting plugin lets you disable plugins for your own session only, so shoppers aren’t affected while you test. Remove what you don’t use, and replace heavy plugins where you can.
9. Clean your database and background jobs
Over time, stores pile up post revisions, spam comments and expired transients (temporary saved data). WooCommerce’s performance guide recommends removing this kind of clutter and optimizing database tables. Also open WooCommerce > Status > Scheduled Actions. A large backlog of past-due or failed actions can point to a broken plugin or integration. Back up the database before any cleanup.
10. Use a CDN for static files
A content delivery network serves images, CSS and JavaScript from servers close to the shopper. WooCommerce’s performance guide lists Cloudflare, Fastly and Amazon CloudFront as examples. This matters if you sell across the US or abroad and your server sits in one region.
11. Defer non-critical JavaScript and fix INP
Too much JavaScript makes taps feel laggy and hurts INP. WooCommerce recommends deferring non-critical JavaScript, and Google’s INP guide suggests breaking up long tasks. Start by removing chat widgets, sliders and tracking scripts you don’t need. Be careful with aggressive settings in plugins like WP Rocket, such as delaying or combining scripts, because they can break your checkout buttons. Test checkout after every change.
12. Speed up product search and filters
Large catalogs with many attributes can make category filters slow. WooCommerce has a product attributes lookup table built to speed up catalog filtering. Check that “Use the product attributes lookup table for catalog filtering” is enabled under WooCommerce > Settings > Products > Advanced (WooCommerce developer blog). Keep filter widgets to the ones shoppers really use. For very large B2B catalogs, a dedicated search service may be worth testing.
Not sure which of these 12 is slowing your store?
Get a Free Site Health Check + 1 Bug Fix from Seerox. We review your site’s security, performance, updates and risks, and fix one issue for free
Which fixes should you do first?
| Situation | Start with |
|---|---|
| Slow on every page, even the admin | Fixes 1, 2, 8 |
| Product and category pages slow | Fixes 4, 7, 10 |
| Cart and checkout slow | Fixes 3, 5, 6, 9 |
| Good load time, but taps feel laggy | Fix 11 |
| Big catalog, slow filters | Fix 12 |
Common mistakes to avoid
- Chasing a perfect lab score. Field data from real shoppers matters more than one Lighthouse run.
- Caching the cart or checkout. Shoppers can see wrong totals or stale cart data.
- Stacking two caching plugins. Use your host’s cache or one plugin, not both.
- Changing things on the live store first. Test on staging, with payments in test mode.
- Lazy-loading the main product image. It can make LCP worse.
When to bring in help
Some speed problems need a developer: an old custom plugin, a heavy theme, slow ERP or inventory sync, or a server that needs moving. Seerox’s WordPress maintenance service covers updates, security monitoring, backups and performance work. If a custom plugin is the cause, our plugin development and customization team can fix or rebuild it. For large B2B catalogs, see our industrial ecommerce development work.
Start with a free check
Our Free Site Health Check + 1 Bug Fix reviews your store’s performance, security, updates and risks, so you know which fixes matter most.
FAQ
Why is my WooCommerce store so slow?
Should I cache the WooCommerce cart and checkout pages?
No. WooCommerce says Cart, Checkout and My Account must stay dynamic because they show each shopper’s own data. Cache product, category and content pages instead.
What is a good Core Web Vitals score for a WooCommerce store?
Google’s targets are LCP of 2.5 seconds or less, INP of 200 ms or less, and CLS of 0.1 or less, for at least 75% of page loads.
Does HPOS make WooCommerce faster?
WooCommerce says HPOS speeds up order management and helps the store scale as order volume grows, by storing orders in tables built for them. Test extension compatibility before you switch an older store.
Which PHP version is fastest for WooCommerce?
WooCommerce says HPOS speeds up order management and helps the store scale as order volume grows, by storing orders in tables built for them. Test extension compatibility before you switch an older store.








