At a glance
Role and impact
Product, measurement and delivery as an independent consultant.
Variant coverage 6.5% → 97.7% in production, and more searches ending in the cart (45.9% → 58.6%).
Methods and tools
KPI redesignControlled probe (63 terms)GA4 events and funnelsOptions comparisonWooCommerceWordPress search hookStaging → production
The problem
The zero-result rate looked healthy (1.4%), but searches came back incomplete: "ruda" found 1 of the 21 products that carry it. Customers had no way to know what was missing.
What I did
- Replaced the KPI with variant coverage, measured with a fixed 63-term probe.
- Compared 4 options on fit, cost and risk, and chose a ~50-line search hook ($0, easy rollback).
- Set the success criteria before coding: coverage ≥ 80%, with no worse speed or zero-result rate.
Result
What I learned
The first metric I picked would have told me everything was fine. Measuring what the customer actually needed changed the problem, the solution and the definition of done.
Read the full case
Overview
THE COMPANY
Opción Eco is a wholesale aromatherapy distributor in Córdoba, Argentina: incense, candles, diffusers and essences from brands like Sagrada Madre and Aromanza, sold to shops through a WooCommerce store with about 1,400 products and 2,479 variations. I work with them as an independent consultant on the store and the company's digitalization.
MY ROLE
Product, measurement and delivery: I defined the KPI, built the measurement, compared the options, and shipped the change with AI-assisted development.
Problem space
PROBLEM IDENTIFICATION
Shop owners search the way they think: by scent. "Ruda", "mirra", "7 poderes". Each scent is a variant of a product (one incense product can come in 20 scents), and the store's default search only looked at product titles and descriptions, not at variants.
THE KPI THAT HID THE PROBLEM
The obvious metric was the zero-result rate: how many searches return nothing. I added a GA4 `search` event with the number of results, and the first week (24–29 Sep) looked healthy:
Generic words like "sahumerio" or "conos" always matched something, so searches rarely came back empty. They came back incomplete: "ruda" showed 7 results, but only 1 of the 21 products that carry it. "Mirra": 10 results for 25 products. A customer had no way to know what was missing.
THE NEW KPI
I replaced the primary KPI with variant coverage: for a search of a variant name, the share of products carrying that variant that actually appear in the results. I measured it with a controlled probe: a fixed list of 63 terms (random variant names, their short forms, and the terms real customers had searched), compared against a product export.
Hypothesis
Variant names live in a local product attribute ("Variedad") and in each variation's data. WordPress search doesn't read either. If search also matched variation attribute values, coverage should jump without touching the catalogue.
Solution space
OPTIONS COMPARED
| Fixes it? | Cost | Risk | |
|---|---|---|---|
| A. Custom search hook | Yes | $0, ~50 lines | Low, easy rollback |
| B. Paid search plugin | Yes, plus typos | Annual license | Replaces the theme's search; renewals |
| C. Scent list in product text | Yes | $0 | Goes stale; ERP sync may overwrite it |
| D. Convert to global attributes | No, not alone | $0, large migration | High effort, no search gain |
I chose A, with B as the upgrade path only if plurals and typos (8% of all zero-result searches) proved worth a paid dependency.
SUCCESS CRITERIA, SET BEFORE CODING
- Primary: variant coverage ≥ 80% on the same terms.
- Guardrails: no flood of irrelevant results, zero-result rate not worse, search speed unchanged.
- Business signal, later: search → add-to-cart and refinement rate in GA4.
Release and outcomes
STAGING
The first version had no effect: the theme (XStore) rebuilt the search query after mine and discarded it. The second version runs after the theme and adds to its query instead of replacing it. It also worked without accents ("energia limpia") and in the live search dropdown.
PRODUCTION
Live on 1 October, with the same probe re-run in production.
The 9 products still missing had no variant in stock, and WooCommerce hides those from visitors on purpose, so the search wasn't failing. The probe now reports coverage of products in stock as well.
Two weeks after launch (2–15 Oct, against 24–30 Sep), more people who searched went on to add something to the cart: 45.9% → 58.6%. Fewer searched again within a minute: 45.0% → 34.5%. The baseline was only one week, and new banners went live during the same window, so I read the cart lift as likely rather than proven.
What's next
- Plurals and typos, now the main cause of searches with no results (8%), and accents in the product page's own variant search, as separate tasks with their own KPIs.
What I learned
The first metric I picked would have told me everything was fine. Measuring what the customer actually needed (did I see all the products with this scent?) changed the problem, the solution, and the definition of done.