Shopify
Algolia
Shopify Admin API
catalog & search analytics
Audited a catalog of 1,000+ product types and restructured it into a tree no more than three levels deep, with ~95% of the catalog reachable. The audit quantified an 80× revenue-density inversion between shelf space and earning power, found zero overlap between the brands shoppers searched for and the brands they bought, and surfaced a third language — Persian — that the store was operating in without knowing it.
Industry
E-commerce · Information architecture · GCC market
Stack
Shopify · Algolia · Shopify Admin API · catalog & search analytics
Links
Every storefront inherits its taxonomy from whatever the business was when the catalog was first loaded. Avnzor's had never been revisited — so it still described a beauty store, while the revenue had quietly moved to nutrition.
The Problem
The category tree was the least maintained system in the store and the one carrying the most weight. 72% of all sessions were browsing rather than searching, which meant nearly three-quarters of product discovery ran through a menu nobody owned.
Underneath it sat more than a thousand product types nested up to seven levels deep. 589 of those types held three products or fewer — shelves with nothing on them. Duplicate labels split single concepts across multiple branches, so the same idea lived in several places at once and none of them completely.
Audited a catalog of 1,000+ product types and restructured it into a tree no more than three levels deep, with ~95% of the catalog reachable. The audit quantified an 80× revenue-density inversion between shelf space and earning power, found zero overlap between the brands shoppers searched for and the brands they bought, and surfaced a third language — Persian — that the store was operating in without knowing it.
What The Audit Found
The restructure caps depth at three and organizes around how the catalog actually earns: Sports Nutrition and Supplements get real branch structure — Protein split by whey, isolate and plant; Performance split by creatine, pre-workout and amino — while the long tail of near-empty product types stops being navigation and becomes filtering.
That gap is the whole argument in one chart. Demand and revenue were being generated by two different halves of the store, and the taxonomy was organized around the half that searched rather than the half that bought.
اوردیناری returned nothing while The Ordinary sat in the catalog with 180+ SKUs. میکب returned nothing against 4,350 makeup products. اشوقندا returned nothing against a stocked Herbals shelf. The fix is a synonym layer between query and index — no catalog rewrite required, and no dependency on the taxonomy work landing first.



More Projects












