Category Tree And Facet Design
Category trees grow one request at a time until there are 900 nodes, half of them holding four products, and nobody can say why any of them exists. The obvious correction, building a page for every keyword cluster with volume, produces thin grids that compete with each other and with the facets underneath them. The decision is not what to create, it is which of three containers a cluster belongs in, and that depends on inventory depth and permanence as much as on search demand.
FORMAT
category-tree-and-facet-design.md
WHEN TO REACH FOR THIS
Use when deciding whether a demand cluster deserves its own category page, an indexable facet, or no page at all, and the tree has grown by merchandiser request rather than by design.
The skill file
category-tree-and-facet-design.md
---
name: category-tree-and-facet-design
description: Use when deciding whether a demand cluster deserves its own category page, an indexable facet, or no page at all, and the tree has grown by merchandiser request rather than by design.
---
# Category Tree And Facet Design
Category trees grow one request at a time until there are 900 nodes, half of them holding four products, and nobody can say why any of them exists. The obvious correction, building a page for every keyword cluster with volume, produces thin grids that compete with each other and with the facets underneath them. The decision is not what to create, it is which of three containers a cluster belongs in, and that depends on inventory depth and permanence as much as on search demand.
## What you need first
- Live product counts per node of the current tree, counted in stock now rather than at launch
- A demand set clustered by intent, with the head term and the modifiers for each cluster
- Search Console impressions and organic entrances per existing category and facet URL, 6 months
- The merchandising rules that decide which products land in which node, so you know what is automatic and what is hand-curated
## Method
1. Count live products per existing node before adding anything. Nodes holding fewer than about 5 products cannot support a page that beats a competitor grid, and they are the merge candidates.
2. Sort each demand cluster by whether its modifier describes an attribute you hold as structured data or a use case you do not. Attribute clusters belong in facets; use case clusters need a curated category because no filter produces that set.
3. Apply a permanence test to the survivors: it is a category if the set of products would still make sense in two years, and a facet if the set is simply whatever the filter returns today.
4. Set an inventory floor per node and write down what happens when a node falls below it. Without a stated rule the thin nodes accumulate again inside a year.
5. Map each surviving cluster to exactly one node and confirm no two nodes claim the same head term. Two categories serving one intent split links and impressions and neither wins.
6. Decide URL depth before building. Nesting every attribute produces paths nobody maintains, while a flat path with hierarchy carried only in breadcrumbs is easier to restructure later; this trade-off is argued seriously on both sides and the right answer depends on how often your tree changes.
7. Ship the merge and redirect list for the failed nodes in the same release as the new ones, not as a follow-up that never gets prioritised.
## What this produces
A revised category tree with a stated inventory floor per node, a facet whitelist, and a merge and redirect list covering the nodes that did not qualify.
## Where this goes wrong
- Creating a category for every modifier with search volume, leaving dozens of near-identical grids drawn from the same few hundred products
- Building use case categories that are generated by a filter, so membership changes every time stock moves and the page never settles
- Deleting thin nodes without redirects because they had little traffic, then losing the internal links and breadcrumb paths that pointed at them
- Deciding the tree from keyword volume alone without checking what the catalogue can actually fill
---
From the QuQi skill library - https://www.quqi.io/skills/category-tree-and-facet-design
Free to download · no account, no email
What you need first
-
Live product counts per node of the current tree, counted in stock now rather than at launch
-
A demand set clustered by intent, with the head term and the modifiers for each cluster
-
Search Console impressions and organic entrances per existing category and facet URL, 6 months
-
The merchandising rules that decide which products land in which node, so you know what is automatic and what is hand-curated
Method
-
01
Count live products per existing node before adding anything. Nodes holding fewer than about 5 products cannot support a page that beats a competitor grid, and they are the merge candidates.
-
02
Sort each demand cluster by whether its modifier describes an attribute you hold as structured data or a use case you do not. Attribute clusters belong in facets; use case clusters need a curated category because no filter produces that set.
-
03
Apply a permanence test to the survivors: it is a category if the set of products would still make sense in two years, and a facet if the set is simply whatever the filter returns today.
-
04
Set an inventory floor per node and write down what happens when a node falls below it. Without a stated rule the thin nodes accumulate again inside a year.
-
05
Map each surviving cluster to exactly one node and confirm no two nodes claim the same head term. Two categories serving one intent split links and impressions and neither wins.
-
06
Decide URL depth before building. Nesting every attribute produces paths nobody maintains, while a flat path with hierarchy carried only in breadcrumbs is easier to restructure later; this trade-off is argued seriously on both sides and the right answer depends on how often your tree changes.
-
07
Ship the merge and redirect list for the failed nodes in the same release as the new ones, not as a follow-up that never gets prioritised.
What this produces
A revised category tree with a stated inventory floor per node, a facet whitelist, and a merge and redirect list covering the nodes that did not qualify.
Where this goes wrong
-
Creating a category for every modifier with search volume, leaving dozens of near-identical grids drawn from the same few hundred products
-
Building use case categories that are generated by a filter, so membership changes every time stock moves and the page never settles
-
Deleting thin nodes without redirects because they had little traffic, then losing the internal links and breadcrumb paths that pointed at them
-
Deciding the tree from keyword volume alone without checking what the catalogue can actually fill
Use this skill in your own AI
The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.
Claude Code
Save it as ~/.claude/skills/category-tree-and-facet-design/SKILL.md and Claude loads it on its own when what you are doing matches the trigger line. Put it in .claude/skills inside a project instead if the whole team should have it.
Claude
Upload the file in the skills section of your settings. Once it is there it applies itself in any conversation where the trigger fits, so you do not have to remember it exists.
ChatGPT
There is no skills format to install into, so paste the file contents into a Project instruction or a Custom GPT instead. It then applies to every chat in that project rather than only the one you paste it into.
Anything else
Paste the markdown into the chat before your question. It works in any assistant, it just has to be pasted again each time.
Questions about this skill
When is this the right method rather than building a page per keyword cluster?
When the tree has grown one merchandiser request at a time and nobody can say why a node exists. Building a page for every cluster with volume produces thin grids competing with each other and with the facets underneath them. Use this when the real question is which of three containers a cluster belongs in, decided on inventory depth and permanence as well as demand.
What do I need before redrawing the tree?
Live in stock product counts per node, a demand set clustered by intent with its modifiers, six months of impressions and entrances per existing category and facet URL, and the merchandising rules deciding what lands where. Start without live counts and you design around nodes that held forty products at launch and hold four now, which is exactly the set you were meant to merge.
What does the redesign produce, and which part keeps working after launch?
A revised tree with a stated inventory floor per node, a facet whitelist, and a merge and redirect list for the nodes that failed. The floor is the durable part, being the written rule that stops thin nodes accumulating again within a year. Whether hierarchy belongs in the URL path or only in breadcrumbs is genuinely contested and depends on how often your tree changes.
Which design mistake shows up again a year later?
Building use case categories whose membership is generated by a filter, so the set changes every time stock moves and the page never settles. If a filter produces the set, it belongs in a facet. Deleting failed nodes without redirects is the other costly move: the traffic was small, but the internal links and breadcrumb paths pointing at them were not.
More in Ecommerce SEO