AI engines only recommend a product once they have identified it without ambiguity. The GTIN is the key that ties your product page, your feeds and third-party sources to a single entity. But what makes the difference is not whether you have one: it is its quality (validity, variant-level granularity, consistency across site, feeds and marketplaces). Three priorities for a retailer: make the GTIN reliable in the PIM, expose it identically in your markup and in every feed, then work on what sets you apart once you are compared with every other seller of the same GTIN.
Key takeaways
- Conversational engines reason in entities. The GTIN is the join key that lets them attach product pages, reviews, tests and offers to the same item.
- Google requires the manufacturer GTIN for new branded products in the UK, the US, France, Spain and several other markets, and keeps only one active listing when it detects duplicates in free listings.
- OpenAI’s product feed is pushed by the merchant, not crawled. The GTIN is optional there, but an identifier (GTIN or MPN) is required.
- For a retailer, the GTIN puts you in the same group as every other seller of the product: the battle then shifts to the offer and attribute completeness.
- The real work is governance: invalid GTINs, reused codes, codes attached to the wrong variant or diverging from one channel to the next.
Why do AI engines need an entity key?
Traditional SEO worked on documents: one page, one query, one ranking. Generative engines work on objects. To answer “which cordless vacuum for a 900 sq ft home with pets?”, they have to aggregate specs, prices, availability and reviews from dozens of sources, then assign them to the right product.
On a real catalog, that assignment is fragile. The same item exists in several colors and pack sizes, under different names depending on the supplier, the retailer, the marketplace and the press. The previous generation stays indexed at some resellers. Without a shared key, the engine matches objects by text similarity, and the error rate grows with catalog depth: one variant’s price attributed to another, a spec from the previous generation, a customer review attached to the wrong pack size.
The GTIN solves this because it is assigned once, at a precise level (the consumer unit of a given variant), and stays identical wherever the product circulates. That is what makes it the natural join key between your catalog and the engines’ product graph.
What do Google and ChatGPT actually require?
The two ecosystems agree on the substance, but not on how strict they are.
| Google Merchant Center | OpenAI product feed (ChatGPT) | |
|---|---|---|
| Ingestion | Merchant feed + reading of pages and structured data | File pushed by the merchant (approved partners), indexed by OpenAI |
| GTIN status | Required for new branded products with a manufacturer GTIN (UK, US, FR, ES, DE, IT…) | Optional, but GTIN or MPN required |
| Format | Valid GTIN-8, 12, 13 or 14 | 8 to 14 digits, no dashes or spaces |
| Variants | A distinct identifier for each color or size | Product and variant identifiers that stay stable over time |
| Impact of a defect | Reduced eligibility for some Shopping programs; only one listing kept when duplicates are detected in free listings | Weaker recognition of the same product across sellers |
A commonly misunderstood point: ChatGPT Shopping does not primarily feed on crawling your pages. OpenAI expects a structured feed with up-to-date price and stock. Your page markup remains useful for web search and citations, but transactional presence goes through the feed.
Retailer or brand: does the GTIN play the same role?
No, and this is probably the most underestimated angle in GEO discussions.
For a brand, the GTIN makes the product exist as an entity. Every mention, test or review tied to that code strengthens a single object instead of being scattered across several product names.
For a retailer, the GTIN has the opposite effect on competition: it puts you in the same group as every other seller of the product. You become comparable. From then on, what drives the recommendation is no longer the identifier, but:
- the offer: price, real availability, delivery time and cost, returns;
- data freshness: stock or price out of sync between site and feed disqualifies the offer;
- attribute completeness, which lets the engine answer the user’s precise questions (dimensions, compatibility, standards) when competitors’ pages are thin;
- reviews attached to the right product.
For private labels, the stakes are different again. A GTIN from your own GS1 company prefix is the condition for these products, which have no external notoriety, to be treated as entities in their own right rather than as anonymous equivalents.
Where does the GTIN break in the data chain?
On most catalogs we audit, the question is not “do we have GTINs?” but “are they correct and the same everywhere?”. The same defects keep coming back:
- Invalid check digit: manual entry, Excel imports that strip leading zeros, conversion to scientific notation.
- Wrong packaging level: the case GTIN (GTIN-14) or the multipack exposed instead of the consumer unit.
- One GTIN for several variants, often held by the parent product in the PIM instead of each variant.
- Reuse of a GTIN after a product is discontinued, or codes bought outside GS1 and already assigned to another company.
- Divergence between channels: the site, the Google feed and the marketplace do not publish the same code for the same offer.
- Products without a GTIN declared incorrectly: field left empty instead of
identifier_exists = falsewith brand and MPN.
How do you expose the GTIN so it is actually read?
Schema.org markup remains the most explicit way to declare the product’s identity on the page. Three points make the difference in practice.
Model the variants
On a multi-variant page, a single Product block with a single GTIN is wrong by design. The ProductGroup model, with hasVariant and variesBy, lets you attach a GTIN to each variant:
{
"@context": "https://schema.org/",
"@type": "ProductGroup",
"name": "X200 Pro Coffee Maker",
"productGroupID": "X200-PRO",
"brand": { "@type": "Brand", "name": "Brand" },
"variesBy": ["https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"name": "X200 Pro Coffee Maker – Black",
"color": "Black",
"sku": "X200-PRO-BLK",
"gtin13": "3760123456784",
"offers": {
"@type": "Offer",
"price": "149.90",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "Product",
"name": "X200 Pro Coffee Maker – White",
"color": "White",
"sku": "X200-PRO-WHT",
"gtin13": "3760123456791",
"offers": {
"@type": "Offer",
"price": "149.90",
"priceCurrency": "EUR",
"availability": "https://schema.org/OutOfStock"
}
}
]
}Make the markup visible without JavaScript
Some AI crawlers do not render JavaScript. JSON-LD injected client-side by a tag manager or a widget may therefore never be read. The test is simple: view the raw source of a product page and check that the block and the GTIN are there.
One source of truth
The GTIN in the markup, in the Google feed, in the OpenAI feed and on marketplaces must all come from the same PIM field. Any re-keying in a feed tool or connector will eventually create a divergence.
Which KPIs should you track?
| KPI | What it measures | Where to measure it |
|---|---|---|
| Valid GTIN rate | Share of SKUs with a correct check digit and length | PIM, automated check |
| Variant-level uniqueness | Share of variants carrying their own GTIN | PIM |
| Cross-channel consistency | Share of offers where site, markup and feeds publish the same GTIN | Crawl vs feed exports |
| Merchant Center issues | Volume of “invalid GTIN”, duplicates, missing identifiers | Google Merchant Center |
| Filterable attribute completeness | What differentiates your pages once the GTIN is shared with competitors | PIM, audit by product family |
Longer term, the topic will go beyond the screen. GS1 is targeting retailers being equipped to scan 2D codes at the till by the end of 2027. The GS1 QR code will carry the same GTIN and can point to online product data. GTIN quality will then also become an in-store issue.
Simulation: how structuring affects AI output
The model below illustrates a trend we see in audits: the gap between a structured catalog and a text-only catalog widens as the number of SKUs grows. The values are indicative.