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.
The test site address is https://highload.premmerce.com/
The number of products: 500000
The number of categories: 1000
The number of brands: 100
The number of attributes: 100
- Premmerce Premium
- Yoast seo
- Premmerce Search
- Premmerce WooCommerce Brands
- Premmerce WooCommerce Product Filter
- WooCommerce Permalink Manager Premium
- Premmerce WooCommerce Wishlist
The site demo data was created with the help of Premmerce Dev Tools plugin.
- The optimized filter enabled with the help of Premmerce WooCommerce Product Filter plugin
- Installed Premmerce Premium with the in-built Rocket Cache plugin and some additional optimization settings for it in order to achieve the maximum load speed of an online store
- The ‘Rocket cache sitemap.xml based cache preloading’ setting is enabled
- The ‘Rocket cache Enable cache for logged in users’ setting is enabled
- The Premmerce ‘Use the same cache for all logged in users’ setting is enabled
Cache setup is of a great importance for a high loaded store. Particular attention must be drawn to making a full cache preload for all pages. Beware not to delete the cache of the whole site during further operation. However, the cache of the changed pages can be deleted.
By all means, the proper server settings should be made for the 500K store. In some cases the use a powerful VDS is recommended.
We’ve included the following basic settings for this test:
- Xeon® CPU E3-1275 v6 @ 3.80GHz
- RAM 2GB
The Results of the Testing
After filling up with the demo data, we’ve got the following site:
Google PageSpeed Insights
First of all, after heating the site with a cache, we tested it using Google PageSpeed Insights. We’ve got the following results:
The Category page:
The Product page:
So we’ve got a good result on all main pages.
For testing the load in dynamics with a large number of simultaneous users, we used the service: https://loadimpact.com/
We set 50 simultaneous virtual users in the test settings.
|Homepage||Category||Filtering products on the category page with 500 products||Filtering products on the category page with 57 000 products|
|The number of all queries||284||284||272||261|
|The number of virtual users||50||50||50||50|
|The minimum page load time||380.18ms||292.95ms||1.76s||1.88s|
|The average page load time||594.99ms||710.92ms||2.15s||2.38s|
|The maximum page load time||2.1s||2.28s||3.13s||4.77s|
|The minimum server response time||110.19ms||120.73ms||847.94ms||903.7ms|
|The average server response time||181.43ms||219.49ms||1.06s||1.17s|
|The maximum server response time||760.3ms||1.27s||1.94s||3.14s|
As we see, the average page load time increases only when filtering up to 2.4 seconds, which is still less than the normal time up to 3 seconds.
All other pages show an excellent result of the full page load up to 1 second and the server response time is up to 200 ms, which is better than most sites on the Internet
However, the filters can also be cached, after that they’ll produce the results as the rest of the site, other points can be optimized individually in real conditions.
Let’s remind that we’ve tested 500K of products in the catalog with 50K of products in one category with 100 attributes – these conditions are a bit unreal, but we’ve decided to take the maximum to demonstrate all the possibilities.
In general, our test has confirmed once again that high-loaded stores with large databases can be launched using WordPress, WooCommerce and Premmerce plugins.
If you have any other questions or if you need help with setting up or optimizing your online store with a large products database or workload, contact the chat or leave comments, we’ll be happy to help you.