Pick the unit before you pick the tactic. If the outcome you want is a citation, the unit is a page, and you work on the page. If the outcome is your product, the right variant or your offer appearing in an AI shopping answer, the unit is the product record, and you work on the record.
Then measure each on its own terms: its own identifier, its own definition of a hit, its own denominator. Record both for the same shopper question, so an article that gets cited never counts as a product that got shown. An answer can cite your buying guide and recommend a competitor’s humidifier in the same paragraph. That’s one win and one loss, not two wins.
This paired matrix is our proposal. No platform publishes how it weighs pages against products. If you need the acronyms first, our SEO, AEO, GEO and ACO comparison defines them; this page is only about what you count.
The paired measurement matrix
Five units can come out of one shopper question. Four are things you optimize. The fifth, the store, is context you should record but can’t fix from a single page or product.
What counts, and how you match it
| Unit | It’s a hit when | Match on | Denominator |
|---|---|---|---|
| Cited page | The answer links or names your page as a source | The canonical URL, after removing tracking parameters | Answers checked for this question |
| Product | Your product appears among the products shown or returned | Your product ID, or a GTIN where one is assigned | Answers or searches that showed any products |
| Variant | The size, colour or model shown is the one the question needs | The variant ID (SKU) plus its option values | Times your product was shown |
| Offer | The seller, price, stock and shipping shown are yours and correct | Seller identity plus the variant ID | Times the right variant was shown |
| Store (context) | Store-level signals were present | Your domain | Not a hit rate. Record it alongside |
Read the denominators down the column. Each one is the row above’s hits. That’s deliberate. A variant can only be right if the product appeared, and an offer can only be right if the variant did. Counting a variant miss as a product miss, or a reseller’s offer as your win, breaks the chain.
Where each unit is documented, and what moves it
| Unit | What a platform documents | Lever you control | False win to watch for |
|---|---|---|---|
| Cited page | Google: a supporting link must be indexed and snippet-eligible, with no extra requirements | Title, description, a direct answer, original evidence | Counting a citation as a sale or a product pick |
| Product | Google Shopping: “Top recommendations” use relevance, ratings, price and product features. OpenAI: relevance to the shopper’s intent | The facts in the product record, matched to real requirements | A product shown for a question it can’t answer |
| Variant | Shopify: a separate step explores options for the chosen variant | One ID, one price and one set of facts per variant | The right product in the wrong size |
| Offer | OpenAI: merchants ranked on availability, price, quality and maker or primary-seller status. Shopify: results clustered with offers from multiple merchants | Current price, stock, shipping and returns per variant | Your product, sold by someone else, at a stale price |
| Store | Google Merchant Center: Store Quality is scored at domain level | Shipping and return experience | Treating a store badge as a product result |
The middle column is documentation, not a formula. Each platform names inputs. None publishes weights, and none says how a cited page and a product record interact.
Pair every question: the two-unit grid
The matrix gets useful when you record the page unit and the product unit for the same question, at the same time. Each check then lands in one of four cells:
| Your product shown | Your product not shown | |
|---|---|---|
| Your page cited | Both units won. Check the variant and offer before celebrating | Your content informed the answer; another product won it. Look at the product record first |
| Your page not cited | The product record carried the answer on its own. Don’t credit your content work | Neither unit reached the answer. Check eligibility before anything else |
The top-right cell is the one that hides inside a citation dashboard. A buying guide that gets cited for “best quiet humidifier for a large bedroom” is doing education work. If the products in that same answer are someone else’s, the citation hasn’t sold anything for you. The page may still be worth having. It just isn’t your product-visibility number.
The bottom-left cell is the opposite trap. If your product shows up without your page being cited, the content team’s citation tracker will show nothing, and the product data work that carried it gets no credit.
What each unit responds to: two simulations side by side
We’ve run two supplied-snippet simulations, one on each side of the grid. Neither is live behaviour. Together they show why the two units need different levers.
The page unit. We gave AI models a merchant’s question and eight search results, one of them a planned article of ours, and asked them to answer and name two sources. Titles and descriptions that said plainly what was inside were cited in 405 of 432 Claude sessions, 144 of 144 on GPT-6.1-Sol and 143 of 144 on Gemini 3.8 Flash. Deliberately clever versions were cited in 28 of 108, 5 of 36 and 15 of 36. The article never changed; only its title and description did. (Write-up.)
The product unit. We gave models a shopper and eight product listings, one of them an invented humidifier, and asked them to pick two, so random picking is 25%. With vague copy, the invented humidifier was picked in 3 of 180 Claude sessions, 0 of 60 on GPT-6.1-Sol, 6 of 60 on Gemini 3.8 Flash and 3 of 54 on Gemini 3.1 Pro. With its facts as a spec line it was picked in 134 of 180, 20 of 60, 19 of 59 and 15 of 55. On GPT and both Gemini models, every one of those picks came with a detailed shopper brief. With a one-line ask or no shopper, it was picked in none. (Write-up.)
| Page unit (citation test) | Product unit (pick test) | |
|---|---|---|
| What changed | Title and description of an article | The facts stated in a listing |
| What moved the outcome | Saying exactly what the article contains | Stating facts that answer the shopper’s stated need |
| What didn’t | The article body, which didn’t exist yet | Facts alone, when the shopper asked for something else |
| What it can’t show | Live citations in any search product | Live picks, rank or sales in any assistant |
The lesson from the product side is the narrow one: vague copy gets excluded, facts get you considered, and you win when your facts answer a stated need that competing listings don’t. Nothing on the page side tells you that. A perfectly cited article can’t state your product’s room coverage for it.
Worked case: one question, five units
Here’s how the matrix reads on a real record. On October 26, 2026 we searched Shopify’s agent catalog for “humidifier for dry winter air large room quiet top fill” and saved the top 10 results, with no buyer context.
| Unit | What this catalog response can tell you | What it can’t |
|---|---|---|
| Cited page | Nothing. A catalog search returns product records, not answers with sources | Whether any assistant cited a page for this question |
| Product | Which 10 products came back, in what order | Whether any assistant showed or recommended them |
| Variant | Each result carried one variant, the same as all 1,620 results in our 162-search snapshot | Whether that variant suits a shopper whose question needs a different size |
| Offer | The returned variant’s seller and listed price. Native checkout was false on every returned variant in the snapshot | Which seller an assistant would rank first for a clustered product |
| Store | Nothing about Store Quality | Anything about Google’s domain-level score |
Two things fall out of this.
First, some routes have no citation unit at all. The catalog route sends product records. A product reached by that route can win without any page being cited, which puts it in the bottom-left cell of the grid by construction. If you only track citations, you’ll never see it.
Second, the variant and offer units need a second look. Shopify documents a separate step for options and pricing on the chosen variant, and says results are clustered with offers from multiple merchants. The search response we saved shows one variant from one seller per result. So “my product came back” is only the first row of the matrix. The variant and offer rows need the follow-up call or a check in the assistant itself.
The same question on the page side would be a different check, on a different surface. Google says a page must be indexed and snippet-eligible to be a supporting link in AI Overviews or AI Mode. That tells you whether a page can be cited, not whether it was. To know, you’d run the question there, record the date, market and signed-in state, and log the cited URLs. Our monitoring plan covers how to log checks like that so they’re repeatable.
Which unit to work on first
Start from what the shopper asked, not from which team is free.
| Kind of question | Unit that decides the outcome | First check |
|---|---|---|
| “How do I choose a humidifier for a large room?” | Cited page | Does a page of yours answer it directly, with evidence, in text? |
| “Quiet humidifier for a 450 sq ft bedroom under $90” | Product | Does your record state the room size, noise level and price the shopper named? |
| “The 6 L version in white” | Variant | Does that variant have its own ID, price, stock and facts? |
| “Cheapest place to buy [model]” | Offer | Is your current price and stock what the platform shows, and are you the maker or primary seller? |
| “Is this store reliable for returns?” | Store context | Are your shipping and return policies stated, and current? |
Most questions on a shopping surface are the second and third kind. ReFiBuy puts the split as “SEO at the page. GEO at the answer. ACO at the product.” eCommerce Insights says GEO targets pages and passages while ACO targets SKUs, variants, metafields and offers. We agree with the split. What we add is the measurement rule: each unit gets its own identifier and denominator, and the units are recorded in pairs so neither takes the other’s credit.
For the product, variant and offer rows, the work is the record itself. Our five-stage ACO plan runs it on one product. Constraint coverage shows how to check each shopper requirement against what the record says.
Five counting rules
- Never add citations and product appearances together. They have different denominators. “Visible in 14 answers” that mixes the two means nothing.
- Count down the chain. Variant hits are out of product hits. Offer hits are out of variant hits. Report each as k of n.
- Match on IDs, not names. Your product title may be rewritten. OpenAI says ChatGPT may generate simplified product titles. Match on product ID, GTIN or canonical URL, and keep the received text as evidence.
- Say “results”, not “products”, until you’ve de-duplicated. In our snapshot, 1,620 results came from 162 searches. The same product can come back for several questions.
- Record the store context, but don’t score it. Google’s Store Quality score is calculated per domain, and Google says missing information isn’t penalized, only unrewarded. It’s context for the offer row, not a fifth hit rate.
How we checked
On October 27, 2026 we re-read Google’s AI features page and its Shopping and Merchant Center help pages, OpenAI’s shopping help page, Shopify’s Global Catalog documentation, and the ReFiBuy and eCommerce Insights definitions, and quoted or paraphrased only what they say now. We reopened the saved Shopify agent-catalog responses from October 26, 2026 (162 searches, top 10 each, no buyer context) and confirmed that every result carried one variant and that native checkout was false on every returned variant. The simulation figures come from our two published write-ups and weren’t re-run. We didn’t query any assistant for this page.
Your next step
Take one real customer question. Run it on one surface and write down two lines, not one: was a page of yours cited (URL or no), and was your product shown (product ID, variant ID, seller and price, or no)? Put the result in the grid. If you land in the top-right cell, your next fix is the product record, not another article.