GEO-025·Issue 03·Technical Foundation·25 / 132
The Product Graph: AI Doesn't See a SKU, It Sees a Graph
A flawless product page still leaves AI holding fragments. How entity, variant, attribute, and relation data decide whether your product enters the answer.
Issue focusGet Understood: Product Entities, Structured Data, and the Product Graph
A US-facing DTC team sells under-sink water filters. A buyer asks an assistant which cartridge replaces the F-9 in an A100 housing; the answer names three marketplace brands. Theirs is missing. The product page is clean: micron rating, thread size, hundreds of reviews. The gap is between pages: nothing states which housings it fits, which discontinued model it replaces, or that it is a consumable.
AI files a product as an entity with variants, attributes, and edges, not as a page — perfecting single pages hands it fragments it cannot cross-check.
A perfect page still adds up to nothing
Judgment: AI assembles products the way a cataloger does, not the way a search engine ranks.
The model merges what the product page, feed, retailer listing, and third-party review say about one product into one record. That needs a stable identifier (brand plus MPN, or a GTIN), attribute keys and units that agree, and relations in plain sight. Remove one and it guesses; when guessing costs too much, it quotes whoever stated the relation clearly — usually a retailer or review site.
Budget goes into copy and photography while the model decides one layer up. The layers are not substitutes, and the order cannot flip: entities and edges first, answer units after.
Four parts, one of them irreversible
Judgment: the entity is the only part you cannot redo cheaply; pick the identifier badly and three parts get rebuilt.
| Part | Question | Minimum viable form | Common failure |
|---|---|---|---|
| Entity | What is this? | Brand + MPN or GTIN + category | Marketing name as the only ID, spelled five ways across pages |
| Variant | Which option? | Variant axes plus one addressable ID each | Every variant its own product, no shared parent |
| Attribute | Why compare it? | Key–value pairs, one unit system | Specs only inside images |
| Relation | What does it fit or replace? | Subject, edge type, object ID, evidence | “Fits most systems” in a FAQ |
The entity is the anchor; without a stable ID the other three attach to nothing, and a replatform can read as a new product. Variants are branches: URL count is negotiable, shared identity is not. Product variants and out-of-stock pages covers the URL layer.
Three edges decide which questions you can win
Judgment: attributes get you into a comparison table; edges get you into questions that never name you.
| Edge | How buyers ask | What must be on the page | Cost of omission |
|---|---|---|---|
| Substitution | “The F-9 is discontinued — now what?” | Old and new model, difference, migration | Retired-model demand goes to a competitor |
| Compatibility | “Will it fit my A100?” | Model list, thread or interface spec, exceptions | The model guesses, and a wrong guess is a return |
| Accessory and consumable | “What else do I need?” | Host product ID, replacement interval, kit relations | You read as a one-off; basket size stalls |
Compatibility breaks most often because the object must be named the way someone else names it: A100 must match the string the housing maker and retailers use, and one character off snaps the edge. The test: can both ends be pointed to by the same string on a page you do not control?
Verifiability is the second test. Thread size is a fact; “works with most brands” is silence in structured data, and the model skips it. Schema.org’s Product type carries isAccessoryOrSparePartFor, isConsumableFor, and isSimilarTo; compatibility has no single property and needs an attribute table. Validators check shape, not truth.
From pages to a graph in four steps
Judgment: do not start with schema. Fields are the graph’s exit, not the graph.
| Step | Action | Owner | Passes when |
|---|---|---|---|
| 1 Anchor | One sellable unit, one entity; pick an ID; merge duplicates | Product data, engineering | 50 sampled SKUs, one record each |
| 2 Dictionary | One table of keys, units, allowed values; page, feed, markup read it | Merchandising, engineering | 20 records match at all three exits |
| 3 Edges | Substitution and compatibility only, evidence per edge | Content, engineering | “On what basis?” answered on the spot |
| 4 Retest | 20 relation questions; check host product and edge | Growth | A before-and-after; a wrong edge traces to a page |
Step 3 gets cut first and pays most. Most teams can say what they are, not what they connect to, and connection is the door to long-tail questions. Retest with the same prompts, region, and language: see the AI visibility baseline.
Reversed, it fails quietly: every Product block validates while isAccessoryOrSparePartFor points at your own previous SKU instead of the housing that accepts it. Do the fields later — Product schema in 2026 — or reconnect every edge twice.
Example: one cartridge, three edges
Judgment: an edge without evidence is a liability, not an asset.
Example — a hypothetical filter brand: F-10 fits A100 and A120 housings, replaces the discontinued F-9, is a consumable for the A100 system, and ships as a two-pack on a six-month interval. No real brand or data.
| Subject | Edge | Object | Evidence | Where it lives |
|---|---|---|---|---|
| F-10 | compatible with | A100, A120 | Thread spec, housing manual | PDP table, feed, structured property |
| F-10 | replaces | F-9 | Same dimensions and thread | Comparison page, retired model’s page |
| F-10 | consumable for | A100 system | Replacement interval | Category, subscription, kit pages |
It must read identically at four exits: page table, feed, property, category filter. Write A120 as A12 in one and the model sees a second object. Acceptance is not rank: F-10 appears in relation questions, correctly, and a wrong answer traces to a page.
Where this breaks
First, a few dozen SKUs with no variants or accessory ecosystem: a graph earns little; answer units earn more.
Second, revenue concentrated in a marketplace, where the entry point is the category tree and listing fields. Align platform attributes first; the internal graph stays private.
Third, unverifiable relations — fit proven only by testing, or touched by safety or regulation. A guess promoted to structured fact gets repeated, and the return exposure is yours.
Fourth, broken master data: one product, several codes; several products, one code. Fix that first; a net costs more to untangle than an empty table.
Fifth, fast SKU turnover: maintain substitution only. A graph you cannot maintain decays faster than none.
A graph needs crawlable, renderable pages — see how AI search splits e-commerce traffic and the technical foundation hub.
This month, take one category with accessories or consumables, export the top 50 SKUs, and add two edges only: what each replaces, what it fits, with one checkable piece of evidence each. Put the table on the product page and in the feed, re-ask 20 relation questions, and fix every wrong edge until it names a page.