← ClickRadius Institute

Product Schema for AI Shopping and Recommendations

Published April 23, 2026 · ClickRadius Institute

Ask an AI assistant "what's the best waterproof hiking boot under $180 that ships free and takes returns?" and it does not read your marketing copy. It reads structured data: a price, an availability flag, a return policy, a brand, a product identifier that lets it match your item against every other listing of the same boot. Product schema is the machine-readable spec sheet that decides whether your item is even eligible to be compared. This guide covers the properties that matter, the ones AI shopping assistants lean on hardest, the code to implement them, and the single hard rule that protects your whole domain: never fabricate a review.

Why product markup changed jobs

For a decade, Product schema earned cosmetic wins — a price and a star rating under a blue link, a spot in a shopping carousel. That job still exists, but a bigger one has arrived. Generative shopping assistants no longer send a user to ten stores to compare; they assemble the comparison themselves and present a shortlist. Industry trackers estimated that roughly 60% of searches were already ending without a click by 2024, and AI Overviews have expanded rapidly through early 2026, pushing more of the comparison work onto the engine and away from the shopper's browser tabs. When the machine builds the shortlist, the machine reads structured data to build it.

According to Google's Product structured data documentation, product markup helps Google understand product information — name, price, availability and review ratings — and can make a product eligible for enhanced experiences including merchant listings. The same fields that power those listings are the fields an assistant needs to answer a comparison question. A product without them is not "ranked lower"; it is often not in the candidate set at all, because the engine has no structured price or availability to reason over.

An AI shopping assistant is a spec-sheet reader with a budget constraint and a shortlist to fill. Prose it can skim; a missing price it cannot guess. The product that ships its facts in a form the machine can compare is the product that gets compared.— ClickRadius Institute analysis

The anatomy: Product, Offer, and rating

Three schema types do the work together. Product describes the thing. Offer (nested under the product's offers property) describes the commercial terms — the price you can actually buy it at, today. AggregateRating and Review describe what real customers said. Google's guidance is explicit that a valid product-with-offer needs, at minimum, a name and an offers block with price and priceCurrency. Everything else raises how completely the engine understands you.

Here is a complete, honest Product block for a physical retail good:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "TrailGrip Waterproof Hiking Boot",
  "image": [
    "https://example.com/img/trailgrip-1x1.jpg",
    "https://example.com/img/trailgrip-4x3.jpg"
  ],
  "description": "Full-grain leather waterproof hiking boot with a Vibram outsole and gusseted tongue.",
  "brand": { "@type": "Brand", "name": "Summit Outfitters" },
  "sku": "SO-TG-450",
  "gtin13": "0192837465012",
  "mpn": "TG-450",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/boots/trailgrip",
    "priceCurrency": "USD",
    "price": "174.00",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "seller": { "@type": "Organization", "name": "Summit Outfitters" }
  }
}

Notice what this block does not contain: any rating. That is deliberate, and we return to it below. Everything present is a fact the merchant can stand behind — the price is the price, the GTIN is the manufacturer's, the availability reflects real stock.

Price and availability: the properties that decay fastest

Price and availability are the most decision-relevant properties and the most dangerous to get wrong, because they change and your markup can silently fall out of sync. An assistant that reads InStock and $174, then surfaces you, then sends a shopper to a sold-out page or a $210 checkout, produces exactly the mismatch that erodes trust in the source. Google's documentation warns that structured-data price and availability must match the price and availability the user sees on the page. Wire these fields to live inventory and pricing systems, never to a static template value. Use the schema.org availability enumerations honestly: InStock, OutOfStock, PreOrder, BackOrder, Discontinued. An honest OutOfStock is better than a stale InStock, because the second is a broken promise the engine can detect on the next crawl.

Identifiers: SKU, GTIN, MPN, and brand

Identifiers are what let an engine understand that your TrailGrip boot and the same boot sold by three other retailers are one product. That matching is what powers cross-source reviews and true comparisons. The distinction that trips people up:

According to the schema.org Product vocabulary, all of these are first-class properties, and the more of them you supply truthfully, the more confidently an engine can resolve your listing to a known product. For unique or handmade goods that have no GTIN, brand plus a stable MPN or SKU is the correct, honest representation — do not invent a GTIN to fill the field.

Shipping and returns: the properties AI shoppers now ask about

Shoppers ask assistants about delivery cost, delivery speed, and returns as often as they ask about price. Two structured-data properties answer those questions directly, and both have grown in prominence as merchant listing requirements have tightened.

shippingDetails (an OfferShippingDetails node) lets you declare shipping cost and delivery time by destination. hasMerchantReturnPolicy (a MerchantReturnPolicy node) declares your return window and terms. Google's merchant listing documentation describes how these fields feed shipping and return annotations. Here is the Offer extended with both:

"offers": {
  "@type": "Offer",
  "priceCurrency": "USD",
  "price": "174.00",
  "availability": "https://schema.org/InStock",
  "shippingDetails": {
    "@type": "OfferShippingDetails",
    "shippingRate": {
      "@type": "MonetaryAmount",
      "value": "0",
      "currency": "USD"
    },
    "shippingDestination": {
      "@type": "DefinedRegion",
      "addressCountry": "US"
    },
    "deliveryTime": {
      "@type": "ShippingDeliveryTime",
      "handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
      "transitTime": { "@type": "QuantitativeValue", "minValue": 2, "maxValue": 5, "unitCode": "DAY" }
    }
  },
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "applicableCountry": "US",
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": 30,
    "returnMethod": "https://schema.org/ReturnByMail",
    "returnFees": "https://schema.org/FreeReturn"
  }
}

These fields answer "free shipping?" and "30-day returns?" without the assistant having to parse a policy page. When two products are otherwise comparable, the one whose free shipping and free returns are machine-legible is the one an assistant can confidently recommend to a shopper who asked for exactly that. As always, the terms must be true and must match your published policy — a declared FreeReturn that turns into a restocking fee at the counter is the same broken-promise pattern that costs a source its standing.

Ratings and reviews: the one hard rule

Reviews are the highest-leverage and highest-risk part of product markup. An aggregateRating with a strong average and a real review count is a powerful recommendation signal — and a fabricated one is the fastest way to convert your entire domain's structured data into suspect testimony. This is not a gray area.

Ratings markup is a claim about other people's experiences. Invent it and you have not gamed a system — you have told the system, in a permanent and auditable way, that your metadata cannot be trusted. Every other honest signal on your domain pays for that lie.— ClickRadius Institute analysis

Google's review snippet guidelines are unambiguous: ratings must come from genuine, independent reviewers, must be verifiably visible on the same page, and self-serving reviews the business writes about itself do not qualify. Structured-data spam — including fake reviews — can draw a manual action that suppresses rich results across the whole site. The rule ClickRadius applies when scoring a page is simple: if the reviews are real and on the page, mark them up; if they are not, omit rating properties entirely. A product with honest Product and Offer data and no rating is fully usable by an AI shopping assistant. A product with a fabricated 4.9 is a liability waiting for a crawl.

When you do have real reviews, both an aggregate and individual reviews strengthen the entity:

"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.6",
  "reviewCount": "218",
  "bestRating": "5"
},
"review": [{
  "@type": "Review",
  "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
  "author": { "@type": "Person", "name": "D. Alvarez" },
  "datePublished": "2026-03-30",
  "reviewBody": "Kept my feet dry through two river crossings. True to size."
}]

The reviewCount and ratingValue must equal what a human sees on the page. If you display 218 reviews at 4.6 stars, the markup says 218 and 4.6 — no rounding up, no counting deleted reviews. This is the same honesty-of-numbers discipline that governs every credible signal.

How assistants actually assemble a recommendation

It helps to picture the pipeline. A shopping assistant answering a comparison query typically: (1) retrieves candidate products it can identify — which requires resolvable identifiers; (2) filters by the shopper's stated constraints — price ceiling, availability, free shipping, return window — which requires those to be structured, not buried in prose; (3) ranks the survivors using quality signals including honest ratings and source credibility; and (4) explains the pick, often quoting a review or citing a spec. A product that fails step one on missing identifiers never reaches step three, no matter how good it is. The lesson is that completeness at the bottom of the funnel matters more than optimization at the top.

This is also why off-page presence compounds with on-page markup. Industry data suggests the majority of what drives an AI recommendation lives off-site — the product's presence in retailer catalogs, marketplaces, and review platforms that let the engine triangulate the same GTIN across sources. Your structured data is the anchor that ties your listing into that web of corroboration. We treat that division of labor in Entity Authority vs Keywords in AI Search.

Merchant listing eligibility, briefly

Google distinguishes "product snippet" experiences (rich results on your own page) from "merchant listing" experiences (shopping surfaces). Merchant listing eligibility asks for the transactional completeness this whole guide has described: a valid Offer with price and availability, plus, increasingly, shipping and return details. According to Google's product documentation, the required and recommended property sets differ between the two, and the merchant-listing set is the more demanding one. You do not need a Merchant Center feed for the markup to be valuable to AI assistants — the on-page structured data stands on its own — but treating the merchant-listing property list as your completeness checklist is a good way to make sure the fields assistants want are all present.

Implementation checklist

  1. One Product JSON-LD block per product page, generated from your catalog fields — never hand-typed per SKU.
  2. name mirrors the visible product title; image supplies multiple aspect ratios.
  3. A stable identifier: gtin when it exists, else brand + mpn; include your sku alongside.
  4. A complete Offer: price, priceCurrency, availability, wired to live pricing and inventory so it always matches the page.
  5. shippingDetails and hasMerchantReturnPolicy reflecting your real, published terms.
  6. Ratings and reviews only if genuine and visible on the page; otherwise omit them entirely.
  7. Validate every template with the Schema.org validator and Google's Rich Results Test after each change.

Frequently asked questions

Can I add review or rating markup if I don't have real reviews?

No. AggregateRating and Review markup must reflect genuine, verifiable reviews that are visible on the page. Google's product review guidelines require that ratings come from real customers, and fabricated or self-serving review markup is a structured-data spam violation that can trigger a manual action against your whole site. If you have no reviews yet, omit the rating properties entirely and ship the rest of the Product and Offer data — that is honest and still fully usable by AI shopping assistants.

Which Product properties matter most for AI shopping assistants?

The transactional facts an assistant needs to compare and recommend: name, brand, a stable product identifier (gtin or mpn plus your sku), and a complete Offer with price, priceCurrency and availability. Beyond that, shippingDetails and hasMerchantReturnPolicy increasingly influence which products get surfaced because return and delivery terms are decision factors a shopper asks about. Images and a clear description round out the entity.

Do I need a GTIN, or is a SKU enough?

A SKU is your internal identifier and belongs in the markup, but it does not connect your product to the global catalog. A GTIN (UPC, EAN or ISBN) or an MPN plus brand is what lets an engine match your listing to the same product sold elsewhere, read cross-source reviews, and include you in comparisons. For manufactured retail goods, provide the GTIN whenever one exists; for unique or custom items, brand plus MPN is the honest fallback.

ClickRadius audits every product page for structured-data completeness and honesty — valid offers, resolvable identifiers, and rating markup that matches real on-page reviews — as part of its six-category AI-citation score, and can fix what it finds. Get your free AI Readiness Score, or see plans on the pricing page.