WooCommerce is fine on a small shop, but once the catalogue passes 10–50k products the problems start. Here are the usual causes and what to do about them.
Typical symptoms
- The WP admin hangs on the products screen
- Slow cart and checkout
- 503 errors under load
- MySQL sitting at 100%+ CPU
1. Redis object cache
Install Redis and the Redis Object Cache plugin. It removes the repeated database hits for transients, options and WooCommerce objects. Expect a 40–60% improvement.
2. Database cleanup
WooCommerce accumulates thousands of transients and autoloaded options. Clean them out regularly with WP-CLI:
wp transient delete --all wp db optimize
3. PHP-FPM pool tuning
Give WooCommerce its own PHP-FPM pool with pm.max_children sized against available RAM. The formula: (total RAM minus system) divided by the average PHP process footprint.
4. Slow query optimization
The heaviest WooCommerce queries hit wp_postmeta and wp_options. Use the Query Monitor plugin to find the ones costing you.
Result
A 50k-product store after this work: LCP from 5.8 s down to 1.4 s, checkout time cut by 70%.