Product Schema: The Difference Between Listed and Recommended

Product Schema: The Difference Between Listed and Recommended

Product schema is the structured data that tells a machine what your product is. A bare Product with a name and a price gets you listed. Brand, identifiers like GTIN, accurate availability and real ratings give an AI enough to compare you, and that is what gets you recommended when a shopper asks.

By Margareta Petrovic, founder of Visibility Mesh. We measure how legible ecommerce stores are to AI, and publish what we find. Updated September 2026.
Key takeaways
  • Bare-minimum product schema gets you listed; complete product schema gets you compared, and chosen.
  • The gap between the two is not magic. It is fields: identifiers, brand, availability, ratings.
  • An engine can only compare you on attributes you actually declare; a missing field is a comparison you lose by default.
  • Avoid the trap of declaring fields you cannot back up on the page. Mismatched schema gets your whole signal distrusted.

There is a quiet ceiling most stores hit without noticing. Their product schema is technically present, name, price, maybe availability, so they appear in the machine’s index. But appearing and being recommended are different events. When an AI weighs which product to suggest, it reasons over the products it understands most completely. Thin schema gets you into the room; full schema gets you picked.

What our measurements show
72%
of 216 Shopify stores failed Entity Integrity in our 2026 study. Their product schema was thin, broken or missing offers, price, availability and ratings.
12.7
points higher, on average, for sites that carry any structured data in our study of 303 non ecommerce websites. That is a correlation, not proof of cause.
0
of the 216 stores scored 80% or better on any of our 5 metrics, Entity Integrity included.

What “listed” looks like

The minimum is a Product with a name, an offer, and a price. That is enough to be catalogued. It is not enough to be differentiated, because the machine knows almost nothing about the product beyond that it is for sale. You are a row in a list, indistinguishable from the row above and below.

Product schema: listed vs. recommended. Bare schema gets you listed. Complete schema gets you compared, and chosen. LISTED (bare minimum) { "@type": "Product", "name": "Trailblazer Boot", "offers": { "price": "189.00" } } AI knows it exists. It cannot compare it on brand, identifier, rating, or stock so it rarely makes the shortlist. present, not preferred RECOMMENDED (complete) { "@type": "Product", "brand": "…", "gtin": "00012345678905", "name": "Trailblazer Boot", "offers": { "price": "189.00", "availability": "InStock" }, "aggregateRating": { "ratingValue": "4.8", "reviewCount": "212" } } comparable on every deciding field The gap between the two is not magic. It is fields. VISIBILITY MESH BARE → COMPLETE VM-S-P2-02 · r1.0 CAN AI READ YOU?

The difference is the fields that let a machine compare you: identifiers like GTIN and MPN so it can match you to reviews and price comparisons across the web; brand, so it knows who makes it; availability and price kept accurate; and rating data where you genuinely have it. Each field is another reason the machine can choose you with confidence instead of guessing.

Field Listed (bare minimum) Recommended (complete)
name / price Present Present
gtin / mpn Missing Declared. Matchable to the real item
brand Missing Declared. Comparable within a brand
availability Missing InStock / OutOfStock. Transactable
aggregateRating Missing Rating + review count. Trusted
Each declared field is a question an engine can answer about you. Each blank is a comparison you forfeit.

The trap to avoid

Do not be tempted to inflate. Schema that claims a rating the page does not show, or a price that is not real, is a mismatch that destroys trust, which is worse than the missing field you were trying to paper over. Complete and accurate beats complete and inflated, every time. The full map of ecommerce schema lives in our cornerstone on schema for ecommerce.

What our own product page declares, and 2 fields it leaves out

We read the structured data on our own product page for the Full Assessment and Roadmap on September 26, 2026, the same way a crawler fetches it. The Product block declares a name, brand, SKU, category, description, image and URL. Its offer declares the price, the currency, availability and the URL.

It declares no GTIN, because a service has no barcode or manufacturer part number to match. It declares no aggregateRating, because the page shows no reviews. Leaving both out is correct for this page. The advice in this article applies to fields that fit your product, and when a field does not fit, an invented value only creates the mismatch described above. If you do have real reviews, collecting reviews AI trusts covers getting them onto the page before they go into your schema.

You can run the same read on your own store. Open a product page, view the page source, and search it for ld+json to find each structured data block. Find the block whose type is Product and list every field in it. Then sort each missing field into 2 groups. Fields your product has but the page does not declare are your work list. Fields that do not apply to your product stay out.

A scan is a snapshot. Legibility drifts

Complete product schema is never finished. A theme update changes the structured-data output, an app injects its own, a migration drops a block, and the machine-readable layer regresses silently while the storefront still looks perfect to you. Your catalog and apps change weekly, so valid, matched schema is a moving target, not a one-time pass. That is why serious stores measure, fix, and re-measure, and why we re-scan our own store on a schedule, in public.

Questions people actually ask

What is the minimum product schema I need?

A Product with a name, an offer, and a price is the floor, and it is enough to be listed. But minimal schema only makes you catalogued, not comparable. It tells the machine you exist without telling it enough to prefer you.

Which product schema fields help AI recommend me?

The comparison fields: identifiers like GTIN and MPN, brand, accurate availability and price, and genuine rating data. These let a machine match you to external reviews and comparisons and reason about you with confidence rather than guessing.

Should I add rating schema if I do not have many reviews?

Only if the ratings are real and shown on the page. Inventing or inflating rating data creates a mismatch between your schema and your visible content, which damages trust far more than simply not having the field. Accuracy beats completeness here.

Does a service or custom product need a GTIN in its product schema?

A GTIN belongs in your schema only when the product carries a real barcode. If it has none, leave the field out and declare brand and SKU instead. Our own product pages do this, because a service has no barcode to declare.


See what a machine sees

You cannot tell from your browser whether AI can read your store. You can find out in a few minutes. Run a free scan and see the exact layer the machine reads, and where you are losing the shortlist.

Run my free scan →

Sources: Visibility Mesh, The State of AI Visibility 2026 (216 Shopify stores, scored June 2026), The State of AI Visibility on the Non Ecommerce Web (303 websites, July 2026) and our own product page, read September 26, 2026. Every figure on this page was measured by us.

Your buyers are already asking AI. This is how you make your website readable to the assistants they ask.

Everything in this article is measurable on a live storefront. The AI Visibility Setup is done for you: we make your store readable to ChatGPT, Google AI Mode, Gemini, Perplexity and Copilot, then measure it again at the same depth and show you exactly what moved. You earn organic traffic you own, instead of renting visitors by the click.

AI Visibility Setup See all assessments

See whether this applies to your site

This article is about what AI can read; the scan checks your structured data page by page.

The free scan reads 5 pages of any website as AI crawlers receive them and returns a scorecard with 3 complete findings, each naming the page and the fix. No install, no call, no card.

Run the free scan