WooCommerce Product Search

WooCommerce Product Search is the essential extension for every WooCommerce store!

Your best Search Experience for WooCommerce

The perfect Search Engine for your store helps your customers to find and buy the right products quickly. Your customers will love your store for this, because it makes getting to the products they want to buy easier than ever.


Live Search

The Live Search Field allows customers to find products as they type, along with images, price information and they can add the product directly to the cart. Type, click & buy … it’s that easy!

Live Filters

Our live filters take care of showing updated results on the shop page while your customers search by keyword, price range, use categories, tags or any product attributes to narrow down the results.


Experience Easy Shopping

With a no-fuzz automated setup that integrates smoothly with popular themes, Storefront and child-themes included, your customers will have a truly delightful shopping experience. Let them enjoy how easy it is to find the right thing in your store.


Search Statistics

Gain valuable insights on what your visitors are searching in your store. See real-time and historic product search activity and relate it to your marketing efforts.


Business Insights

Discover what your customers are searching for, what they can find and what not. Our reports will help you to reveal what products your visitors are searching for and optimize your store’s offering to meet current and trending demands.


Automated Integration

The Search Engine takes care of providing the best search results on the front end and back end. Our advanced search algorithms integrate seamlessly with your store and the administrative dashboard.


Search Index

The Search Indexer will automatically index all products in your store and keep everything up-to-date for you. Even when you add, modify or remove products and related aspects, you don’t need to do anything to have your store fully indexed, products ready to be found.


Visually Intuitive Filters

An image says more than a thousand words … create a visually appealing search experience for your customers! Add thumbnails used with live product filters for product categories, tags and attributes. Filter by color, size, brand … showing the actual color, intuitive icons and logos.


Relevant Search Results

Search Weights based on keyword matches present more relevant results to your customers. The relevance of your store’s product search results is substantially improved, with powerful controls that introduce Search Weights to WooCommerce.


Powerful Back-End Features

This extension is smoothly integrated with your WooCommerce store and WordPress Dashboard.

From important business insights provided by its search reports, to optimized back-end product search results powered by the extension’s Search Engine – this essential tool provides everything you need to be in control.


Your little Helper

The built-in Assistant helps you to add live product filter widgets to sidebars in an instant. It shows you which filters are already present and suggests to add those that aren’t. Simply click and customize them later if needed.



Your customers will love the live Product Search Field that shows results while you type and lets you add items directly to the cart. It automatically replaces the standard product search field if desired, and it is also available as a widget to use in sidebars.

Flexible live filters update your shop page as the customer types, indicates a price or chooses from product categories, tags or any product attributes.


All live search facilities are available as WordPress shortcodes. In addition to these, we include facilities to render search results on any page. This even allows you to create specialized shop pages!



The extension is tested and integrates with lots of popular themes and requires no or very little CSS adjustments in most cases. To make things very easy for you, we have included a section where you can add your own CSS rules. And you’re always welcome to ask for our help!



As with the widgets and shortcodes, we provide a very easy to use API that gives you access to all search and filtering facilities, so you can effortlessly include them in templates.



An example of the live Product Search Field in action. Search results appear while the customer types.

An example with a live Product Search Filter in action. Your shop page updates automatically, showing relevant and matching results, based on the customer’s choices and without the need to reload the page.

Live category filters can be expanded to reveal child categories on hover and make navigation easy. On touch-enabled devices, tapping a category’s expander shows its children.

Add intuitive thumbnails used with live product filters for product categories, tags and attributes, showing the actual colors, intuitive icons and logos.

Customers can find products easily with live Product Filters showing intuitive thumbnails.

With WooCommerce Product Search you will gain valuable insights on what your customers are searching for. Discover the current search performance and trends to optimize your store.

Discover what exactly your customers are searching for. Do you offer what your customers want to buy? WooCommerce Product Search helps you with valuable insights.



Please visit the live demo to try it out.


The documentation for this extension is here.


This premium extension is available exclusively on WooCommerce.com, head over to the product page: WooCommerce Product Search


198 Responses to WooCommerce Product Search

  1. Acart June 4, 2024 at 12:49 pm #

    The version 5 has compatibility issues with Pantheon server.

    Some of the folders for caching point to wp_content folder, which is writable in Pantheon. Some of the folders have filters, which allow us to move them, but not all of them. For example .scheduleworkerlock does not have filter.

    Can you make sure that all of those functions that write to wp_content have filter so we can move them to writable folders?

    • Kento June 6, 2024 at 1:27 pm #


      Regarding the lock file you mention, good catch, we’ll add a filter for it. As you mention the wp_content folder, note that we don’t use that hardcoded but the WP_CONTENT_DIR constant instead. But of course if you need to change the target directory, the filters will be appropriate.

      If you see any other instances where you think an added filter would be viable, please let us know. The one above will be added to the next release.

      Thanks for reaching out, please feel always welcome to provide any feedback and suggestions like that.


  2. KS October 3, 2023 at 3:50 am #

    I love the Tag filter with the Cloud showing customers available Tags. They can be clicked, also multiples.
    I use tags to keyword products which are not selectable product attributes.

    So Toys could be described with tags as “Car”, “Wood”, “modern”, “Classic”, “Audi”.

    All products are shown with ANY of the selected tags and not only with ALL of the selected tags. So if a customer selected Audi, Car, Wood the plugin would show:
    – ALL products with the tag wood, also trains, airplanes, etc.
    – ALL products with the tag Car even if they have the tag “metal” or “Porsche”
    – ALL products with the tag Audi, even if they have tags like metal or are not even cars.

    Allow to have the multiple tags combined with AND instead of OR
    use Live filtering of tags so only tags are shown which work in combination of the selected tags, e.g.
    Selecting Audi as a tag would make other Brands disappear as Products would only have one Brand as a tag. Same with Metal vs. Wood.

    So it would give the customer a much finer search without having to type and guess keywords.

    The search bar function (which is replaced through this plugin) actually uses that logic when searching the tags.

    • Kento October 4, 2023 at 7:20 pm #

      Hi KS,

      Many thanks for the detailed explanation! Yes, I think what you describe makes sense when you want conjunctive logic applied to the chosen tags to narrow down products that match all of them, instead of any. We are currently working on enhancements to the extension that will allow to do that. I can’t give you an exact ETA for it though, as it’s part of quite a substantial feature set that will be released.

      As an alternative, what I would often suggest instead of using tags, to switch to proper product attributes.

      For example, for the tags you mention, it could make sense to define new attributes such as “Type”, “Material”, “Style”, “Brand”:

      – Type : Car, Train, Ball, Tracks, Figurine, …
      – Material : Wood, Plastic, Aluminum, Steel, …
      – Style : Modern, Classic, …
      – Brand : Porsche, Audi, …

      The advantage of this approach is that the number of tags is reduced and most often the need to use tags is even eliminated. And by combining terms under a single product attribute, it’s naturally possible to select one or more disjunctively, while restricting the set of matching products by using multiple combinations of different attributes.

      So this approach could help you to reorganize your tags into product attributes and make it easier to handle. In any case, the enhancements to the extension’s features are also on their way, as we would like to provide a lot more flexibility when it comes to handling those aspects.


  3. Olivier Janssen March 13, 2023 at 12:02 pm #


    I purchased your product search plugin.
    I added the attribute filter to my homepage.
    When I’m logged into the site as admin it works fine. However when I visit the store as a regular visitor the dropdowns are “disabled”.
    Can’t seem to find the setting to make them active.
    Any suggestions?

    • Kento March 13, 2023 at 10:21 pm #

      Hi Olivier,

      You might have to adjust settings related to caching, it appears that your visitors are served a different version of the pages than your admin. Please Open a Support Request and our team will take it from there.


    • KS October 5, 2023 at 12:19 am #

      Hi Kento,

      thanks for the great response and update. Yes, I had thought about attributes but since I also need them to make Variations as Variations are created from Attributes.
      Ok, I only have one set of attributes to make Variations and copy existing products to not having to recreate everything it might work in theory for me.

      But also, this means I would have to organise all tags in some kind of main attributes like colour. This might sound easy for my easy example but as I use tags as keywords to describe my products it would be hard to put every keyword under a specific attribute.

      So I am eagerly awaiting news when an update is on the doorstep. Maybe you can sign me up for some beta testing. it’ll take me 5 minutes to find the first issues

      • Kento October 10, 2023 at 12:26 pm #


        Indeed, it seems that in your case it makes sense to work with both. I would not recommend to try to force all tags into some attribute, only those that can be grouped sensibly.

        If you’d like to share a link to the site, that would be interesting to see for context, feel free to do so if you think it’s appropriate.

        And many thanks for offering to participate in beta testing, we always appreciate that! I’m taking note to give you early access when possible.


  4. Robert Henry September 20, 2022 at 8:17 pm #


    I am using the WooCommerce Product Search using the following shortcode; [woocommerce_product_search]

    I do not want the live search that causes live search results from the search field. How can I turn that functionality off?

    Please get back.


    • Kento September 21, 2022 at 10:24 am #

      Hi Rob,

      You can use a very large number with the delay parameter so that it takes long until the live search kicks in – the parameter is documented on the shortcode’s documentation page.

      If you need further help, please use the Support section where our team will be happy to help you further.


  5. Rck August 1, 2022 at 5:41 pm #

    Hello! I need the search results to show the products that are in stock first and then show the out of stock products.

    I would like to know if there is any snippet that I can use for this. Thank you very much.

    • Kento August 2, 2022 at 10:13 am #


      You could achieve this by using the pre_get_posts hook (it should fire late to allow others hooked on the action to do their thing before). WooCommerce has a lookup table $wpdb->wc_product_meta_lookup with the stock_status column that you could use to apply sorting before the results are presented.

      I’m not aware of any particular snippet I could point you to that would already to this for you, so you’d have to figure the code out yourself or hire a WooExpert to do the customization for you.


    • Kento March 24, 2022 at 8:35 pm #


      Thanks for asking! We don’t have current plans to change or shorten these in the short term, although there will be a revision related to overall improvements. In any case, the length of the URLs produced are not an issue for SEO or other aspects, as you can easily see with other sights that use really large URLs (ebay, google, amazon, …).


  6. ProServ March 18, 2022 at 1:43 pm #

    Oh, sorry for my last message…
    I’ve found my problem. I’ve openned a div and close it with form.
    Already work fine. You can delete my two post.

    • Kento March 24, 2022 at 1:14 pm #

      Thanks for following up and great to hear that you found the cause. Thanks for using the search engine!

      By the way, if you need help later on, please submit a ticket and our team will be happy to help you further.

  7. ProServ March 18, 2022 at 10:51 am #

    This extension is perfect and has a lot of features.
    There is only one problem with this, when select a filter, it duplicates the footer on the last find element (last li).
    You can try it : https://poc.aprocom.fr/categorie-produit/funeraire/

    I’ve tried with shortcode, function or sidebar.
    I don’t understand why footer is duplicate. I not use a theme (own theme) and all the HTML structure is propagated with WooCommerce.

  8. Katrina January 5, 2022 at 1:05 pm #

    Hello. Consider modifying your JS for updating the header element contents on the shop page when filtering. WooCommerce provides the filter hook ‘woocommerce_show_page_title’ inside of the header element in the archive-product.php file. This allows theme developers to turn off the title on the page altogether. I’ve done this for my theme and moved it to the page sidebar – my shop page has a two-column layout. But product-filter.js (line 302) targets and inserts the entire header element and shows it anyway. This results in the title displaying where it was previously disabled using the WooCommerce filter hook as well as my sidebar location and breaking the page layout. As additional filters are applied and cleared using the plugin, this behavior persists adding additional header elements with the page title that do not clear unless you navigate away from the page.

    • Kento January 14, 2022 at 7:06 pm #

      Hi Katrina,

      The system will update the header element where it is located. Could it be that in your case you have it in two positions? Do you have an example page where we could see what you are describing?


      • Katrina January 14, 2022 at 9:47 pm #

        Hello Kento,
        Thanks for taking time out of your busy schedule to reply.
        Technically, I do have it in two positions because I am not overwriting the archive-product template, only using the hooks provided.
        So I passed false to the woocommerce_show_page_title filter so that the title does not display, but the title’s header wrapper markup is still on the page. See the WooCommerce docs for reference here – https://woocommerce.github.io/code-reference/files/woocommerce-templates-archive-product.html#source-view.33. I did not set it’s selector to display none or anything, since I’m not using it to show anything.
        My theme has the page title in the left sidebar above the widgets. So I use the woocommerce_page_title function to get the page title and place it there. For consistency, I duplicated the woocommerce header element and place it inside there.

        I’m no jquery expert, but I believe the code started on line 302 of product-filter.js in your plugin, is replacing the html content of the header and showing the header regardless of it’s current state. Here’s the code:
        var header = $( data ).find( containers.header );
        if ( header.length > 0 ) {
        $( containers.header ).replaceWith( header );
        $( containers.header ).show();
        } else {
        $( containers.header ).html( ” );
        $( containers.header ).hide();
        This will be display the header even if I set it’s CSS to display none because header.length will always return greater than 0 unless the header element is not used or the template is completely overwritten.

        I’m unsure of how it works exactly, but in my theme it has been making duplicate copies of the header when the queries are run and on each subsequent page load where Product Search is actively running – to include if live filters are enabled or if the URL query string has changed. I would refresh the screen and new header markup would append to the page right beneath the previous one. The only way to clear the behavior is to browse away from the page and return.
        I would have submitted this ticket on WooCommerce’s website, but I’m in an isolated development environment. If you need additional information, please let me know and I’ll be happy to see if I can get some screenshots of the behavior.

        • Kento January 20, 2022 at 3:31 pm #

          Hi Katrina,

          You’re very welcome, these are indeed busy days but I hope that the following will be helpful.

          What you describe is in line with what I thought. My suggestion would be based on your correct observation:

          “… unless the header element is not used or the template is completely overwritten.”

          Indeed it would be appropriate to override the default template from your theme in a child theme where the superfluous header instance(s) are removed. You should end up with that header in only one place, as you originally intend to have it.

          So, my suggestion would be:

          – override archive-product.php in your child theme where the header section is removed
          – you won’t need to use the woocommerce_show_page_title filter
          – only leave the header in the template that applies to your sidebar


          • Katrina January 20, 2022 at 6:54 pm #

            Sounds good. Thanks again for your help. Take care.

  9. Robert Garcia November 27, 2021 at 3:52 pm #

    Is there any way to speed up indexing, we have 500k products, and it is taking several hours for just 1%. Is there a way to have several threads working at once?

  10. MSA November 18, 2021 at 12:39 pm #

    I want to use this plugin in oxygen builder. Oxygen builder don’t use widget. So we have to create a template where we can place the search fields. The plugin you are providing it allows to put those search fields by widget. So let me know the possibility.

    • Kento November 19, 2021 at 12:08 pm #


      You will find the equivalent functions documented currently under Functions (please note that the link should normally be pointing to this page but due to a restructuring of the documentation the other one is active).


      • MSA November 19, 2021 at 12:55 pm #

        The link you mentioned is redirecting me to https://woocommerce.com/document/subscriptions/develop/functions/

        • Kento November 19, 2021 at 1:05 pm #

          You need to go to the first link, you’re visiting the second one I mentioned is currently broken.

          • MSA December 1, 2021 at 11:42 am #

            Hi Kento,
            We have purchased the plugin and understood the shortcode feature. In the actual shop page I placed three shortcode using oxygen builder. In the left column I placed two shortcode [woocommerce_product_search], [woocommerce_product_filter_price] and in the right [woocommerce_product_filter_products].
            The content is coming like below and ajax search is not working. Any thing we are missing?

            • Kento December 1, 2021 at 11:57 am #

              Hi there!

              Thanks for using the search engine! I can’t say much based on the screenshot, maybe it’s related to caching or some conflict (your debug.log might reveal something). But please make sure to create a ticket here and our support team will help you further.


  11. John L January 28, 2021 at 1:01 pm #

    When you do a search for a variation sku you get redirected to the product page with no variations selected. Is there a way to have the variation selected as part of the search result?

    For example when you do a search for “men-bshirt-m-orange” on your demo site “http://demo.itthinx.com/wps/” you are redirected to this page “http://demo.itthinx.com/wps/product/button-down-shirt/”. With that same search is there a way to be redirected directly to the variation like here “http://demo.itthinx.com/wps/product/button-down-shirt/?attribute_pa_color=orange&attribute_pa_size=m”?

    This way if someone searches by the sku of a variation they get to the product with the variation(s) already selected.

    • Kento January 29, 2021 at 3:33 pm #

      Hi John,

      Thanks for asking, good question. This is something we could take into account as a feature request, taking note of it 🙂


  12. Christopher October 31, 2020 at 7:55 am #

    After updating the plugin to 3+ version from 2+ version some categories (those with 500+ products) not showing up any product (the index is on 100%).

    Here is an example: https://fithealth.gr/cat/organa-gimnastikis/mikroorgana/

    • Kento November 1, 2020 at 8:23 pm #

      Hi Christopher,

      Thanks for using our software! Please create a support request here and our support team will help you further.


  13. Zack September 16, 2020 at 5:27 am #

    Thanks for this awesome plugin. However, for some reason, it will stop styling my theme’s Woocommerce product search widget if I enabled “Optimize front end product searches”. Any help would be much appreciated.

    • Kento September 21, 2020 at 9:54 am #

      Hi Zack,

      Great to hear that you like it! Regarding the option, it’s not related to styles. But you’re probably using the auto-replacement search field or the widget. Please have a look at the Themes section of the documentation and particularly the Customization section for hints on styling the containers. If you still need help after that, please create a Support request.


  14. Albin August 21, 2020 at 11:52 pm #

    Hi! Is it possible to replace the “—” sign in the price filter widget with the text “to”? I’ve looked around in the plugin editor but can’t find where the “—” is generated from?

    • Kento September 4, 2020 at 9:50 pm #

      Hi Albin, thanks for using our search engine! There are several ways of customizing the output, but please don’t approach it by editing the plugin’s code, it’s the worst thing you can do. For this case, please have a look at the woocommerce_product_search_field_product_price_html filter which you can use with a simple string replacement.

  15. Albin August 13, 2020 at 10:10 am #

    Hi! I would like to remove the “clear” text on sidebar filters, leaving only an x icon to clear the filter. Is this possible?

  16. Oshin June 29, 2020 at 7:41 pm #


    This issue, with WooCommerce Price Based on Country, also applies to WC Booster (https://booster.io/features/woocommerce-prices-and-currencies-by-country/).

    The Product Search plugin has a static method get_min_max_price located in the WooCommerce_Product_Search_Service class.
    But the problem is that it does not provide a filter to override the values. Hence, even with the API and the available filters/hooks, the developers at Booster would not be able to override the queries required to modify the min and max prices to get Booster work with Product Search, especially regarding the Product Search price filter/slider.

    There is a filter on the native WooCommerce Price Filter called woocommerce_price_filter_sql that allows to filter the sql required to get the min and max values.

    Maybe, you can add such a filter in the next update. This will make it more accessible to developers and users, and get Product Search more compatible.


    • Kento June 30, 2020 at 11:25 pm #

      Hi Oshin,

      Thank you very much for your suggestion. I think it makes sense to have such a filter for that method and we will add it in an upcoming release (if possible, it might be included in the next upcoming one).


  17. Eduardo May 6, 2020 at 8:20 pm #

    Hello, I saw comments about the integration with Woocommerce brands, does this native integration already exist or need to be customized after purchasing the plugin?

  18. Christopher November 25, 2019 at 4:01 pm #

    In version 2.17.0 search doesn’t show results when the searching term (SKU) contains a dash.

    • Kento December 2, 2019 at 7:38 am #

      Hi Christopher,

      Searching for SKUs with a dash is supported as the search engine’s indexer is aware of those, but I would recommend to also update to the latest version and make sure that you don’t have any conflicting plugins or customizations in place. You might also try rebuilding the index.


  19. Ben October 5, 2019 at 12:22 pm #

    We have purchased this plugin and would like to be able to add a filter (similar to the categories widget) for a custom taxonomy – is this possible? Is there any developer level documentation that would cover this?

    • Kento October 8, 2019 at 8:32 pm #

      Hi Ben,

      We provide the API documentation here.


  20. Robin Scott August 5, 2019 at 10:57 am #

    Hi – looking into dropping support for WC Brands (https://docs.woocommerce.com/document/wc-brands/ ) into your plugin, to add this as a filter for use in widgets – it’s basically a custom taxonomy.

    Would you be interested in a PR (I am on private repo for this btw in Woo Github – where it says to contact you here!) – or is this something you could give a quick steer on?

    • Kento August 5, 2019 at 5:38 pm #

      Hi Robin,

      I have seen many cases where simply using a product attribute was covering the need to work with brands. That’s what I would recommend to try out first before deciding to tackle an enhancement. WooCommerce Product Search also adds support for icons on attribute terms which covers the typical case where you need to display brand icons within the filter.

      If that works out for you, you won’t need to code anything, but I’d of course be interested to see how you would approach integrating it with the Brands extension if you prefer to use that. There is some limited support for custom taxonomies already built into WooCommerce Product Search which might also be helpful.


  21. Oscar September 14, 2018 at 5:22 pm #

    I’m the developer of WooCommerce Price Based on Country plugin. A customer of mine has informed me of a compatibility issue between your plugin and Price Based on Country. After reading the plugin code and running several tests, I have found the problem and the solution.

    Unfortunately, I can not apply the solution. The solution should be applied on your plugin.

    If you’re interested in integrating the two plugins, please contact me.

    Thank you in advance.

    • Kento September 16, 2018 at 8:03 pm #

      Hi Oscar,

      Thanks, sure let’s have a look, I’ll get in touch.


  22. James September 13, 2018 at 9:40 am #

    Great! That fixed it. Thanks.

  23. James September 6, 2018 at 4:13 pm #

    I have words like Café Latte in my colour section. They load initially fine but then when the extension updates the search the name comes through as Café Latte. Can you look into this?

Leave a Reply

We use cookies to optimize your experience on our site and assume you're OK with that if you stay.
OK, hide this message.

Affiliates · Contact · Jobs · Terms & Conditions · Privacy Policy · Documentation · Downloads · Useful Plugins · My Account