NEXSUM_LABS
  1. Home
  2. Work
  3. A furniture retailer made 8,000 products findable without making them slow
Book a call

[ Case study ]

FurnitureHeadless frontendHeadless search indexCommerce Platform APIsEdge caching

A furniture retailer made 8,000 products findable without making them slow

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

Headless CommerceEcommerceHeadless CommerceFurnitureRepresentative example
Client
a furniture retailer with a deep long-tail catalog
Industry
Furniture
Engagement
12 weeks — systems pod — 2 engineers
Service
Ecommerce / Headless Commerce
Headline outcome
Search-to-product-page progression for non-brand queries, over the 8 weeks after launch: 22% → 47%, read from Site search analytics

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.

Where they started

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.

What it was costing

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.

What they could see

  • Shoppers searching a fabric name or a room type hit empty results — the engine matched titles, not what products are.
  • The merchandising team maintained dozens of hand-built landing pages compensating for search, and most were quietly out of date.
  • Long-tail products received effectively zero organic entrances; the same fifty bestsellers absorbed all discovery traffic.
  • Filtering across materials, dimensions, and room types — the actual shopping behavior — didn't exist in any trustworthy form.

The constraints we worked inside

  • The commerce platform's native search was fixed; discovery had to improve around it.
  • Faceted filtering across materials, dimensions, and room types was the actual buyer behavior.
  • The merchandiser curates featured results — curation had to survive the new search.

What had been tried before

A search app from the platform's marketplace was installed and tuned for a fortnight with synonyms and boost rules.
Synonyms patch vocabulary, not structure; without normalized attributes, a query for a 160-centimetre sofa still couldn't meet products stored with different units and unlabeled materials.
The merchandising team systematized the landing pages into a spreadsheet-driven publishing routine, one page per shopping mission.
Every new SKU made the routine bigger and every price change made it staler; the pages were compensating for search, and compensation doesn't scale past dozens.

What we proposed

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:

  • Migrating the whole storefront to a platform with native faceted searchThe platform swap would have spent the entire budget and timeline on a move the search problem never required, while the merchandising team relearned everything at once.
  • Layering a third-party search widget over the existing themeA widget can't own facets, curation, and page speed together; it would have been the marketplace app again, with better marketing and the same structural ceiling.

How the work ran

01Index the catalog into a search engine worth querying

The catalog synced into a headless search index with attributes normalized (materials, dimensions, room), so queries match reality instead of title strings.

02Build facets around buyer behavior

Filters were designed from how the merchandiser described shopping missions — room first, then material, then size — with counts that stay honest under filtering.

03Keep curation in the loop

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.

The stack, and the reasoning

Headless frontend
Faceted browsing is interaction-heavy and performance-sensitive; a headless layer let us build the filter experience without dragging the platform's theme along.
Headless search index
The catalog synced into attributes that answer buyer questions — room, material, size — instead of keywords that answer title strings.
Commerce Platform APIs
Products, pricing, and stock still live in the platform; the APIs keep the index fed so the search layer follows the catalog rather than shadowing it.
Edge caching
Faceted pages generate endless URL combinations; edge caching absorbs that fan-out so the long tail stays fast enough to actually be visited.

What went wrong

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.

How we worked together

Cadence
A Wednesday working session with the merchandiser — facet design one week, curation review the next — plus async test links she graded against real shopping missions.
Client side
The merchandiser owned how shopping missions were described and which results get pinned; one developer from their side watched the platform APIs.
Decisions
Facet hierarchies were settled by walking actual searches: if the room-then-material path failed a real mission, the hierarchy changed, not the shopper.
They provided
Catalog exports with attribute samples, the landing-page inventory as mission evidence, API credentials, and weekly merchandiser hours for facet reviews.

What changed

The headline: search-to-product-page progression for non-brand queries, over the 8 weeks after launch22% → 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 they own now

  • The search index configuration and its full sync pipeline under the retailer's own accounts.
  • The facet taxonomy documentation, written from the merchandiser's mission interviews.
  • The curation dashboard with pin rules, so overrides stay visible and reviewable.
  • The delta-sync schedule and unit-normalization rules at the ERP layer, documented for their developer.
  • Search analytics views tracking non-brand query progression for the weekly review.

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.

EcommerceHeadless CommerceFurnitureHeadless frontend

Next case study

A 40-SKU home goods retailer replatformed to Shopify without a launch-week outage