Our products and services is being used by a variety of different online stores with different types and numbers of the products. Quite often, we meet clients who need to launch a store with 50-100K of products and provide up to 2 seconds load speed for all pages at a low cost of hosting. So in this post we will research how many products can WooCommerce handle.

We wondered if a WooCommerce online store could withstand such large catalogs with a sufficient user load and conducted our own research, which we are happy to share with you.

First of all, we decided to search such cases on the official WooCommerce site and among the shop owners, but did not find a clear answer.

The official documentation does not provide a clear answer to this question too; it only says it depends on:

Hosting server & company;

Amount of orders;

Traffic.

Also, you can check our new research Testing an Online Store with 500K of Products powered by WooCommerce. In the article, we’ll describe our experience of testing a high-loaded online store with 500K products and we’ll do a brief performance analysis of such an online store.

Update! We’ve launched a brand new plugin for WooCommerce Performance Optimization. Get all the details here: WooCommerce Performance Optimization

Preparing for the testing

Since we have worked with the large stores and know what factors may have impact on the load speed, for the research we have defined a few pages, which may potentially become bottlenecks:

Home page;

Product catalog;

Individual product page.

Also, the load speed is influenced by the presence of products attributes, the presence of a variable products, photos and additional photos of products.

The testing was carried out on a standard WooCommerce Store Front template and a WordPress+WooCommerce basic system without additional plugins, including caching plugins.

Test product base

To generate the required number of the test products, we developed our own tools and added them in the Premmerce Dev Tools plugin.

Using this plugin, we generated the following database:

The number of products – 50K;

The number of categories – 50;

The number of products in the category – 1000;

The number of attributes – 15;

The number of values in the attribute – 7;

The number of attributes of the product – 15;

The number of variable products – 50К;

The number of product options- 1-3;

The number of photos of each product – 3.

As a result, the database has grown to the following indicators:

The database size – 338 Mb;

The number of posts queries – 299999;

The number of post meta queries – 1127568.

Test hosting parameters

For the load testing, we’ve chosen regular hosting with the following parameters:

One core from the E3 processor – cpu: 3500.034 MHz;

RAM: 512 Mb;

Maximum number of the processes: 20;

Available memory: 2048 Mb;

Disk operation limit: 5 Mb/s.

Testing service

For the speed and load testing, we have used Load Impact.

Home page testing

The Test result:

The number of all queries – 286;

The minimum page load time – 413.9ms;

The average page load time – 569ms;

The maximum page load time – 1.89s;

The minimum server response time – 163.87ms;

The average server response time – 298.85ms;

The maximum server response time – 1.64s;

The number of virtual users – 50.

Conclusion

In general, as you can see, the load time of the home page is not dramatically influenced by the large number of the products in the database, showing a good average page load time – up to 2 seconds.

Read also: Complete WooCommerce Tutorial Step By Step.

Testing a small product category with no filters

The store base had 50K products. The tested category contained 1K products.





The test result:

The number of all queries – 275;

The minimum page load time – 500.37ms;

The average page load time – 591.16ms;

The maximum page load time – 2.14s;

The minimum server response time – 217.69ms;

The average server response time – 296.28ms;

The maximum server response time – 1.84s;

The number of virtual users – 50.

Conclusion

As you can see, if a single category contains about 1K of products, then the load speed does not differ significantly from the home page’s rates, despite the large number of the products in the base.

Update! We’ve launched a brand new plugin for WooCommerce Performance Optimization. Get all the details here: WooCommerce Performance Optimization

Testing a big product category with no filters

The store product base had 50K items. The tested category contained 50K products.

The test result:

The number of all queries – 272;

The minimum page load time – 598.71ms;

The average page load time – 766.73ms;

The maximum page load time – 2.93s;

The minimum server response time – 319.61ms;

The average server response time – 424.54ms;

The maximum server response time – 1.62s;

The number of virtual users – 50.

Conclusion

As you can see, a large category of 50K products affects the page load time, increasing it by almost 1.5 times. And this is even without the use of additional data, such as filters by category.

These conditions are quite unrealistic in practice, because such categories significantly impair the navigation of the site for the users and prevent further promotion of the store as a whole. It is recommended to divide all the items into the categories, which contain no more than 2-3K products each. Ideally, there should be 100-200 products in one category, if there’s a large product base. Therefore, we will no longer conduct tests of such large categories; we’re just showing these test results for illustrative purposes.

Read also: Top 10 Best WooCommerce Themes 2017 Review and Comparison.

Testing a small product category with the WooCommerce filters

The store product base had 50K items. The tested category contained 1K products.

Here, we’ve used the standard WooCommerce widget for creating filter by attributes.

The test results:

The number of all queries – 276;

The minimum page load time – 912.28ms;

The average page load time – 1.19s;

The maximum page load time – 3.6s;

The minimum server response time – 575.27ms;

The average server response time – 834.74ms;

The maximum server response time – 3.26s;

The number of virtual users – 50.

Conclusion

As you see, the filters increase the catalog page load time by about twice and require automation, especially by increasing the average server response time to 800ms, compared to 200ms recommended by Google Page Speed Insights.

Update! We’ve launched a brand new plugin for WooCommerce Performance Optimization. Get all the details here: WooCommerce Performance Optimization

Testing a small product category with the Premmerce filters

The store product base had 50K items. The tested category contained 1K products.

Here, we’ve used our own plugin for creating filters by attributes (it is currently being tested and it will be available soon).



The test results:

The number of all queries – 279;

The minimum page load time – 617.07ms;

The average page load time – 703.85ms;

The maximum page load time – 2.76s;

The minimum server response time – 280.47ms;

The average server response time – 352.96ms;

The maximum server response time – 2.41s;

The number of virtual users – 50.

Conclusion

As you can see, the use of Premmerce filters speeds up loading time by about 2 times compared to the standard WooCommerce filters.

Update! We’ve launched a brand new plugin for WooCommerce Performance Optimization. Get all the details here: WooCommerce Performance Optimization

Testing an individual product page

For the testing, we took a product page with the following parameters:

The number of photos – 3;

The number of attributes – 15;

The number of options – 2.

The test results:

The number of all queries – 288;

The minimum page load time – 512.88ms;

The average page load time – 625.97ms;

The maximum page load time – 2.48s;

The minimum server response time – 223.77ms;

The average server response time – 298.91ms;

The maximum server response time – 1.66s;

The number of virtual users – 50.

Conclusion

A large product database does not greatly affect the product page load time. Although the average server response rate is lower than the rate recommended by Google, the overall download speed is very good.

General conclusion on “How many products can WooCommerce handle?”

In this research , we’ve tested the load speed of WooCommerce without the use of any cache plugins or custom hosting settings, which obviously influenced the results. In the following articles, we will explore the possibilities of caching and optimizing the store through hosting settings.

Read more: Top 3 WooCommerce Cache Plugins Review and Comparison

In general, it’s obvious that WooCommerce can cope with the large product bases and, if properly configured, can work with the bases of 50K, 100K or more products.

We are going to test the store load speed with various additional plugins installed. If they significantly affect the test result, we will post additional articles with our research.

Trying to deliver maximum value to our project followers, we will look for the best options for the correct optimization of the WooCommerce online store to its maximum performance.