Skip to the journal
Search Engine Optimization Directory

Product Schema and Merchant Listings: Price, Availability, and Reviews in Search

  • Filed November 10, 2026
  • Structured data, guide 6 of 9

Product structured data tells Google what a product page sells: the product’s name and image, its price and availability, and its reviews or ratings. Google uses it for two classes of search features, and the difference between them decides which properties you need. Google’s product documentation describes product snippets “for product pages where people can’t directly purchase the product” and merchant listings “for pages where customers can purchase products from you” (Google’s Product structured data overview). A review site and an online store therefore mark up the same product differently. Mixing the two models, for example merchant listing markup on a review page that only links to stores selling the product, is a mistake to rule out before writing any markup.

Which feature applies

Page type Feature Key requirement
Store page where the product can be bought Merchant listing Offer with price and currency; page must allow purchase
Review or comparison page, product not sold there Product snippet Product with a review, aggregateRating or offers
Store page Both Google notes that adding merchant listing properties generally makes the page eligible for product snippets too

Google’s merchant listing documentation adds that only pages where a shopper can purchase a product are eligible for merchant listing experiences, not pages that link to other sites selling the product, and that product rich results support pages focused on a single product or variants of the same product (merchant listing documentation).

Required and recommended properties

Merchant listings (from Google’s merchant listing documentation):

  • Product.name and Product.image are required; image URLs must be crawlable and indexable.
  • Offer.price (or priceSpecification.price) and Offer.priceCurrency are required.
  • availability is recommended, using Schema.org values such as InStock, OutOfStock, BackOrder, PreOrder, SoldOut and Discontinued. Google says not to specify more than one value.
  • Identifiers such as gtin, mpn and brand, shipping and return policy details are recommended.

Product snippets (from Google’s product snippet documentation): name is required, and the item must include one of review, aggregateRating or offers (product snippet documentation).

A product JSON-LD example with validation notes

The example describes a fictional product on a store page.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailmate 28L Hiking Backpack",
  "image": [
    "https://www.example.com/images/trailmate-28-front.jpg",
    "https://www.example.com/images/trailmate-28-side.jpg"
  ],
  "description": "28-liter daypack with a padded hip belt, rain cover and 15-inch laptop sleeve.",
  "sku": "TM28-GRN",
  "gtin13": "0123456789012",
  "brand": { "@type": "Brand", "name": "Trailmate" },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/products/trailmate-28/",
    "price": "89.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "128"
  }
}

Validation notes:

  • The price, currency, availability and rating must match what the page shows. Google says it may attempt to verify merchant listing data before showing it.
  • The aggregateRating must come from reviews collected and displayed on this page. Google’s review snippet guidelines say “Don’t aggregate reviews or ratings from other websites”, and that users should be able to see the aggregate rating on the page (review snippet documentation).
  • The GTIN shown is a placeholder; use the real identifier.
  • Run the Rich Results Test (reading its errors and warnings); it should report merchant listing and product snippet eligibility, with errors only if required properties are missing.

Variants

Products sold in several sizes or colors can use ProductGroup with hasVariant, variesBy and productGroupID to group variants, according to Google’s product variant documentation (Google on product variants). Google requires each variant to have a unique ID (such as sku or gtin), and for multi-page variant setups, each page must carry full, self-contained markup for the entities on it.

Merchant Center and structured data together

Google notes that rich product data can come from structured data, a Merchant Center feed, or both: “Providing both structured data on web pages and a Merchant Center feed maximizes your eligibility to experiences and helps Google correctly understand and verify your data” (Google’s Product structured data overview). When both sources exist, keep them consistent. Merchant Center’s automations use the price, availability and condition found on the landing page to remove mismatches, but Google’s help says they “may not work for products with frequent price or availability value changes” and that such a product “may be disapproved instead of updated” when a mismatch is detected (Merchant Center automatic item updates).

Keeping reviews separate from offers

  • Editorial review of a product you do not sell: use Product with a review (and an author), not offers pointing to someone else’s store. This is a product snippet case.
  • Customer reviews on your own store: use aggregateRating and review from your own customers, displayed on the page.
  • Self-serving reviews of your business as an organization: Google’s review snippet guidelines say pages using LocalBusiness or other Organization markup where the entity controls reviews about itself are ineligible for star review features. Product reviews on a product page are a different case from reviews of the store itself.

What product markup does not do

  • It does not guarantee rich results. Google’s general guidelines say correctly marked-up structured data is not guaranteed to appear.
  • It does not replace general product page quality: descriptions, images, specifications and availability information readers need.
  • Price drops and other enhancements are shown at the discretion of each experience, according to Google.

Product markup checklist

  • [ ] Correct model chosen (merchant listing for sellable pages, product snippet for review pages).
  • [ ] Required properties present for that feature.
  • [ ] Price, currency, availability and ratings match visible content.
  • [ ] One availability value per offer.
  • [ ] Reviews sourced from this page’s users or from the reviewer named in the markup.
  • [ ] Variants modeled with ProductGroup where applicable.
  • [ ] Merchant Center feed consistent with the page, if used.
  • [ ] Rich Results Test passes; Search Console merchant listing and product snippet reports monitored.