WordPress
WooCommerce Performance: The Bottlenecks and How to Fix Them
Where WooCommerce slows down and what to do: cart, checkout, scripts, and database so the store stays fast.
WooCommerce adds a lot of logic and assets. The main bottlenecks are usually cart/checkout scripts, product queries, and object cache. Fix those and the store stays usable.
Cart and checkout: scripts and fragments
Cart and checkout rely on JS and sometimes AJAX fragment requests. WooCommerce loads its scripts on many pages by default. Restrict WooCommerce script loading to shop, cart, and checkout (and product pages if you need add-to-cart). Use a snippet or a small plugin to dequeue scripts where they’re not needed. Fragment caching (cart widget in the header) can cause extra requests; use object cache so fragment lookups are fast, or accept a short TTL for the cart fragment so it updates without too many requests.
Product queries and object cache
Product listing and filtering run complex queries. Without object cache (Redis/Memcached), every request hits the database. Enable object cache and ensure WooCommerce and your theme use it; that alone often fixes slow category and shop pages. Limit the number of products per page if the query is heavy; use good indexes (WooCommerce and MySQL do some of this). Avoid loading full product objects when you only need title and permalink for a list—custom queries or a lightweight query layer can help.
Images and assets
Product images are often large and numerous. Use an image optimization plugin or CDN that resizes and serves WebP/AVIF. Lazy-load below-the-fold images. Use WooCommerce’s built-in image sizes or define your own so you’re not loading full-size images in grids. That improves LCP and reduces bandwidth.
Hosting and caching
WooCommerce has dynamic content (cart, account, checkout), so full-page cache only applies to non-logged-in, non-cart pages. Cache product and category pages for guests; use object cache for everything else. Choose a host that knows WooCommerce (PHP version, MySQL, object cache). With script control, object cache, image optimization, and sensible caching, WooCommerce performance stays in a good place.
Summary
Limit WooCommerce scripts to shop/cart/checkout; use object cache for queries and fragments. Optimize product images and lazy-load. Cache what you can (product/category for guests) and rely on object cache for the rest. That addresses the main WooCommerce bottlenecks.