Performance Tuning for WooCommerce
Scaling to 100k+ SKUs
High-volume e-commerce requires advanced caching (Redis), database optimization, and strategic asset loading to maintain < 1s TTFB.
As an online store grows from a few dozen products to over 100,000 SKUs, the standard WordPress architecture begins to feel the strain. WooCommerce is incredibly powerful, but out-of-the-box settings are rarely optimized for enterprise-level catalogs. When every millisecond of delay correlates directly to a drop in conversion rates, performance tuning becomes your most important business strategy.
The Infrastructure Foundation
Scaling to 100,000+ products isn’t just about code; it’s about the environment where that code lives.
1. Advanced Caching with Redis
Standard page caching isn’t enough for a dynamic store. You need Object Caching. Redis acts as a lightning-fast persistent memory layer, storing the results of complex database queries. Instead of WooCommerce asking the database for product attributes thousands of times a minute, it retrieves them instantly from Redis.
2. High-Performance Hosting
Shared hosting is a non-starter for large catalogs. You require a VPS or dedicated environment with high-frequency CPUs. WooCommerce is PHP-heavy, and faster processor clock speeds allow the server to execute those scripts more rapidly, directly lowering your Time to First Byte (TTFB).
Database Optimization: The Secret to Large Catalogs
WordPress stores almost everything in the wp_posts and wp_postmeta tables. With 100k products and their variations, these tables can grow to millions of rows, making searches and filtering painfully slow.
- Custom Product Tables: Consider implementing high-performance lookup tables for product attributes. This moves the heavy lifting away from the generic meta tables and into structured, indexed tables designed for speed.
- Database Indexing: Ensure your most-queried columns are properly indexed. This allows the database engine to find the exact product data it needs without “scanning” every single row in the table.
- Cleanup and Maintenance: Regularly prune expired transients, old revisions, and orphaned metadata. A leaner database is a faster database.
Strategic Asset Loading
Large stores often suffer from “Plugin Bloat,” where scripts from 50 different plugins load on every single page, even if they aren’t needed.
- Conditional Loading: Use tools to prevent scripts (like those for the Checkout page) from loading on the Homepage or Archive pages.
- Image Optimization at Scale: With 100k+ SKUs, you likely have 300k+ images. Use a CDN (Content Delivery Network) like Cloudflare or BunnyCDN to serve these images from the “edge” closest to the user, and implement WebP conversion to keep file sizes minimal.
- Elasticsearch for Search & Filters: When a user filters 100k products by “Blue” and “Large,” the standard SQL query can hang. Offloading search and filtering to a dedicated engine like Elasticsearch (via ElasticPress) ensures that even the most complex queries return in milliseconds.
Maintaining the < 1s TTFB Goal
The ultimate metric for a high-volume store is a sub-one-second Time to First Byte. This is achieved by:
- Minimizing PHP Execution: Keep your theme light and your logic efficient.
- Optimizing WooCommerce Core: Utilize the “High-Performance Order Storage” (HPOS) feature in modern WooCommerce versions to move order data into its own dedicated tables.
- API-First Thinking: For the most extreme performance, consider the Headless approach mentioned in previous discussions, using a frontend like Next.js to serve your massive catalog as a lightning-fast static site.
Conclusion
Scaling WooCommerce to 100k+ SKUs is entirely possible, but it requires a shift from “plug-and-play” to “engineer-and-optimize.” By focusing on database health, object caching, and efficient asset delivery, you can provide a seamless shopping experience that stays fast no matter how large your inventory grows.