You ask ChatGPT for the best product in your category and it names three competitors. You try the same question in Perplexity, then Gemini, and the answers shift — but yours still isn't in any of them. The products are comparable. Sometimes yours is plainly better. So why do competitors' products show up in AI recommendations when yours don't?

Usually the answer is unglamorous. The assistant didn't weigh your product and reject it. It never had enough concrete, checkable information about your product to put its name behind it in the first place.

First, work out which problem you actually have

Two quite different situations get described the same way, and they have different fixes.

The first is a trust problem. The assistant has never encountered your brand in the places it treats as credible — roundups, review sites, comparison articles — so it has nothing to cite for you. That's a slow, compounding fix, and it's the subject of how to get your store cited by the sources AI trusts. If you're specifically watching ChatGPT name the same rivals over and over, the reasons ChatGPT keeps picking them covers that case in detail.

The second is a product-data problem. The assistant may well reach your product page, and still find nothing specific enough to match against a shopper's question. No structured attributes, no identifiers, nothing that distinguishes your blue medium from your blue large.

This post is about the second one: a catalog-level audit of the data you publish about your products. It's deliberately assistant-agnostic, because these gaps cost you the same way in ChatGPT, Claude, Gemini and Perplexity — they all need facts they can verify, whatever route they take to find them.

Why your products get skipped

1. Nothing on the page is machine-readable

Assistants and the search infrastructure behind them prefer structured facts over prose. If your product pages don't expose Product structured data — name, description, image, SKU, brand, price, availability, aggregate rating — then everything about your product exists only as sentences a model has to interpret and may get wrong.

Google publishes the required and recommended properties for product structured data, and it's a reasonable baseline to work from: what satisfies product-rich-result requirements is also the data most machine consumers expect to find.

2. Your product facts are implied rather than stated

A shopper asks for "a merino base layer warm enough for skiing but not itchy." To answer, an assistant needs to know the fibre, the weight, the fit and who it's for. If those live inside a paragraph of persuasive copy — or are implied by a lifestyle photo — there's nothing to match. A competitor who states them plainly is simply easier to recommend.

This is the single highest-leverage thing most stores can change this month, and it's worth doing properly: how to write product descriptions AI assistants will recommend goes through it line by line.

3. Your products carry no standard identifiers

Barcodes feel like a retail formality, but they're how separate systems agree that two listings are the same physical thing. Schema.org treats GTIN as a first-class product property for exactly that reason, and MPNs serve the same role where no GTIN exists.

In Shopify these live in the barcode and SKU fields on each variant, alongside the product type field that tells aggregators what category you're even in — all documented under Shopify's product details fields. Empty identifiers don't break your store, so they tend to stay empty for years. They also quietly keep your products out of datasets that assistants draw on.

4. Your catalog data never reaches the systems that aggregate it

Product feeds — Google Merchant Center, Meta, whichever marketplaces and comparison engines matter in your category — are a second route to the same destination. A product that appears in several well-maintained catalogs with consistent data is corroborated from multiple directions. A product that exists only on your own site has exactly one source, and it's the one with the obvious commercial interest.

Stale feeds are worse than no feeds. If price, availability or shipping disagree between your feed and your product page, you've given a machine a reason to pick something less ambiguous.

5. Crawlers can't see what your shoppers see

None of the above matters if the page can't be read. A robots.txt rule, a stray noindex, or a theme that hides variants behind JavaScript will keep your products out of the sources assistants consult. Google's introduction to robots.txt is the clearest reference for what those rules actually do.

The subtler version is content injected after the page loads. Reviews added by an app, specifications rendered client-side — a human waits a moment and sees them; a crawler reading the initial HTML does not. The five reasons a Shopify store doesn't show up in ChatGPT covers this failure mode and how to check for it.

6. Your variants and images are indistinguishable

If eight variants differ only by a colour swatch and an unlabelled image, an assistant asked for "the olive one in a 12" has no way to confirm you have it. Descriptive variant names, filled-in option values and real alt text are not accessibility box-ticking here — they're the only textual evidence that a specific version of your product exists.

Fix it in the order that pays off fastest

You don't need to do all six at once. Roughly by speed-to-impact:

  1. Fill in identifiers and product type on your best-selling products. Fast, mechanical, and it unblocks everything downstream.
  2. State the attributes plainly in titles and descriptions — material, size, dose, compatibility, intended use.
  3. Add or validate Product structured data for your top sellers, then check it renders in the initial HTML.
  4. Audit crawlability — robots.txt, noindex tags, and anything important that only appears after JavaScript runs.
  5. Clean up feeds so price, stock and shipping match your product pages exactly.
  6. Label variants and images so each one is identifiable in words, not only visually.

How to tell whether any of it worked

This is the part most advice skips, and it's where the work either compounds or quietly stops.

Pick a handful of queries a real shopper would type, run them before you change anything, and write down which products come back. A five-minute test you can run yourself is enough to establish a baseline. Then make one category of change, wait, and run the same queries again.

Two expectations worth setting. Nothing here is instant: indexes, feeds and model knowledge update on timescales of days to weeks, not hours. And none of it buys a guaranteed placement — you're improving the odds your product is eligible to be recommended, not purchasing a slot.

Checking by hand stops scaling at about the point it starts mattering, because you have more than one product and there are four assistants worth watching. What a purpose-built AI visibility tool actually tracks is a fair comparison of the manual approach against an automated one.

What not to waste time on

There is no single "AI ranking algorithm" to reverse-engineer. Assistants differ in how they retrieve and weight sources, so a trick that appears to work in one often does nothing in another — which is why the durable work is making your data unambiguous rather than chasing any one system's behaviour.

Nor is there an adversarial move worth making. Attempting to suppress competitors' content, or stuffing pages with claims your product can't support, fails in the same way it eventually failed in search: the systems get better at verification, and you're left with pages that are harder for everyone to read.

Start here this week

  • Pick your ten best-selling products and fill in every empty identifier and product-type field.
  • Rewrite those ten descriptions so a machine could answer three specific questions about each.
  • Validate Product structured data on the same ten, and confirm it's in the initial HTML.
  • Record what four assistants currently recommend for five of your category's real shopper questions, and date the list.

That last step is the one that makes the rest measurable, and it's what we built Vanto to handle: it checks each of your products across ChatGPT, Claude, Gemini and Perplexity, shows which competitors are being named in your place, and tracks whether your visibility moves as you work through the fixes above.

Measure which products AI recommends — and which competitors it names instead →