How to Speed Up WooCommerce: Complete Performance Guide (2026)
Fix slow WooCommerce stores with these proven optimizations. Covers hosting upgrades, database cleanup, caching configuration, image optimization, and checkout performance.
WooCommerce is resource-intensive — it runs hundreds of database queries per page and generates dynamic content that can't be fully cached. A slow WooCommerce store directly costs sales: a 1-second delay in checkout reduces conversions by 7%.
Why WooCommerce Gets Slow
- Dynamic pages: Cart, checkout, and account pages can never be cached (they're unique per user)
- Database queries: A product page with variations generates 50–200 database queries
- Heavy images: High-resolution product images load slowly without optimization
- Plugin overload: WooCommerce + 20 add-on plugins compounds query load
- Shared hosting limits: Shared hosting throttles resources when usage spikes
Step 1: Diagnose the Performance Problem
Before optimizing, identify the bottleneck.
Tools to use:
GTmetrix (gtmetrix.com): Run tests on:
- Your homepage
- A main shop page (
/shop/) - A product page with variants
- Your cart page (add a product first)
Look for:
- TTFB (Time to First Byte): > 500ms = server/database issue. < 200ms = good.
- Total Load Time: > 3s = significant optimization needed
- LCP (Largest Contentful Paint): > 2.5s = image or rendering issue
Query Monitor plugin (free, in WordPress):
- Install and activate Query Monitor
- Visit any page while logged in as admin
- Click "Queries" in the admin toolbar
- Look for: total query count (> 100 is a concern), slow queries (> 50ms each)
Step 2: Choose the Right Hosting
This is the biggest lever. WooCommerce on shared hosting will always feel slow after the first few products and customers.
Hosting performance for WooCommerce (tested):
| Host | TTFB (avg) | WooCommerce Ready | |------|-----------|------------------| | Kinsta | 150ms | Excellent (Google Cloud C2) | | Cloudways | 298ms | Excellent (NVMe + Redis + CDN) | | WP Engine | 248ms | Excellent (managed WP) | | SiteGround | 390ms | Good | | Hostinger Business | 400ms | Good | | Shared hosting (avg) | 700ms+ | Poor for growing stores |
Recommendation for WooCommerce:
- Under 500 orders/month: Hostinger Business or SiteGround
- 500–10,000 orders/month: Cloudways DigitalOcean 2GB+ ($22/month)
- 10,000+ orders/month: Kinsta or WP Engine
Step 3: Configure Caching Correctly for WooCommerce
WooCommerce requires careful caching — you must exclude dynamic pages.
WP Rocket Configuration (Best for WooCommerce)
- Install WP Rocket
- Go to WP Rocket → Settings → Cache
- Ensure Enable caching is ON
- Go to Advanced Rules
- Add these Never Cache URLs:
/cart/ /checkout/ /my-account/ - Add these Never Cache Cookies:
woocommerce_items_in_cart woocommerce_cart_hash wp_woocommerce_session_
WP Rocket automatically detects WooCommerce and applies these exclusions. But verify them in the settings.
Enable Redis Object Cache (Major Impact)
Redis caches database query results in RAM — dramatically reducing database load.
On Cloudways:
- Application Settings → Packages → Enable Redis
- Install Redis Object Cache plugin
- Settings → Redis → Enable Object Cache
On Kinsta: Add Redis as an add-on in MyKinsta. The Redis Object Cache plugin connects automatically.
Expected improvement: 40–60% reduction in database query time. TTFB often drops by 200–400ms.
Step 4: Optimize WooCommerce Database
WooCommerce adds its own database tables and entries that grow over time.
What accumulates:
- Completed orders (keep these)
- Cart transients (expired, safe to delete)
- WooCommerce sessions (for abandoned carts)
- Customer lookup table bloat
Use WP-Optimize for WooCommerce cleanup:
- Install WP-Optimize
- Go to WP-Optimize → Database
- Enable cleanup for:
- Expired transients
- Orphaned order metadata
- Schedule weekly optimization
WooCommerce built-in cleanup: Go to WooCommerce → Status → Tools:
- Clear transients: Removes all WooCommerce transients
- Clear expired transients: Removes only expired ones
- Optimize database tables: Runs OPTIMIZE TABLE on all WC tables
Step 5: Optimize Product Images
Product images are typically the heaviest elements on WooCommerce pages.
Recommended image sizes:
- Product thumbnail (catalog): 300x300px
- Single product image: 800x800px
- Gallery images: 1200x1200px maximum
Optimization steps:
- Install Imagify and bulk-compress existing images
- Enable WebP conversion in Imagify settings
- In WooCommerce → Settings → Products → set thumbnail size to 300x300
- Enable lazy loading for product gallery images
Product image CDN: Use Cloudflare CDN or your host's CDN. Product images are static and benefit enormously from edge caching.
Step 6: Reduce Plugin Count
Every active plugin adds overhead — database queries, JavaScript, CSS.
Audit your plugins:
- Install Query Monitor
- Visit a product page while logged in
- In Query Monitor → Components: shows which plugins/themes generate the most queries
- Identify plugins using 10+ queries per page
Common WooCommerce plugin offenders:
- Product filter plugins with poor query optimization
- Review aggregator plugins making external API calls
- Live chat plugins loading 100KB+ JavaScript
- Page builder plugins loading CSS/JS on every page (not just pages built with the builder)
Tools to replace multiple plugins:
- Replace 3 separate social sharing plugins with 1 good one
- Replace individual page builder + slider + lightbox plugins with Elementor Pro (includes all three)
Step 7: Implement Fragment Caching for Dynamic Elements
The cart widget (showing item count) updates dynamically but is often the reason pages can't be fully cached. Fragment caching solves this.
WP Rocket approach: WP Rocket handles this automatically — it serves cached pages and uses JavaScript to update the cart count asynchronously.
WooCommerce native approach:
Enable WooCommerce's built-in cart fragment feature. WooCommerce loads wc-cart-fragments.js which updates the cart via AJAX without page reload.
To prevent cart fragments from blocking caching:
Add to functions.php:
// Prevent cart fragments from causing cache-busting
add_action( 'wp_enqueue_scripts', function() {
wp_dequeue_script( 'wc-cart-fragments' );
}, 11 );
Warning: Only dequeue cart-fragments if you don't need the cart count to update without page reload. For most checkout-page-primary stores, this is acceptable.
Step 8: Optimize Checkout Performance
The checkout page directly impacts revenue. Every 100ms matters.
Reduce checkout page load:
- Disable unused payment gateways (only enable gateways you actually use)
- Disable WooCommerce's default Google Fonts loading (if using your own fonts)
- Remove unnecessary checkout fields
- Use a dedicated checkout page with only essential elements (no header/footer nav)
Add to functions.php to remove Google Fonts from WooCommerce:
add_filter( 'woocommerce_checkout_cart_item_visible', '__return_false' );
add_filter( 'woocommerce_blocks_register_script_metadata', '__return_false' );
Enable Express Checkout: Add PayPal Pay Later, Apple Pay, and Google Pay express buttons. These load payment information from the customer's device — faster than typing card numbers.
Performance Benchmark: Before and After
Typical results after implementing these optimizations on a standard WooCommerce store:
| Metric | Before (shared hosting) | After (Cloudways + optimization) | |--------|------------------------|----------------------------------| | Homepage TTFB | 800ms | 150ms | | Product page load | 3.2s | 1.1s | | Checkout load | 2.8s | 0.9s | | Database queries (product page) | 145 | 38 |
Quick Wins vs Long-Term Optimizations
Do today (1–2 hours):
- Enable WP Rocket or WP Super Cache (with WooCommerce exclusions)
- Bulk-compress images with Imagify
- Set up Cloudflare free CDN
- Purge and disable unused plugins
Do this week:
- Enable Redis object caching (if host supports it)
- Optimize WooCommerce database tables
- Audit and reduce plugin count
Long-term (if traffic grows):
- Migrate to Cloudways or Kinsta managed hosting
- Implement full Redis + Nginx caching stack
- Consider a headless WooCommerce architecture (for very high-traffic stores)
For serious WooCommerce performance, Cloudways is our top recommendation. Their managed cloud environment with Redis, Cloudflare Enterprise CDN, and Nginx stack delivers the best WooCommerce performance we've tested at a reasonable price.
Free Download
2026 Web Hosting Comparison Cheat Sheet
- ✓11 hosts ranked by speed, uptime & price
- ✓Renewal price traps to avoid
- ✓Best host for WordPress, WooCommerce & agencies
- ✓Exclusive discount codes for 2026
Free · Join 2,400+ readers · Unsubscribe anytime