FAQ

The WooCommerce Product Search search engine and its tools are developed following the highest standards in Software Engineering. It is duly designed, developed and tested to work on a broad variety of setups, powering thousands of shops with huge amounts of products – Even so, given the vast variety of tools that can compose a particular deployment, things can go wrong. This section provides some pointers to what you can do to figure out what’s wrong, how to fix it and provide a powerful search experience for your customers.

Searching doesn’t find any products or only some ↑ Back to top

If the index is not fully completed, the search engine will only provide results from those products that have already been processed.

Check under WooCommerce > Settings > Search > Index whether the index has reached 100%. Also check the next question for possible reasons.

The indexer never completes processing all products, why could that be? ↑ Back to top

Scheduled tasks (cron) are not working correctly. ↑ Back to top

If you get indications under WooCommerce > Settings > Search > Index that scheduled tasks (cron) seem to be failing, there can be several reasons for this to happen. You have the option to run the indexer manually in that case by clicking the Run button, or try to apply one of the solutions suggested below. Normally, the indexer only needs to process existing products initially so that they are included in searches  – after you have installed and activated the extension, any new products or modified products will be indexed instantly.

Please note that the indicator WordPress cron found under WooCommerce > Status > WordPress environment does not guarantee that scheduled tasks are working correctly, as it merely reflects whether the constant DISABLE_WP_CRON is used or not.

Your site has little or no traffic. ↑ Back to top

On low traffic sites, staging sites or sites that are running on localhost (your own computer), scheduled tasks (cron) are only triggered sporadically and in some cases not at all. Consider enabling scheduled tasks at the system level – see Hooking WP-Cron Into the System Task Scheduler on how to achieve this.

If you are using Docker, this article has indications on how to trigger WordPress cron every minute.

Or simply trigger the indexer manually by clicking the Run button.

Password-protected sites. ↑ Back to top

Access to your site is protected by password on the server level and scheduled tasks (cron) fail to execute due to lack of permission when the server receives the wp-cron request. Remove the password protection during tests or trigger cron events manually using the Run button.

The PHP memory limit is exhausted. ↑ Back to top

Increase the PHP memory limit as indicated in the article Increasing the WordPress Memory Limit.

There are issues during processing. ↑ Back to top

Errors in third-party plugins, themes or customizations cause issues during processing and thus the indexer cannot successfully process the entries. Disable plugins that are up-to-date but create issues. Update plugins that have not been updated in a while. Fix errors in customizations. Switch to a theme that is error-free. Plugins, themes and customizations should not produce any entries in the debug log. If they do, consider alternatives or fixing them.

Please check the next question on how to enable debugging and review the debug log entries produced for errors.

Variable products take longer to index ↑ Back to top

When you have variable products with many variations, the indexer will need additional time to index each variation. This is correct as it will take all characteristics of each product variation into account.

The time required to process the variable product and all its variations is proportional to the number of variations of the product. Although the engine will try to avoid errors related to excessive usage of resources, on some setups with low limits and depending on the overall resource consumption of your server, you may see a “PHP Fatal error: Maximum execution time of … seconds exceeded”. Even if this occurs, the indexer will eventually index all variations in due time during successive indexing runs. To avoid such errors at all, you can also increase the PHP max_execution_time.

How can I enable extension-specific debugging? ↑ Back to top

In your site’s wp-config.php (this file is located in the root folder of your site) enable WordPress debugging and specific debugging for the extension by adding these lines:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WPS_DEBUG', true );

This will log any PHP notices, warnings and errors to the log file along with information about activities and events related to the search engine. The log file typically resides in wp-content/debug.log.

For additional debugging options, please refer to this extension’s Debugging section of the API documentation.

How to Test for Plugin and Theme Conflicts ↑ Back to top

Issues are often caused by incompatible themes, conflicting plugins, incompatible customizations or even syntax errors in source files (the latter are most often found in badly coded templates or customizations).

To find out what exactly is causing issues that stop the search engine and its features from working, please read the section How to Test for Plugin and Theme Conflicts where steps to discover the causes of conflicts are detailed.

Product images are missing ↑ Back to top

When you use live filters and the product images of the results are missing, then this is most likely due to a lazy loading implementation that is not compatible. Most lazy loading is coded in a way that is incompatible with image elements that are added dynamically on a page, and thus they fail to pull in the images after the live filter has found its matches. The recommended solution when this happens is to simply disable lazy loading of images.

General Plugin and Theme Compatibility ↑ Back to top

Where live filters are used, lazy loading provides no advantage as the products and their images are already loaded dynamically, according to the visitors choices. For those implementations of lazy loading that are actually compatible with dynamically built pages, there should be no issues though.

As of version 2.10.0, the search engine extension provides an API action that allows plugins and themes to be compatible with its live filters to selectively disable lazy loading. Plugins and themes that wish to be compatible, should listen to the woocommerce_product_search_signal_filter_response action and disable their lazy loading features during the request when this action is invoked.

Jetpack ↑ Back to top

Lazy Loading for images provided via Jetpack is fully compatible with WooCommerce Product Search as of version 2.10.0. If you are using a previous version, please update. Jetpack’s lazy loading for images can be turned on or off under Jetpack > Settings > Performance & speed using the option Enable lazy-loading for images.

Showing the lazy loading option in Jetpack
Jetpack’s lazy loading for images is compatible with WooCommerce Product Search’s live filters.

The7 ↑ Back to top

This theme provides a lazy loading option which should be disabled.

The7 > Theme Options > Advanced > Performance > Images lazy loading

Under Theme Options > Advanced > Performance, disable the option Images lazy loading.

Strange characters or corrupted output ↑ Back to top

In some cases it might be necessary to turn off accurate optimization when live filters are used. You will recognize that when you see strange characters in your product titles or descriptions after a live filter has been applied. Also when the output is corrupted (odd formatting), this might also be related to accurate optimization.

To solve this, go to WooCommerce > Settings > Search > General and disable the option “Use accurate optimization”. Save and try to apply a live filter. If there are further problems with the output, also disable the option “Optimize responses for filter requests”. Further details on these options are on the General settings documentation page.

Product attribute links don’t work as expected ↑ Back to top

The live attribute filters from the Product Filter – Attributes widget, the [woocommerce_product_filter_attribute] shortcode or the woocommerce_product_filter_attribute() function will produce links to product attribute archives when the style used is List or Inline.

When you try to visit these links and do not get the expected results, i.e. an archive page showing products that have the desired attribute, then you must enable archives for the product attribute in question.

To enable archives for a product attribute, go to Products > Attributes, edit the desired attribute and check the option Enable archives? – then go to Settings > Permalinks and click the Save Changes button.

The filters do not update the products displayed ↑ Back to top

It is important that the template used to display products (shop page template, product archive template) applies the appropriate CSS classes to the containers:

  1. The container of the products shown on a shop page or product archive must have the .products CSS class applied. An alternative class can be specified using widget settings or parameters passed to the shortcode or API function, but we recommend to use the default class for consistency.
  2. The container for individual products displayed on the shop page or a product archive must have the .product CSS class applied. As with the above, there are settings that allow to specify an alternative although we also recommend to use the default again.

For the settings mentioned, please refer to the Product Filter – Search widget, the [woocommerce_product_filter] shortcode or its equivalent API function.

Indicative of these issues are the following browser console messages that would be displayed if the system cannot locate the corresponding containers:

  • Could not find the general Products Container, expected the selector .products
  • Could not find the individual Product Container, expected the selector .product

The filters show duplicate translated terms with WPML ↑ Back to top

If you get duplicate entries from translated terms in your live filters, from the Product Filter – Categories widget, the Product Filter – Attributes or their shortcode equivalents, then you must enable the following option in WPML:

Go to WPML > Languages > Make themes work multilingual and enable the option Adjust IDs for multilingual functionality.

Combinations of filters are not applied ↑ Back to top

When you use the Product Filter – Search widget or the [woocommerce_product_filter] shortcode together with our live filter Widgets or Shortcodes, the widget’s option Update the Address Bar must be enabled / the shortcode’s update_address_bar attribute must be left at its default or set to "yes".

Filters and issues with site hosted on WP Engine ↑ Back to top

If you see inconsistent results when you apply filters and your site is hosted on WP Engine, you need to disable object caching.

Go to the Utilities section of your WP Engine dashboard, scroll down to Cache options and under Object caching click Disable and then click Save.  Now click Clear cache under Clear page cache.

It can take a few minutes for the changes to take effect, also make sure to clear your browser’s cache.

Filters and issues with site hosted on SiteGround ↑ Back to top

If you are using the SG Optimizer plugin, there might be issues in some cases with inconsistent results when filters are used due to incompatible caching. To circumvent the issue, you can exclude the relevant pages from caching using the option Exclude URLs. Add the URLs of relevant pages there, for example the shop page if live filters are used.

Filters and issues with widgets using W3 Total Cache ↑ Back to top

Object Cache ↑ Back to top

In order for live filters to be able to function properly with W3TC’s object caching enabled, the cache group related to widgets should specifically be left out of the caching. This is done by adding widget under Performance > Object Cache > Non-persistent groups:

As this is not particularly related to the search engine’s filters, adjusting this is even useful when you have other widgets whose content changes according to the context.

Minify ↑ Back to top

All CSS styles and JS scripts used by the WooCommerce Product Search search engine are already minified and can be safely excluded in order to keep the live filters working. Under Performance > General Settings, go to the Minify section and choose Manual mode:

Then go to Performance > Minify and under Advanced section add the following entries in Never minify the following JS files:

wp-content/plugins/woocommerce-product-search/js/selectize/selectize.min.js
wp-content/plugins/woocommerce-product-search/js/jquery.ix.typewatch.min.js
wp-content/plugins/woocommerce-product-search/js/price-slider.min.js
wp-content/plugins/woocommerce-product-search/js/product-filter.min.js
wp-content/plugins/woocommerce-product-search/js/product-search.min.js
wp-content/plugins/woocommerce-product-search/js/selectize.ix.min.js

Also add the following entries under Never minify the following CSS files:

wp-content/plugins/woocommerce-product-search/css/selectize/selectize.min.css
wp-content/plugins/woocommerce-product-search/css/price-slider.min.css
wp-content/plugins/woocommerce-product-search/css/product-search.min.css
wp-content/plugins/woocommerce-product-search/css/storefront.min.css

The entries assume the standard plugin directory structure is used: wp-content/plugins.

If you are using customized plugin folders, adjust the paths accordingly.

Clicking the search button or hitting Enter leads to no products found ↑ Back to top

When you use the Product Filter – Search widget make sure that the option Update the Address Bar is enabled. When you use the [woocommerce_product_filter] shortcode, do not specify the update_address_bar attribute or set it to "yes".

Does it work with Elementor? ↑ Back to top

Yes. Here is a template of a custom shop page built with shortcodes and Elementor: WooCommerce Product Search Elementor Shop Example

Download and unzip the file. To use the template, go to Pages > Add New > Edit with Elementor > Add Template …

Then click the icon to import a template and choose the extracted file WooCommerce-Product-Search-Elementor-Shop-Example.json

Finally insert the template …

Now you have a fully customizable page built with the extension’s shortcodes, including live search and filters.

I have another question … ↑ Back to top

Have a question before you buy? Please fill out this pre-sales form.

Already purchased and need some assistance? Get in touch with the developer via the Help Desk.

WooCommerce - the most customizable eCommerce platform for building your online business.

Back to the top