Hello Florian,
And thank you for your question!
While there may be many possible reasons for filtering getting slow, but from what I’ve seen so far, the most basic of all usually lies in the inadequate correlation of server performance to shop demands. A few simple filters may run smoothly in a shop of 1000 items even on a mass-market-quality hosting account, but one definitely needs better server for a multiple-filter installations in a shop with thousands of items, many categories and attributes!
There are options and filters that put more strain on the server than others. When a setting is resource-consuming, we usually try to put warning about that in the respective section of our plugin documentation page.
The string search widget that you refer to in your question can be named among the resource-consuming. Our plugin is not a dedicated string search plugin, we are offering this option to give users the choice of combining keywords search with filters. Our code doesn’t use index tables or any other specialized caching technique for its string search widget, but rather relies on the native Woocommerce search engine. On the other hand, the string search code is only called when the widget is used, so if you don’t use it, the reason is somewhere else.
Generally speaking, you could speed up the performance by being careful with the following options:
- Reduce / eliminate the usage of product counts / hidden empty items style
- Disable the annasta Filters > Plugin settings > Stock filter variations support option
- Price filter and other ranges: increase range slider steps, or better yet — introduce the pre-set ranges list (of type 0-100, 101-500, 500-1000 etc).
- Disable the Dynamic price sliders (annasta Filters > Plugin settings)
As for caching, our plugin uses the built-in Woocommerce caching mechanism which is currently programmed to cache any result of AJAX loop queries, for 30 days. The (non-AJAX) Woocommerce loop does its caching automatically too. Woocommerce cache is kept in form of transients (in the wp-options table). We also use caching for product counts.
We are currently working at new options that will give our users more control over caching.
If you are an advanced user and wish to carry out comparisons for non-cached / cached performance, you are welcome to write to us and we will provide you with code that will help you “switch off” the AJAX caching.