Making retail catalogues legible to shopping assistants
How retailers can make product catalogues easier for shopping assistants to understand
The catalogue fields shopping assistants rely on: stable identifiers, comparable specs, price and availability context, images and canonical links. With a readiness checklist.
Shopping assistants represent a retailer more accurately when product records carry stable identifiers, comparable specifications, clear availability context, canonical source links and explicit freshness. None of that requires a new platform. It is mostly a data discipline question: make the same facts visible, consistent and machine-readable on the pages you already publish, and make sure the structured markup matches what a shopper actually sees.
Shopping journeys are starting somewhere other than your search box
A growing share of product research begins in an assistant, a comparison tool or a generative search result rather than on a retailer’s own site. In that pattern, something else reads your product page and decides how to describe your product — whether it is comparable to a competitor’s, whether it meets the shopper’s stated constraint, and whether it is worth surfacing at all.
That shifts where the commercial risk sits. Historically, a thin product page cost you conversion on your own site. Now it also costs you accurate representation somewhere you do not control. If your specification is a paragraph of marketing prose and your competitor’s is a clean attribute list, the comparison will not favour you — not because the product is worse, but because it could not be compared.
The catalogue fields assistants depend on
Here is the shape of a product record after a page has been read and structured — this is the abridged simlir product object, and it is a fair proxy for what any competent product data layer is trying to extract from your pages:
product object (abridged)
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"brand": "Optimum Nutrition",
"category": "protein powder",
"gtin": "5060245603478",
"title": "Optimum Nutrition Gold Standard Whey Protein Powder",
"product_description": "Premium whey protein powder with 24g protein per serving...",
"key_selling_points": ["24g protein per serving", "5.5g BCAAs", "Informed Sport certified"],
"spec": {
"protein_per_serving": "24g",
"servings": "29",
"calories_per_serving": 120,
"flavour": "Double Rich Chocolate"
},
"image_url": "https://images.optimumnutrition.co.uk/whey-front.jpg",
"model_number": "GS100W-2270G-DRC",
"retailer_sku": "ON-2270G-GB",
"review_score": 4.8,
"review_count": 20,
"price": {
"amount": 29.99,
"currency": "GBP",
"retailer": "Holland & Barrett",
"as_of": "2026-04-07"
},
"links": {
"retailer": "https://www.hollandandbarrett.com/shop/product/..."
},
"market": "gb",
"relevance_score": 0.923
}
Read that as a checklist against your own product detail pages. Every field there had to come from somewhere visible. Where your page is silent, the record is null, and a null field cannot help you win a comparison.
Stable identifiers and variant handling
Identity is the single highest-leverage thing on this list, because it determines whether your product can be recognised as the same product a shopper saw elsewhere.
Identifier
Strength
Why it matters
GTIN (EAN, UPC, ISBN)
Strongest
The only genuinely cross-retailer key. Publish it wherever the manufacturer assigns one.
MPN / model number
Strong
Reliable within a brand. Essential in categories where GTINs are inconsistently assigned.
Retailer SKU
Contextual
Meaningful only alongside your name. Useful for your own joins, weak for matching.
Variants are where most catalogues quietly break. Colour, size, capacity and pack quantity are often meaningful product differences that carry different prices and different GTINs, yet they are frequently collapsed onto a single URL with the distinguishing attribute buried in a dropdown. When that happens, whatever reads the page sees one product with an ambiguous price.
Give each purchasable variant its own stable, canonical, crawlable URL where the commercial terms differ.
State the distinguishing attributes as data, not only as selector labels.
Keep a variant’s identifier stable across restocks and page redesigns. A SKU that changes when the page template changes is not an identifier.
Do not reuse a retired identifier for a different product. It corrupts every downstream record built from it.
Specifications that can actually be compared
A comparison needs two products measured on the same axis. Prose does not provide one.
Hard to compare
“Whisper-quiet operation makes this dishwasher perfect for modern open-plan living, with our most efficient wash programme yet.” No number, no unit, no attribute name. “Most efficient yet” is a claim relative to an unnamed baseline.
Comparable
noise_level: 42 dB energy_rating: B place_settings: 14 width: 59.8 cm Named attributes, explicit units, directly rankable against any competing product.
Practical rules that survive contact with a real catalogue:
Use one attribute name per concept across the category. If half your televisions use screen_size and half use display_size, your own filters are already suffering.
Always attach the unit, and keep it consistent. Mixing centimetres and inches inside one category makes numeric comparison meaningless.
Separate the number from the marketing. Keep the persuasive sentence — it does real work for shoppers. Just do not make it the only place the fact appears.
Prioritise the two or three attributes that decide purchases in each category. Nobody needs forty fields. They need the ones people actually compare.
Price and availability with source and checked time
Price is the field most likely to be wrong by the time anyone reads it, which is exactly why it needs context around it rather than more precision.
Publish the price with its currency, unambiguously, near the product name.
Make promotional and recommended retail prices structurally distinguishable, so a discount is not misread as a base price.
State availability plainly — in stock, out of stock, pre-order, discontinued — rather than implying it through the presence or absence of a button.
Where you publish structured product markup, make sure it matches the visible price. A mismatch between markup and page is worse than no markup: it is the fastest way to lose eligibility for rich results.
Any responsible data layer downstream will treat what it read as a snapshot — a value with a date attached, not a live quote. simlir returns price.as_of alongside the amount, currency and retailer for exactly this reason. That is in your interest: it means the assistant that surfaces your product can tell a shopper “£29.99, seen on 7 April — check the retailer page” rather than asserting a stale number as current and generating a disappointed click.
Images, descriptions and canonical retailer links
Hero image. One durable, retailer-hosted HTTPS image that is not an expiring thumbnail. Expiring or signed CDN URLs break every downstream reference within days.
Gallery. Additional angles and the specification or nutrition label where relevant. Label imagery is unusually valuable because it carries facts in a form a visual system can read. All HTTPS.
Description. Two registers are useful: a short factual summary of what the product is and who it is for, and the longer persuasive copy. The short version is what tends to get quoted.
Canonical link. One canonical URL per purchasable product that does not change between site releases. Every downstream reference to your product depends on it.
What a missing field actually costs you
The abstract case for data quality is unconvincing. The concrete case is that each missing field removes a specific opportunity to be chosen.
Missing from the page
What becomes impossible
Commercial consequence
GTIN or MPN
Matching your listing to the same product elsewhere
You are absent from cross-retailer comparisons
Variant-level identity
Knowing which size or colour a price refers to
Wrong-variant clicks, avoidable returns
Named specifications
Filtering or ranking on the deciding attribute
Excluded from “quiet”, “under 60cm”, “fits a 14-inch laptop”
Units on numbers
Numeric comparison
Treated as unknown rather than as a strong value
Explicit availability
Filtering to what a shopper can actually buy
Traffic to a page that cannot convert
Durable hero image
Visual matching and gallery rendering
Missing from image-led discovery entirely
Stable canonical URL
Reliable linking back to you
Referrals decay silently after every site release
A readiness checklist you can run this week
Take one live category — not the whole catalogue — and work through it. A single category is enough to reveal every systemic gap you have.
Every purchasable variant has a stable, crawlable URLAnd its distinguishing attributes are stated as data.
GTIN or MPN is published wherever one existsVisible on the page, not only in an internal system.
The category uses one attribute name per conceptNo screen_size and display_size living side by side.
Every numeric specification carries a unitConsistent across the whole category.
The two or three deciding attributes are present on every productThe ones shoppers in that category actually compare.
Price and currency are unambiguousPromotional and reference prices are structurally distinct.
Availability is stated, not impliedIn stock, out of stock, pre-order, discontinued.
Structured markup matches the visible pageSame price, same availability, same product.
A durable HTTPS hero image existsNot an expiring thumbnail or a signed URL.
Product pages are crawlableIndexable, not blocked, reachable through internal links.
Canonical URLs survive site releasesRedirects in place where they do not.
Someone owns the refresh cadencePrice and availability changes reach the page promptly.
Partnership options for broader discovery
Improving your own pages is the foundation, and it benefits every channel you have. Beyond that, retailers who want their catalogue represented accurately inside assistant and comparison surfaces generally have two routes: publish clean, crawlable public product pages and let structured product data layers read them, or work directly with a product data partner on catalogue listing so that identity, specifications and freshness are handled deliberately rather than inferred.
simlir structures products from public UK retailer pages today. If you would like to review how your catalogue is being represented, or discuss a listing partnership, email hello@simlir.com.
Frequently asked questions
Does adding structured data guarantee my products appear in AI shopping answers?+−
No. Google states that structured data makes a page eligible for rich results but does not guarantee them, and no search or assistant surface offers guaranteed inclusion or ranking. What good data does is remove the reasons your product cannot be matched, compared or accurately described. Treat it as removing obstacles, not as buying placement.
Is a merchant feed enough?+−
A feed is valuable but usually insufficient on its own. Feeds are built for advertising, so they are strong on price, availability and identity, and thin on the specifications that decide comparisons. They also only reach systems you have deliberately submitted to. Your public product pages are what everything else reads, so the same facts need to be legible there too.
Which single change gives the biggest return?+−
Publishing GTINs, and making variant identity explicit. Identity is what allows your listing to be recognised as the same product a shopper is looking at elsewhere. Without it, better specifications and better images cannot be attributed to the right thing. Consistent, unit-bearing specifications on the two or three deciding attributes in each category is a close second.
Should I block AI crawlers from my product pages?+−
It is a commercial judgement, not a technical default, and it is worth making deliberately rather than inheriting it from a robots.txt written years ago. The important thing is that different crawlers control different outcomes: OpenAI documents OAI-SearchBot as the agent that must be allowed for your content to be summarised and cited in ChatGPT search, while GPTBot is the one publishers disallow to exclude content from potential training. Those are separate decisions, and blocking the first reduces the chance of your products being described accurately at all.
How often should price and availability be refreshed?+−
Fast enough that the page a shopper lands on matches what they were shown. In practice that means near-immediate for price changes and stock-outs in high-velocity categories, and daily as a floor elsewhere. Downstream systems will present your price as a dated snapshot regardless; the shorter the gap between your change and your page, the fewer disappointed click-throughs you receive.