
Live Ajax product search on the shop, showing matching products with their images and prices as the customer types.
Product Search for WooCommerce adds a fast, live Ajax product search to your WooCommerce store. As a shopper types, matching products appear straight away in a dropdown beneath the search box, complete with the product image, the current price and a direct link to the product page. No page reloads, no waiting, no hunting through category menus.
Search is where buying intent is highest. A shopper who reaches for the search box has already decided they want something specific. If that search is slow, or returns blog posts and pages alongside products, or makes them load a full results page before they can tell whether you stock what they want, a good proportion of them simply leave. This plugin is built to make that moment quick and obvious.
WordPress ships with a search built for a blog, not a catalogue. On a WooCommerce store it causes a number of familiar problems:
LIKE '%term%' query against the posts table, which cannot use a database index. On a catalogue of any real size that means scanning every row, every time.Product Search for WooCommerce replaces that experience with results that appear as you type, restricted to published products, and drawn from a purpose-built index rather than from a scan of your posts table.
Rather than querying WordPress tables on every keystroke, the plugin maintains its own search table containing just the fields it needs from your published products. That table carries a MySQL FULLTEXT index across product titles, descriptions and short descriptions, so a search is answered by an indexed lookup rather than a full table scan.
Every word a shopper types is required and wildcarded, so partial words match as they type: typing “hood log” will find “Hoodie with Logo” before the shopper has finished either word. When a full-text search cannot help, for example with very short words or common stop words that MySQL does not index, the plugin automatically falls back to a broader title match so those searches keep working instead of silently returning nothing.
Results are ordered by relevance, so the closest matches come first rather than arriving in whatever order the database happened to return them.
You choose how many products appear before the More button, anywhere from one to a hundred.
The search field is a proper accessible combobox, not a text box with a list stuck underneath it. That means:
aria-expanded, aria-controls and aria-activedescendant kept in step as the shopper moves through the results.Customers who navigate by keyboard, and customers using assistive technology, get the same fast search as everyone else.
Place the search form with a single shortcode:
[product_search_for_woocommerce]
Drop it into a page, a post, a block widget, a sidebar or a template. You can use it more than once on the same page and each form works independently, with its own results and its own paging. The shortcode accepts optional label and placeholder attributes if you want per-instance wording.
Assets are only loaded on pages that actually contain a search form, so the rest of your site is not asked to download JavaScript and CSS it will never use.
Settings are organised into four sections: General, Search Field, Results, and Index & Status.
The Index & Status section reports the health of the search index in plain language:
Two maintenance tools sit alongside it. Rebuild search index re-reads every published product in batches with a live progress bar, so it is safe on large catalogues instead of timing out. Clear cached results drops cached search responses if a change is not showing on the shop yet. Both update the status readout as soon as they finish, so you never have to guess whether the thing you just clicked worked.
The index follows your catalogue without being asked. Products are added or updated when saved, and removed when trashed, drafted, made private or deleted. Untrashing or publishing a scheduled product puts it straight back in. This works whether the change came from the WordPress admin, a CSV import, WP-CLI, cron or the REST API.
Prices and images are stored as raw values and rendered at the moment a search runs, which means changing your store currency, tax display or thumbnail size takes effect immediately, with no reindexing required.
The plugin exposes filters for the behaviour most likely to need tuning:
ajax_search_index_batch_size — products handled per indexing batch.ajax_search_min_token_length — shortest word that may take part in a full-text match.ajax_search_cache_ttl — how long a search response stays cached, in seconds.Markup is clean, class names are predictable, and the frontend stylesheet is small and easy to override from your theme.
Product Search for WooCommerce makes no external requests. It does not call home, does not load remote scripts or fonts, does not track your shoppers and does not send any data anywhere. Everything runs on your own server, against your own database.
Every string in the plugin is translatable, and a current POT file ships in the languages folder.
If you remove the plugin, it removes its own search table, its options, its cached search responses and its scheduled task. Multisite installs are cleaned up site by site. Nothing is left behind in your database.