WooCommerce is powerful but notoriously resource-intensive. A default WooCommerce installation makes significantly more database queries than a standard WordPress blog. The good news: most of the performance gains come from a handful of targeted optimizations.
1. Use a WooCommerce-optimized hosting plan
Generic shared hosting struggles under WooCommerce load. Consider managed WooCommerce hosting (Kinsta, SiteGround Commerce, WP Engine) or a cloud VPS (Cloudways) with at least 2GB RAM.
2. Enable full-page caching carefully
WooCommerce cart and checkout pages must not be cached. Configure your caching plugin to exclude: /cart/, /checkout/, /my-account/, and pages with the [woocommerce_cart] shortcode. WP Rocket and LiteSpeed Cache handle this automatically.
3. Enable Redis object caching
Redis caches database query results in memory, dramatically reducing database load. Install Redis on your server and use the Redis Object Cache plugin. This alone can cut query time by 60-80% on busy stores.
4. Optimize product images
WooCommerce generates 3+ image sizes per product. Convert all to WebP, enable lazy loading, and use a CDN. For stores with 1000+ products, this can save gigabytes of bandwidth monthly.
5. Limit product variations
Products with 50+ variations create large JSON payloads on product pages. Consider splitting highly variable products or using a plugin to lazy-load variations.
6. Disable unused WooCommerce features
WooCommerce loads many scripts and styles even when features aren't used. Disable unused features under WooCommerce → Settings: reviews (if not used), geolocation, marketplace suggestions, and admin notices.
7. Optimize the checkout flow
The checkout page is critical for conversions. Remove unnecessary fields, enable AJAX for checkout updates, and consider a one-page checkout plugin.
8. Database optimization
WooCommerce stores order data in WordPress's post tables and custom tables. Regular cleanup of: expired transients, draft orders, old sessions, and product reviews spam keeps queries fast.
9. Use a CDN for static assets
Product images, CSS, and JS should all be served from a CDN. Cloudflare (free) or BunnyCDN provides global distribution with minimal setup.
10. Enable browser caching headers
Your server should send proper Cache-Control and Expires headers for static assets. Most caching plugins handle this, but verify with your browser's DevTools Network tab.
11. Minimize third-party scripts
Each payment gateway, analytics tool, or chat widget adds load time. Audit and remove anything not directly contributing to revenue.
12. Lazy-load product tabs and reviews
Product description, attributes, and reviews tabs don't need to load immediately. Lazy-load them on click to reduce initial page weight.
13. Paginate shop pages
Displaying 100+ products per page creates massive HTML and many image requests. Limit to 12-24 products per page.
14. Use WooCommerce HPOS
High-Performance Order Storage (HPOS) moves order data to dedicated custom tables, dramatically improving order query performance for stores with large order volumes.
15. Monitor and measure
Use WPStats to track your overall PageSpeed score after implementing changes. Set up Google Search Console monitoring and use tools like Query Monitor to find slow database queries.
Check your WooCommerce store's performance
WPStats detects WooCommerce and shows real PageSpeed scores for your store.
Analyze your store