AEO 101Single source of truth on AEO
AI Visibility10 min read

Why ChatGPT Cites Products, Not Categories

Subia Peerzada

Subia Peerzada

Founder, Cite Solutions · May 17, 2026

A B2B SaaS company we audited last month had a beautiful solutions hub. Clean H1, a comparison table, three customer logos, schema markup, the works. It ranked #2 on Google for the category query.

In ChatGPT, the same query cited two competitors and a Reddit thread. Not the hub. Not any of the company's six product pages.

The team had spent the quarter optimizing the wrong URL. ChatGPT was never going to read the hub for a comparison question. It was going to fan out one query per product, read each product page, and cite whichever ones had the cleanest extractable answer.

Most B2B AEO playbooks still treat the category page as the unit of optimization. That made sense for Google in 2022. It does not match how ChatGPT actually retrieves in 2026.

The retrieval pattern your category page never sees

When a buyer asks ChatGPT a category-level question ("best workflow automation tools for finance teams", "compare data observability platforms for mid-market"), the model does not pick one URL and cite it.

It runs a rewrite fan-out. Olivier de Segonzac at RESONEO documented this in Search Engine Land on May 14, 2026, reverse-engineering ChatGPT Search's web.run behavior. ChatGPT issues an initial search, identifies candidate products from the result set, then issues a separate fan-out per product for specs, reviews, and pricing. This matches OpenAI's own description of how its bots and crawlers work, published in the platform docs.

The category hub gets read once. The product pages get read once per candidate. If you have six products, that is six chances for ChatGPT to find your brand in the answer. If you only optimized the hub, you have one chance.

ChatGPT runs a separate fan-out for every product it considers. Your category page is one URL competing against your own product pages, your competitors' product pages, and every review platform that ranks for each product name.

The asymmetry compounds. Each per-product fan-out reads three to five pages. A six-product portfolio with all pages cleanly extractable is contributing 18 to 30 retrieval-eligible passages to the answer. The hub contributes one.

Five reasons category pages lose the ChatGPT citation

This pattern is consistent across the B2B SaaS audits we have run in Q2. The category page rarely wins. Here is why.

Reason #1: The category page answers a different question than the buyer asks

A category hub on a multi-product site usually answers "what does this company sell?" The buyer is asking ChatGPT a comparison or a use-case question. The two questions have almost no surface overlap.

ChatGPT's passage extractor scores pages on whether the answer text matches the rewritten sub-query. A hub page that lists products in a grid is not answering "which platform handles real-time CDC for Postgres at 10TB scale." A product page that names the use case is.

Reason #2: The hub has too many topics packed into one URL

ChatGPT's source selection pipeline downweights pages that hedge across multiple sub-topics. A hub page covering six products tries to be relevant to six different sub-queries. The model reads the hub, finds shallow coverage of each topic, and prefers the product page that goes deep on one.

This is the inverse of what most teams expect. Breadth feels safer to humans. AI retrieval treats it as diluted.

Reason #3: Per-product fan-outs do not visit the hub

When ChatGPT rewrites a category query into per-product sub-queries, the sub-queries are about specific products. "Snowflake pricing for variable workloads" does not return the category hub of the company that sells Snowflake-adjacent tooling. It returns the product page, the pricing page, and the comparison content from G2 or Reddit.

The hub never enters the candidate set at the per-product fan-out stage. By the time ChatGPT is reading sources to build the answer, your hub has already been filtered out.

Reason #4: Schema on the hub is not propagated to retrieval

Most B2B SaaS sites put their Organization schema and a Product list on the hub. The schema looks correct in Schema.org Validator. ChatGPT's retrieval, per the Peec AI source pool analysis covering 30 million citations, still picks the URL with the cleanest in-body answer, not the URL with the parent schema. Conductor's 2026 AEO benchmarks across 13,770 domains and 100M+ citations point the same direction.

Schema helps. Schema on the wrong URL helps the wrong page.

Reason #5: The hub is internally linked away from the things ChatGPT actually cites

When you audit which pages ChatGPT cites for B2B SaaS queries, the winners are product pages, pricing pages, comparison pages, and customer stories. The category hub is usually the page that links out to those pages, not the page that gets linked in. Internal authority flows away from it.

A page that exports authority to citation-winners can still be valuable. It just is not the page that gets cited. Stop optimizing it as if it were. The same logic explains the SaaS citation gap we see between Google ranking and ChatGPT citation share for multi-product portfolios.

The contrast that changes how you should plan

The shift from category-first to per-product is easier to see side by side.

Traditional category-page SEO asks:

  • Which keyword should this hub rank for?
  • Can we cluster all product variations under one URL?
  • How many internal links point to the hub?
  • Does the hub have the highest authority score in the section?

ChatGPT per-product retrieval asks:

  • Does this product page answer one specific use-case question?
  • Is the answer extractable in 40 to 60 words?
  • Are the specs, pricing, and proof on the same URL the model reads?
  • Will a per-product fan-out surface this exact page in the top three results?

The two question sets do not overlap. You can have a perfect hub and still lose every per-product fan-out.

Stop optimizing the wrong page for AI search.

We run a per-product citation audit across every product your portfolio sells, identify which pages ChatGPT actually fetches, and prioritize the fixes that move citation share inside 60 days.

Book a 30-min audit

How to win the per-product citation

The fix is mechanical once you accept the retrieval pattern. Six steps, all of which can be shipped inside a single sprint for a portfolio of up to ten products.

Step 1: Map every product to its three highest-intent fan-out queries

Open ChatGPT in incognito and ask three category-level questions for each of your products. Note the per-product sub-queries ChatGPT rewrites the question into. Most products will have a stable set of three to five sub-queries that fire across runs.

These are the queries your product page needs to win, not the original category query. Write them down. Tag each product page with its three sub-queries before you touch the content.

Step 2: Add a 40 to 60 word answer block at the top of every product page

The first scannable block on the page should answer the dominant sub-query in two to three sentences. Plain prose. No marketing adjectives. Name the product, name the use case, name the differentiator. ChatGPT extracts this block verbatim when it cites you.

This is the same pattern documented in our service page answer blocks guide and it transfers directly to product pages.

Step 3: Move specs, pricing, and proof onto the product URL

Per-product fan-outs read one URL per result slot. If your specs live on a separate /specs page, your pricing on /pricing, and your customer proof on /customers, the product page reads as thin during retrieval. Inline the answer to each sub-query on the product page itself.

Use anchored sub-sections, not separate URLs. ChatGPT scores the whole page, then extracts the passage. Sub-sections cost you nothing. Separate URLs cost you the citation.

Step 4: Add Product schema with the use case named in the description

Mark up each product page with @type: "Product", a name, a description that names the dominant use case, and an offers block if you publish pricing. Skip aggregateRating unless you have real review data. Per the schema guardrails in our AEO schema audit guide, invalid optional fields hurt more than missing required ones.

Avoid the stricter Software types unless you have real aggregateRating and offers data. Google's rich-result tester rejects those entries when either field is missing, which is more common than teams expect.

The hub should not try to rank or get cited. Its job is to pass authority to the product pages. Replace generic anchors ("Learn more") with the dominant per-product sub-query phrased as a natural sentence.

For a workflow automation product, that means an anchor like "Automate AP invoice approvals for mid-market finance teams" pointing at the product page, not "AP Automation →".

Step 6: Verify that ChatGPT-User can reach every product page

Run a fetch test as ChatGPT-User. If your security stack blocks it, the per-product fan-out finds the URL in the candidate set and then fails to read it. The model substitutes a competitor whose page it could actually fetch.

We covered the full crawler-allow list in is ChatGPT-User allowed in your robots.txt. Run that check on every product URL, not just the homepage.

Step 7: Re-test the same three sub-queries weekly

Per-product citation share moves week to week. The single largest predictor of whether your fix is working is the per-product sub-query test, run on a rolling four-week window. Plot citation share per product. The page that does not move after three weeks of fixes is signaling a different problem, usually a fetch block or a duplicate canonical.

How to prioritize when you have more than ten products

Most B2B SaaS portfolios we audit have between four and 40 products. The mechanical fix is the same. The sequencing changes.

The right prioritization order has three signals, not one. Rank each product on:

SignalWhat it measuresWhy it matters
Revenue contributionShare of ARR or pipeline tied to this productCitation share on a product driving 40% of revenue beats citation share on a long-tail SKU
Buyer query volumeEstimated monthly ChatGPT prompts that fan out to this productSome products are cited rarely because no one asks; fixing them first is wasted effort
Citation gapCurrent per-product citation share vs the strongest competitorA 0% share against a 60% competitor is a different fix than a 30% share against a 35% competitor

Score each product 1 to 5 on each axis. Sort by the sum. Fix the top three first. Re-test in four weeks. Move down the list.

We have run this prioritization on portfolios of six, 14, and 38 products. The top three by combined score always account for at least 60% of the citation share you can recover in the first 90 days. The long tail can wait.

FAQ

Should I delete my category hub if it does not get cited?

No. The hub still serves Google, internal navigation, and authority flow to the product pages. Stop measuring it on ChatGPT citation share. Measure it on whether it drives traffic to the products that do get cited.

Does this apply to Claude and Perplexity too, or just ChatGPT?

The per-product fan-out pattern is most pronounced in ChatGPT Search. Perplexity uses a similar retrieval flow, with shorter rewrites and fewer sub-queries per pass. Claude tends to favor older, more authoritative sources and fans out less aggressively. Optimizing per product wins on all three, just with different speed-to-citation curves.

What if my product page has a noindex tag?

You will not be cited. Per-product fan-outs require an indexable URL with a fetchable body. Noindex is a 100% citation block on every AI surface we have tested, even when the content is otherwise strong.

How long until I see the per-product fixes show up in citation share?

Three to six weeks for ChatGPT, longer for Claude. The bottleneck is not the fix; it is how often ChatGPT re-crawls the page. New pages get picked up faster than updates to existing pages, which is the opposite of how Google behaves.

Does this change how I should write product comparison pages?

Comparison pages benefit from the same pattern. The buyer asks ChatGPT a comparison query, the model fans out per product, and the comparison page wins citation share when each product section is structured as an extractable passage. Write the comparison page as if it were five product pages stacked, not as a single side-by-side table. Our comparison page citation framework covers the section-by-section structure that retrieves cleanly.

What to do this week

The biggest single change for any multi-product B2B SaaS is to stop treating the hub as the unit of AEO. Pick three products. Map the per-product sub-queries. Ship the six-step fix. Re-test in four weeks.

If the citation share on those three products moves, the playbook works for the rest of the portfolio. If it does not, the problem is upstream of content, usually fetchability or duplicate canonicals.

The per-product fan-out is the retrieval pattern your category hub never sees. Plan for it, and ChatGPT will cite the pages you actually want it to read.

Run the per-product audit on your portfolio.

Cite Solutions runs the six-step playbook on every product in your AI search surface. We score each product on revenue, query volume, and citation gap, then ship the prioritized fix list inside 30 days.

Book a discovery call

Ready to become the answer AI gives?

Book a 30-minute discovery call. We'll show you what AI says about your brand today. No pitch. Just data.