ES
← Back

Opción EcoIndependent Consultant2026

Site search that finds the right products

Shop owners search by scent, but the store's search ignored product variants. I changed the KPI, fixed the search and measured the effect.

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

97.7%variant coverage, from 6.5%
58.6%search → add to cart, from 45.9%

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:

~109searches per day
1.4%of scent searches returned zero results
1 of 21"ruda" products actually found

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.

6.5%variant coverage at baseline (26 of 399 products)
49%of probe terms found nothing at all

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?CostRisk
A. Custom search hookYes$0, ~50 linesLow, easy rollback
B. Paid search pluginYes, plus typosAnnual licenseReplaces the theme's search; renewals
C. Scent list in product textYes$0Goes stale; ERP sync may overwrite it
D. Convert to global attributesNo, not alone$0, large migrationHigh 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.

97.7%variant coverage (390 of 399 products)
0probe terms with no results
100%coverage of products in stock (weekly check, 10 Oct)

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.

← All projects