Home / Premmerce WooCommerce Blog / Performance / How many products can WooCommerce handle?

How many products can WooCommerce handle?

15 September 17
Reading Time: 5 minutes
1 Comment
1 Star2 Stars3 Stars4 Stars5 Stars (4 votes)

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.

How many products can WooCommerce handle?

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.

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.

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.

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.

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.

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.

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.

Comments (1)
  • Matt Knighton says:

    First of all, thanks for the in-depth article.

    At WooConf 2017 they apparently spoke on the number of orders per second is where limitations are most commonly found.

    The WooCommerce system itself regardless of the amount of hardware and cache will hit a maximum of 5 orders per second as a build limitation.

    Also – on the variants – very complex products just won’t work. Using something like Gravity Forms as a layer on top of the product is the best option and gives better performance from my experience.

    The new crud system should help with this because it will start making individual tables for the data and therefore should speed up significantly because these can be optimised specifically. I’m hoping we get more insight on this from the WooConf 2017 videos when they are released.

Leave a Reply

Your email address will not be published. Required fields are marked *

Sign up for updates

Be the first to know about Premmerce development and project news

You have successfully subscribed to our mailing list. Thank you!