BigBox is currently 25% off and includes a 14-day money back guarantee. Get Started for 25% Off

Using FacetWP to Improve WooCommerce Product Filtering Performance

It is well known that people expect websites to load quickly. Shopping should be quick, easy, and painless; especially on the web. Any slowness or barrier between customers and your products can be disastrous. In fact a 1 second delay in page response can result in a 7% reduction in conversions

WooCommerce is hard at work optimizing their software to allow for faster queries and create a faster shopping experience. A “feature plugin” that will migrate products to a custom database table is currently in development. However, until this happens many queries within WooCommerce will remain quite slow and taxing on your web server’s resources.

One of the major places this slowness becomes apparent is filtering products to narrow results — for example the “Filter Products by Price” widget. Helpful product filters are key to ensuring your customers find the exact product they are looking for. Imagine a customer needing to drill through multiple filtration levels with each subsequent filter increasing page load time. That is a recipe for website abandonment.

When the prices are filtered to limit the products shown a database query such as this is generated by WooCommerce:

Query Time
View full query 0.0091s

0.0091s might not seem like a lot of time, but pair that with the “Filter Products by Rating” widget and you end up with 5 more queries similar to this:

Query Time
View full query 0.0144s

This is WooCommerce figuring out how many results there are for the average stars 1-5 that are between $1 and $82. Due to WooCommerce’s current product storage methods these queries require expensive JOIN to find the relevant products between a certain price range (the price is stored in a separate table) as well as performing these queries again to populate counts for other widgets.

In comparison FacetWP uses the following query to find the products within a $1 and $82 price range:

Query Time
View full query 0.0001s

And to generate the number of results for other filters, FacetWP performs a few queries similar to this:

Query Time
View full query 0.0001s

Both of these queries are immensely faster (almost instant) because they are only querying a single well indexed table instead of searching multiple and trying to match the results. 

Below is a comparison of resources needed to generate a page with only a price filter applied, and other similar filters (demo with FacetWP, standard demo).

Page Generation Time Database Query Time
WooCommerce 0.9148s 0.0889s
FacetWP 0.3562s 0.0074s

Almost 3x as fast page load time and 12x faster database query time when filtering via FacetWP!

When WooCommerce migrates product records to their new tables there will certainly be improvements, but it will never be able to match FacetWP’s speed of using a separate lookup table. The lookup table ensures no complex queries will ever need to be created because all values are already stored in the table.

This is why we highly recommend using FacetWP with BigBox. Ensuring your products can be discovered quickly and efficiently is one of BigBox’s primary goals, and when used alongside FacetWP you can be confident this is always the case.

Enjoy this article?

Get more exclusive updates delivered directly to your inbox.

Leave a Reply

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

Build Your eCommerce Powerhouse

Create a store that matches your brand, your scale, and your specific needs.

View All Features View Demo →

Get Started Today

The best Shopify alternative to scale WooCommerce product catalogs.

Get BigBox Now