Product Search for WooCommerce

Product Search for WooCommerce

0/5 (0 ratings) 10 active installs Updated Aug 9, 2026
Live Ajax product search on the shop, showing matching products with their images and prices as the customer types.

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.

Why the default WordPress search is not enough for a shop

WordPress ships with a search built for a blog, not a catalogue. On a WooCommerce store it causes a number of familiar problems:

  • It searches every post type at once, so blog posts, pages and products all compete in the same list.
  • It shows a plain list of titles. No product image, no price, nothing that helps a shopper decide.
  • It requires a full page load before the shopper sees a single result.
  • It runs a 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.

Built on a dedicated search index

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.

What your customers see

  • An instant dropdown of matching products, updated as they type.
  • The product image, so items are recognisable at a glance. Optional.
  • The current price, formatted in your store currency and tax settings. Optional.
  • A More button to page through additional matches without leaving the page.
  • Your own wording for the placeholder text, the loading message and the no-results message.
  • An optional Search button, for shoppers who prefer to submit rather than pick a suggestion.

You choose how many products appear before the More button, anywhere from one to a hundred.

Keyboard and screen reader support

The search field is a proper accessible combobox, not a text box with a list stuck underneath it. That means:

  • Arrow keys move up and down the results, wrapping at either end.
  • Home and End jump to the first and last result.
  • Enter opens the highlighted product.
  • Escape closes the dropdown.
  • Result counts, empty results and errors are announced to screen readers through a live region.
  • The list uses correct listbox and option roles, with 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.

Use it anywhere, as many times as you like

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.

A settings screen that tells you what is going on

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:

  • How many products are indexed, against how many published products exist.
  • When the index was last rebuilt in full.
  • Whether the full-text index is present and active.
  • Which database schema revision the install is on.
  • Whether a background data conversion is running, finished, or stalled.

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.

Keeps itself in sync automatically

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.

Fast, and considerate of your server

  • Search responses are cached briefly, so repeated searches for the same term are served without touching the database. The cache clears itself automatically whenever a product changes.
  • Only the columns actually shown to the shopper are fetched, rather than shipping full product descriptions to the browser and discarding them.
  • Indexing runs in batches, in the background, so a large catalogue cannot exhaust a single request.
  • Requests are cancelled when a newer keystroke supersedes them, so a slow response cannot overwrite a fresher one.

Built for developers

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.

Privacy

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.

Translation ready

Every string in the plugin is translatable, and a current POT file ships in the languages folder.

Clean uninstall

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.

Key features:

  • Live Ajax product search with results as you type
  • Dedicated search index with MySQL FULLTEXT, plus an automatic fallback for short and stop words
  • Relevance ordered results
  • Show the product image in search results
  • Show the product price in search results, in your store currency and tax settings
  • Configurable number of results, with paging for the rest
  • Customisable placeholder, loading and no-results text
  • Optional search submit button
  • Full keyboard navigation and screen reader support
  • Use the shortcode as many times as you like on one page
  • Assets loaded only on pages that contain a search form
  • Automatic index sync on product save, trash, untrash and delete
  • Batched index rebuild with live progress
  • Index health and diagnostics screen
  • Built-in response caching, cleared automatically on product changes
  • No external requests, no tracking
  • Translation ready
  • Complete uninstall cleanup, multisite aware

Premium features:

  • Show product rating in search results
  • Show product description in search results
  • Show product category in search results
  • Show product tags in search results
  • Search products by SKU
  • Display a “Featured” label
  • Display an “Add to Cart” button