[ Case study ]
Site search returned keyword soup: shoppers searching a fabric name or a room type hit empty results, and the merchandising team compensated with hand-built landing pages that went stale. Long-tail products were effectively unfindable.
CLIENT a furniture retailer with a deep long-tail catalog — FOCUS Index the catalog into a search engine worth querying
Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.
Furniture retail lives on the long tail: the retailer stocks thousands of SKUs across sofas, storage, tables, and fabrics, where any given product sells rarely but the catalog collectively sells constantly. Buyers arrive with missions, not model numbers — a linen two-seater under two meters, a walnut desk for a small room. The commerce platform's native search matched title strings, and the merchandising team answered with hand-built landing pages that multiplied and went stale. The catalog existed; findability didn't.
Site search returned keyword soup: shoppers searching a fabric name or a room type hit empty results, and the merchandising team compensated with hand-built landing pages that went stale. Long-tail products were effectively unfindable.
We proposed indexing the catalog into a headless search engine worth querying, with attributes normalized once — materials, dimensions, room types — so queries match reality instead of title strings. Facets would be built from how the merchandiser described shopping missions: room first, then material, then size, with counts that stay honest under filtering. A headless frontend would present it all fast. Crucially, the merchandiser's curation survives: pinned results override the engine where set, and the override list lives on a dashboard rather than buried.
Just as important is what we ruled out, and why:
The catalog synced into a headless search index with attributes normalized (materials, dimensions, room), so queries match reality instead of title strings.
Filters were designed from how the merchandiser described shopping missions — room first, then material, then size — with counts that stay honest under filtering.
Merchandiser-pinned results override the engine where set, and the override list is visible on the dashboard rather than buried.
Delivered by the systems pod — 2 engineers over 12 weeks, with working increments reviewed with the client every week.
Obstacle
Unit inconsistencies between cm and inches in source data cost a full reindex cycle — dimensions had been normalized at the search sync instead of the ERP sync step.
Handled: We moved normalization upstream to the ERP sync, wrote unit rules once at the source, and reindexed once cleanly rather than patching the search layer forever.
Obstacle
Full-catalog indexing kept hitting the commerce platform's API rate limits, stretching reindex windows past the merchandiser's patience during launch week.
Handled: We switched to scheduled delta syncs with a nightly full pass, so drop-day edits land in minutes and the platform's limits stopped dictating the cadence.
The headline: search-to-product-page progression for non-brand queries, over the 8 weeks after launch — 22% → 47%, read from Site search analytics. A second check: long-tail product pages receiving organic entrances at +16%.
The landing-page treadmill stopped: the merchandiser builds one curated page when she has something to say, not twenty to compensate for a search engine. Shoppers find the linen sofa by describing the linen sofa. Her curation is now an instrument she tunes weekly on the dashboard — pinning is a lever, not a workaround — and long-tail products earn entrances she previously assumed were impossible. The team's weekly review moved from rescuing stale pages to deciding what deserves featuring.
The result was read from Site search analytics against the pre-engagement baseline over the stated window, with a guardrail check on long-tail product pages receiving organic entrances. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.
What we would do differently
We would have normalized dimensions at the ERP sync step, not the search sync — unit inconsistencies (cm vs inches) cost a reindex cycle.
[ Related service ]
[ Related builds ]
3.1% 4.6%Checkout conversion rate, the two months after cutover versus the two months before, like-for-like traffic
−87% 0Gift-checkout failure reports, in the two gift seasons after launch versus the two before
[ Next step ]
Next case study