Native search, a plugin or a cloud service: which one you actually need (measured on 38,417 searches)
I took 30 days of searches from a real WooCommerce store and ran them through the exact logic of the search WooCommerce ships with: 4 in every 100 frequent searches would have returned zero. With that, and with what each option costs today, you can decide without guessing: when native is enough, when a plugin is, and when you need a cloud service.
"Do I need a paid search?" is the question WooCommerce store owners ask me most, and it almost always gets answered on faith: whoever sells search says yes, whoever already paid for one says yes, whoever didn't says what for.
So I measured it. Here's what came out, and below is how to get your number, which is the one that matters.
What I did
I took 30 days of searches from a real WooCommerce store — collectibles, 5,656 synced products: 55,427 searches between 7 September and 7 October 2026, 14,951 distinct terms, an average of 1,788 a day and a peak of 242 in a single hour.
Then I ran every term through the exact logic of the search WooCommerce ships with. It's no secret: the native search splits what you type into words and requires all of them to appear, verbatim, in a product's title, description or SKU. Not a letter of slack. I simulated it against the catalogue with that same rule.
To avoid counting noise, I kept the terms searched 5 or more times in the month: 1,614 terms adding up to 38,417 searches, 69% of the total. Terms typed once are mostly people half-way through typing and say nothing about your search.
The result
| Searches | Zero with native | % | |
|---|---|---|---|
| Against the whole catalogue (5,656 products) | 38,417 | 1,563 | 4.1% |
| Against in-stock products only (1,551 visible) | 38,417 | 3,388 | 8.8% |
Four in every hundred frequent searches would have landed on an empty page. And that's the good case: if your store has "hide out of stock items" switched on, native search doesn't look at them either, and in this store the rate nearly doubles.
By length of what was typed:
| Words | Searches | Zero | % |
|---|---|---|---|
| 1 | 29,031 | 1,057 | 3.6% |
| 2 | 6,736 | 369 | 5.5% |
| 3 | 2,463 | 75 | 3.0% |
| 4 or more | 192 | 62 | 32.3% |
From four words up, the built-in search falls over: one in three. Few searches in this store, but exactly the ones from people who know best what they want.
What's inside that 4%
Not missing products. These:
| What they typed | Times in 30 days | With native | What they wanted |
|---|---|---|---|
vegueta |
114 | 0 | Vegeta |
tamagochi |
26 | 0 | Tamagotchi |
golu |
16 | 0 | Goku |
majin boo |
15 | 0 | Majin Buu |
jiraya |
14 | 0 | Jiraiya |
atack on titan |
13 | 0 | Attack on Titan |
bleaxh |
13 | 0 | Bleach |
ichibanso |
11 | 0 | Ichibansho |
vegetta |
9 | 0 | Vegeta |
sanks |
8 | 0 | Shanks |
One hundred and fourteen people typed "vegueta" in a month. The store has dozens of Vegetas. The built-in search would have shown every one of them a blank page, because "vegueta" isn't spelled that way in any title.
Of those 1,563 searches, at least 853 (55%) were resolved with results, a hundred times out of a hundred, by the search the store actually runs. That's our search, so read it with that caveat. But the number above — the 4.1% — doesn't depend on us: it's the native rule against your catalogue, and you can repeat it at home.
How to get your number
If you already log your store's searches with the twenty-line logger from the zero-result searches article, you don't need to simulate anything: the resultados column stores what your search returned on every query, so as long as you run native search, that is your rate.
SELECT COUNT(*) AS searches,
SUM(resultados = 0) AS zeros,
ROUND(100 * SUM(resultados = 0) / COUNT(*), 1) AS pct
FROM wp_busquedas
WHERE creado >= NOW() - INTERVAL 30 DAY
AND termino IN (
SELECT termino FROM wp_busquedas
WHERE creado >= NOW() - INTERVAL 30 DAY
GROUP BY termino HAVING COUNT(*) >= 5
);
The "5 or more times" filter is the same one I used, so the number is comparable. And the list of what's inside that percentage, sorted by what hurts most:
SELECT termino, COUNT(*) AS times
FROM wp_busquedas
WHERE creado >= NOW() - INTERVAL 30 DAY AND resultados = 0
GROUP BY termino
HAVING times >= 5
ORDER BY times DESC
LIMIT 30;
If you don't have the log, install it today and come back in a month. Deciding without this number is deciding on faith.
The three options, and what each one fixes
There are three places your store's search can live. Prices are from today, 7 October 2026, taken from each vendor's website; always check theirs.
| Native (WooCommerce default) | Plugin (runs inside your WordPress) | Cloud service | |
|---|---|---|---|
| Typos ("vegueta") | No | Yes, the good ones | Yes |
| Synonyms ("ataque a los titanes" → Attack on Titan) | No | By hand, one by one | Yes, and usually learns them |
| Phrases ("goku figure under 30 euros") | No | No | Depends; semantic ones do |
| Where each search runs | Your MySQL | Your MySQL | Their servers |
| Examples | — | FiboSearch (100,000+ active installs), Relevanssi (100,000+), SearchWP | WildRock, Doofinder, Motive, Algolia |
| Entry price | €0 | FiboSearch $59 first year (10,000 products, 1 site); Relevanssi Premium €120 a year or €402 lifetime | WildRock €29 a month (free up to 100 products); the others, on their site |
The "where it runs" row isn't a detail. In the store above the peak was 242 searches in one hour. With a plugin, those 242 LIKE '%word%' queries over titles and descriptions run on the same database that is serving the cart and the checkout, and on shared hosting you feel it. With a cloud service your server runs none of them.
Which one you need
With your percentage in hand, the decision is short:
Native is enough if your zero rate among frequent terms is under 2% and your catalogue is small, with names spelled the way they sound. Under roughly 200 or 300 products that's usually the case: there's little, and it gets found. Don't pay for what you're not missing.
You need a plugin if your zero list is typos of words you do have — "vegueta", "tamagochi", "bleaxh" — and little else. A plugin with fuzzy search fixes exactly that, for $59 a year, and if your hosting handles your search peak, you need nothing more. What a plugin won't do: understand that "ataque a los titanes" and "attack on titan" are the same thing unless you teach it, pair by pair. Twenty synonyms is an afternoon. Four hundred is a job.
You need the cloud if your zero list contains vocabulary that isn't yours: names in another language, nicknames, ways of naming the product that aren't in your title and that you won't be able to maintain by hand; if your catalogue changes every week and today's synonyms won't be valid next month; or if your hosting already feels the peak hours. There, typo tolerance is the least of it; what you're buying is a search that understands the customer even when they don't speak like your catalogue.
And one golden rule that applies to all three: before switching search, measure with the one you have. Otherwise, six months from now you won't know whether the switch did anything.
In order, this week:
- Install the search log if you don't have it. Without it, every decision is a bet.
- Get your zero rate among frequent terms with the first query above.
- Read the top ten from the second one. Typos of your own words → plugin. Vocabulary that isn't yours → cloud. Nothing relevant → native, and move on.
If it turns out you need to pay, the guide on how to choose an ecommerce search has a comparison of every option, with prices and an honest section on when the other one is a better fit than us.
Is your store losing sales to searches that find nothing?
WildRock adds a search to your WooCommerce that understands what shoppers mean, and tells you in euros how much it generates. Free plugin, no code.
Keep reading
Your conversion rate means nothing without this
Measured today on a real WooCommerce store, 31 days and 11,044 sessions: the overall rate is 48.31%, and none of the five groups it's made of looks anything like that number. They run from 35.9% to 96.0%, split by a single field you already log. Here's why a bare percentage decides nothing, and how to split yours today, with the SQL.
My search broke for four hours overnight and only 74 zero-result searches saw it
Over 90 days and 94,645 searches, a real store logged 95 searches returning zero. 74 of those 95 happened inside the same four-hour window, overnight. It wasn't missing stock: "goku" returned zero with 179 matching products in the catalogue. Zero-result searches aren't just your customers' wish list — they're the only alarm you have.
