Speed Up WooCommerce
Your WooCommerce store is slow. Here’s a systematic approach to finding and fixing the bottleneck.
A slow WooCommerce store costs you money. Every extra second of load time drops conversion rates by roughly 7%. Here’s how to find what’s slow and fix it, from the highest-impact changes to the fine-tuning.
Step 1: Measure the Baseline
Before changing anything, measure. You need numbers to know if your changes are helping.
- GoZen Health Score - overall site health
- PageSpeed Insights - Google’s Core Web Vitals
- GTmetrix - detailed waterfall analysis
Test these specific pages:
- Homepage
- A product category page (the heaviest)
- A product page
- The cart page
- The checkout page
Write down the TTFB (Time to First Byte) and total load time for each.
Step 2: Enable LiteSpeed Cache (Biggest Win)
If you haven’t set up LiteSpeed Cache yet, do it now. This alone can drop page load from 3 seconds to under 500ms for cached pages.
WooCommerce-specific settings in LiteSpeed Cache:
- Go to LiteSpeed Cache > Cache
- Under the WooCommerce section:
- Privately Cache Cart = ON
- Privately Cache Cart Page = ON
- Under Cache > Excludes:
- Make sure checkout and my-account pages are NOT publicly cached (LiteSpeed Cache handles this by default)
- Go to Page Optimization:
- CSS Combine = ON
- JS Combine = ON (test thoroughly, this breaks some themes)
- Load CSS Asynchronously = ON
- Load JS Deferred = ON
After enabling, test your checkout flow completely. Place a test order.
Step 3: Optimize Your Database
WooCommerce hits the database hard. A bloated database means slow queries.
Clean Out the Junk
Post revisions: WooCommerce creates revisions for products too
// Add to wp-config.php define('WP_POST_REVISIONS', 3);Expired transients: go to LiteSpeed Cache > Database > Clean All
Action Scheduler backlog: go to WooCommerce > Status > Scheduled Actions
- If you see thousands of pending/completed actions, clean them up
- Delete all completed actions older than 30 days
wp_options autoload: the
wp_optionstable is loaded on every page request. Check its size:SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';If autoload data exceeds 1MB, you have plugins storing too much data there. Identify the culprits by looking at option names.
Add Database Indexes
Install the Index WP MySQL For Speed plugin. It adds missing indexes to WordPress tables, especially useful for stores with thousands of products.
Step 4: Fix Slow Plugins
Install Query Monitor temporarily. It shows:
- Which plugins run the most database queries
- How long each query takes
- Which HTTP API calls are made (and how long they take)
- PHP errors
Common slow plugins in WooCommerce stores:
| Plugin Type | Problem | Fix |
|---|---|---|
| Social sharing plugins | Add external script requests | Use theme’s built-in social links or remove |
| Real-time analytics | JavaScript + server calls on every page | Use server-side analytics or defer loading |
| Heavy page builders | Generate large DOM, slow rendering | Optimize builder output, reduce sections |
| Abandoned cart plugins | Background processes that run on every page | Evaluate if the ROI justifies the performance cost |
| Product review plugins | Extra database queries per product page | Use native WooCommerce reviews if possible |
After identifying slow plugins, deactivate them one by one and re-measure TTFB.
Step 5: Optimize Images
Product images are often the biggest files on the page.
Use WebP: LiteSpeed Cache converts images automatically
- Go to LiteSpeed Cache > Image Optimization > Request Optimization
- Enable WebP Replacement
Set proper dimensions: don’t upload 4000px images for 800px thumbnails
- WooCommerce thumbnail size: 600px wide max
- Single product image: 800-1200px wide max
- Set in Appearance > Customize > WooCommerce > Product Images
Enable lazy loading: LiteSpeed Cache does this automatically for images below the fold
Step 6: Reduce External Requests
Every external script (fonts, analytics, payment widgets, chat tools) adds latency.
Check your waterfall in GTmetrix. Look for:
- Google Fonts: self-host them instead of loading from Google’s CDN
- Chat widgets: load them only on specific pages, not globally
- Facebook Pixel, TikTok Pixel, etc.: load asynchronously
- Font Awesome: if you use 5 icons, don’t load the entire 300-icon library
Step 7: Use Object Caching (VPS Only)
If you’re on a VPS, install Redis:
- Install Redis on the server (ask GoZen support on managed VPS)
- Install the Redis Object Cache plugin
- Enable it
Object caching stores database query results in RAM, so repeated queries (product lookups, menu structures, widget data) are served instantly instead of hitting MySQL.
This is the single biggest performance upgrade for WooCommerce beyond page caching. It helps uncached pages and admin panel speed significantly.
After Optimizing
Re-test the same pages you measured in Step 1. Compare:
| Metric | Before | Target |
|---|---|---|
| Homepage TTFB | > 1s | < 200ms (cached) |
| Product page load | > 3s | < 1.5s |
| Checkout page load | > 2s | < 1s |
| PageSpeed score (mobile) | < 50 | > 80 |
If you’ve done everything above and performance is still inadequate, it’s time to upgrade to a VPS.
What to Do Next
- Hosting a WooCommerce Store - full setup guide
- LiteSpeed Cache for WordPress - detailed caching config
- CloudLinux Resource Limits - monitor your resource usage
- GoZen E-commerce Hosting - hosting optimized for WooCommerce stores
Last updated 07 Apr 2026, 00:00 +0200.