As Featured In Fatstacks

7 Ways to Speed Up a Large WooCommerce Store Before You Consider Switching

Published Categorised as Ecommerce Stores

A slow WooCommerce store costs sales, plain and simple. As your catalog and traffic grow, so does the bloat behind the scenes: extra plugins, a heavier database, unoptimized images — all quietly stacking up and slowing things down. Migrating to a new platform seems like the fix, but it’s expensive and often unnecessary.

Learning how to speed up a WooCommerce store starts with 7 practical, technical steps that tackle the real bottlenecks first. Most large stores can get their speed back without ever switching platforms.

Step 1: Identify What’s Actually Slow

Run a Proper Speed Test First

Before changing any settings, test your site with GTmetrix and Google PageSpeed Insights. Both tools break your load time into specific metrics: server response time, render-blocking resources, total page weight, and Core Web Vitals scores (LCP, CLS, INP). Run the test from a location close to your actual customer base, and test both a product page and the cart/checkout flow separately — they often have very different bottlenecks.

Separate Backend Problems from Frontend Problems

Install Query Monitor on a staging copy of your site. It shows you the exact number of database queries per page load, which plugin or theme triggered each one, and how long each query took. As a benchmark, a well-optimized WooCommerce product page should run well under 100 queries; anything in the several hundreds signals a real problem. Check your Time to First Byte (TTFB) specifically — under 200ms is good, anything over 600ms points to a server-side or database issue rather than a frontend one.

Watch for Server Bottlenecks

If your site scores well on a cold, cached test but slows down significantly during real traffic (flash sales, ad campaigns, peak hours), that’s a server resource issue — CPU, RAM, or database connection limits being maxed out. Check your hosting dashboard or ask your host for CPU and memory usage graphs during your highest-traffic periods. This tells you whether you need more caching or genuinely more server capacity.

Step 2: Upgrade Your Hosting

Why Shared Hosting Becomes a Liability

On shared hosting, your store’s CPU, RAM, and database connections are split with other unrelated sites on the same server. Once your catalog grows past a few hundred products or your traffic increases, resource contention becomes a measurable drag on load times, especially during another tenant’s traffic spike.

VPS and Cloud Hosting as the Next Step

Move to a VPS, cloud hosting, or a managed WooCommerce host once your product count moves into the thousands or your monthly traffic regularly spikes. Look specifically for hosts running NGINX or LiteSpeed instead of standard Apache — both handle concurrent connections more efficiently, which matters at checkout when multiple customers are hitting your server simultaneously. Also confirm the host supports PHP 8.1 or higher and offers at least 256MB of PHP memory limit for WooCommerce.

Add an Object Cache and a CDN

Set up Redis as an object cache. It stores the results of repeated database queries in memory instead of hitting MySQL every time, which noticeably reduces load on category and product pages. Pair this with a CDN like Cloudflare to serve images, CSS, and JavaScript from servers geographically closer to your customers. Between the two, you’re addressing both server-side query load and network delivery time.

Step 3: Optimize Your Database

Clean Out What You Don’t Need

Order revisions, expired transients, and abandoned session data accumulate in your database over time and get scanned during routine queries even though they serve no purpose. On stores running for several years, it’s common to find the wp_options or wp_postmeta tables holding hundreds of thousands of unnecessary rows.

Use the Right Tools for Cleanup

Use WP-Optimize to schedule automatic cleanup of post revisions, expired transients, and spam comments. For manual work, phpMyAdmin lets you run OPTIMIZE TABLE directly on bloated tables after cleanup, which reclaims unused space and can measurably improve query speed. Always take a full database backup before running any cleanup, whether automated or manual.

Keep It Running Lean Going Forward

Schedule database cleanup at least monthly on a large store, or weekly if you’re processing a high volume of orders. Set WP-Optimize’s automatic scheduling rather than relying on remembering to run it manually.

Step 4: Reduce Plugin Bloat

Audit What’s Actually Running

Go through your plugin list and check the last time each one was updated, and whether it’s actually active on the frontend. Deactivate anything you’re not using — don’t just leave it installed and inactive, since some plugins still load partial code even when deactivated.

Watch for Overlapping Functionality

Check for plugins performing the same task: two SEO plugins both generating schema markup, or multiple plugins each handling image compression separately. Use Plugin Organizer to control which plugins load on which page types, so a plugin needed only on checkout isn’t also loading on your blog or homepage. Fewer active plugins per page means fewer database queries and fewer enqueued scripts and stylesheets to process.

Step 5: Improve Images & Assets

Switch to Modern Image Formats

Convert product images to WebP, which typically produces files 25-35% smaller than JPEG at equivalent visual quality. Use ShortPixel or Imagify to bulk-convert and compress your entire media library, including images already uploaded in past years. Set compression to “lossy” or “glossy” mode for product photos — the quality difference is negligible for e-commerce use.

Let Lazy Loading Do the Heavy Lifting

Enable lazy loading so images below the fold don’t load until a shopper scrolls near them. Most modern themes and caching plugins include this natively; if not, ShortPixel and Imagify both offer it as a built-in setting. Exclude your first 2-3 above-the-fold images from lazy loading, since delaying those can actually hurt your LCP score.

Step 6: Add Caching

Understand the Layers of Caching

Effective caching runs on three layers: page caching (serves a pre-built version of a page instead of regenerating it on each visit), object caching via Redis (stores database query results in memory), and browser caching (tells returning visitors’ browsers to reuse previously downloaded files). Set all three up together rather than relying on just one.

Choosing the Right Caching Plugin

Use WP Rocket or LiteSpeed Cache, both of which are built with WooCommerce compatibility in mind. Confirm the plugin is configured to exclude cart, checkout, and my-account pages from page caching — caching these pages incorrectly can cause one customer to see another customer’s cart contents. Enable Redis object caching within the plugin settings if your host supports it, since this handles the dynamic parts of WooCommerce that page caching can’t touch.

Step 7: Optimize WooCommerce Features

Tame the Cart Fragments Script

WooCommerce’s cart fragments script fires an AJAX request on every page load by default, even on pages unrelated to shopping, to keep the cart icon updated. Disable it on non-shop pages using a plugin like Perfmatters, or add a code snippet targeting the woocommerce_params script to dequeue it selectively.

Rein In the Heartbeat API

The WordPress Heartbeat API checks in with your server every 15-60 seconds by default for autosave and session syncing. Reduce its frequency to 60 seconds, or disable it entirely on the frontend, using Perfmatters or a small functions.php snippet. This cuts a steady stream of background requests, particularly relevant on stores with many logged-in customers or admins active at once.

Simplify Related Products and Upsells

Related products queries can be expensive on large catalogs, especially when calculated dynamically on every page load. Limit the number of related products shown (3-4 instead of the default), or cache the related products query output so it’s not recalculated on every visit. Perfmatters gives you direct control over which WooCommerce scripts and features load on which pages.

Speed Before You Switch

Before you consider switching platforms, run through this checklist:

  • Have you diagnosed the actual bottleneck with Query Monitor and a speed test, or are you guessing?
  • Is your hosting built for your current product count and traffic, or the numbers you had years ago?
  • When was your database last cleaned?
  • How many active plugins are you actually using?
  • Are your images converted to WebP and lazy-loaded?
  • Is your caching plugin configured specifically for WooCommerce, with cart and checkout excluded?
  • Have you disabled or limited cart fragments, Heartbeat API, and related products queries where they’re not needed?

Migrating platforms means rebuilding years of SEO equity, custom functionality, and customer trust. Working through this list first resolves the underlying issue in the large majority of cases without that risk.