Loadzen

← All articles

WooCommerce8 min readReece Crowther

How to Speed Up a WooCommerce Store (Complete 2026 Guide)

WooCommerce stores are notorious for slow load times. This guide covers the specific causes and the most effective fixes, from caching to image optimisation.

Why WooCommerce is slow by default

WooCommerce adds significant complexity on top of WordPress. Product pages, cart sessions, dynamic pricing, and checkout flows all require PHP and database work on every request. Caching — which makes WordPress fast — is harder to apply to WooCommerce because so much content is user-specific.

Understanding this is the key to fixing it. WooCommerce performance is not about one big win — it is about eliminating dozens of small inefficiencies.


Step 1: Get the right hosting

This is the most important lever. Shared hosting with WooCommerce is a recipe for poor performance. You need:

  • PHP 8.2 or above — Each major PHP version is significantly faster than the last.
  • A server with object caching support — Redis or Memcached.
  • At least 2GB RAM — WooCommerce under load needs it.
  • Recommended hosting options: Kinsta, WP Engine, Cloudways, or a well-configured VPS. Avoid shared hosting for any store doing meaningful traffic.


    Step 2: Install a caching plugin

    WooCommerce requires special caching configuration because cart and checkout pages must not be cached.

  • WP Rocket (paid) — the easiest option. Has WooCommerce-specific settings to exclude cart, checkout, and account pages automatically.
  • LiteSpeed Cache (free with LiteSpeed server) — excellent if your host uses LiteSpeed.
  • W3 Total Cache (free) — works well but requires more configuration.
  • Key settings to configure:

  • Enable full-page caching for non-logged-in users.
  • Exclude /cart, /checkout, /my-account and any page using the [woocommerce_cart] shortcode.
  • Enable browser caching with long cache lifetimes for static assets.

  • Step 3: Add a CDN

    A CDN serves static assets (images, CSS, JS) from servers geographically close to your visitors. This reduces latency for everyone outside your server's location.

  • Cloudflare (free tier available) — proxies all traffic and caches static assets globally. Enable "Auto Minify" and "Polish" (WebP conversion) in the Speed settings.
  • BunnyCDN — affordable and fast. Integrates with most caching plugins via pull zone.

  • Step 4: Optimise your database

    WooCommerce creates a large amount of database overhead over time: order data, product meta, transient data, and revision history.

  • Install WP-Optimize and run a database optimisation. Remove post revisions, spam comments, and expired transients.
  • Add an index on the wp_postmeta table if you have a large product catalogue. The free plugin Index WP MySQL For Speed does this automatically.
  • Schedule weekly database cleanups via WP-Optimize's automated schedule.

  • Step 5: Reduce plugin count

    Every active plugin adds PHP execution time to every request. Audit your plugins:

  • Go to WP Admin → Plugins → Installed Plugins.
  • Deactivate anything you are not actively using.
  • Look for functionality overlap — if your theme has a slider, you do not need a slider plugin too.
  • Replace multiple single-feature plugins with one multi-feature alternative where possible.

  • Step 6: Optimise product images

    Product images are the largest assets on most WooCommerce stores.

  • Compress all images with ShortPixel or Imagify before or after upload. Both offer bulk processing.
  • Enable WebP conversion — most optimisation plugins do this automatically.
  • Use WooCommerce's built-in image sizes. Do not serve 2000px images for 300px thumbnails.
  • Enable lazy loading on product grid images.

  • Step 7: Address WooCommerce-specific bottlenecks

  • Cart fragments — WooCommerce makes an AJAX request on every page load to check the cart state. This blocks the page from appearing fully cached. Disable it if you show cart counts only on the cart/checkout pages: add remove_action('wp_footer', 'woocommerce_cart_fragments_params'); to your theme's functions.php or use a plugin like Disable Cart Fragments.
  • Product variations — Stores with many variations (colour × size × material) generate large JavaScript payloads per product page. Reduce the number of variations or use the WooCommerce Product Variations Swatches plugin to lazy-load variation data.

  • How to measure your improvements

    Run a speed check with Loadzen before and after making changes. Track your PageSpeed score, LCP, and TTFB on your homepage, a category page, and a product page — all three are important for SEO and conversion.

    Related guide

    WooCommerce Speed Optimisation Guide

    Keep reading

    Check your own site

    Run a free speed check with Loadzen and get a prioritized fix plan for your specific platform.

    Run free speed check