Skip to content
Enjoy 20% off for 12 months on all plans. Use promo code: HYPERGROWTHClaim it

Lesson 2 of 4: Product schema and rich results

Product schema: how to get price and stars in Google results

The structured data that earns price, availability and review stars in results, and how to check it's valid.

6 min readIntermediateUpdated 2026-10-26

Picture two stores selling the same headphones, both on the first page. One result shows the price, "In stock" and a row of stars under the title. The other is a plain blue link. The shopper clicks the one that already answered their first two questions, and the difference between the two is code they never see.

What structured data does, and what it doesn't

Structured data is a small block of JSON-LD (a machine-readable format Google reads from a <script> tag in your page) that states what the page is about. This is a Product. Here's its name and price. It's in stock. Google uses that to understand the page and, for some types, to decorate the result.

Product still earns a visible feature. Google's search gallery documentation lists the structured data types that currently produce enhanced results, and Product sits on it alongside Review snippet. A type missing from that list produces nothing in results, however valid the markup. FAQ and HowTo results were retired, per Google's Search Central announcements. If your theme still injects FAQPage markup onto product pages, it adds weight and returns nothing.

Two limits are worth knowing. Google describes structured data as a way to understand a page and qualify for features, so it isn't a ranking signal. And valid markup only makes a page eligible. Google decides, search by search, whether to show the feature.

Merchant listings and product snippets

Google's Product structured data documentation describes two experiences. Merchant listings are for pages where the shopper can buy, which means your product pages. Product snippets are for pages that discuss a product without selling it, such as a review. Merchant listing markup also qualifies a page for snippets, so a store only has to get the first right.

For a merchant listing, Google's documentation requires three things on the Product: a name, an image, and an offer carrying a price and a currency. It recommends availability, a SKU, a GTIN (the barcode number, which lets Google match your listing to the same product elsewhere), the brand, shipping details and the return policy. Supply whatever you have. You don't need to guess which feature will use which field. A minimal valid block looks like this:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Ridgeline 3 trail running shoe",
  "image": "https://example.com/images/ridgeline-3-navy.jpg",
  "sku": "RL3-NVY",
  "brand": { "@type": "Brand", "name": "Summit Outfitters" },
  "offers": {
    "@type": "Offer",
    "price": "129.00",
    "priceCurrency": "GBP",
    "availability": "https://schema.org/InStock"
  }
}

The same documentation says merchant listing markup belongs on pages about a single product. A collection page that lists many products isn't a merchant listing. Adding the markup there earns nothing.

Stars come from shoppers

The stars in a result come from an aggregateRating inside the Product, and Google's review snippet guidelines are strict about where it comes from. Ratings must be sourced directly from users. The reviews must be readily visible on the page, and the markup must describe that specific product. A business that rates itself on its own pages is writing the self-serving review those guidelines rule ineligible. That's why a homepage with five stars in its code never shows them.

The route to stars is the unglamorous one. Collect genuine product reviews, show them on the product page, and let your review app or platform generate the aggregateRating from the reviews it displays. A rating in the code with no reviews on the page is the mismatch the guidelines rule out. Reviews, UGC and brand signals covers how to collect them.

Keep the code and the page telling one story

Google's structured data guidelines require the markup to reflect what the page shows and to stay current. The price in the code must be the price on the page. Availability has to change when stock changes. The image should show the product itself, never a logo. Platforms and apps go wrong in predictable ways:

  • A theme emits one Product block and a review app emits a second, with a different price or an extra rating. Two blocks with different values are conflicting claims about one page. Keep a single block per product.
  • A sale ends but the page is cached, so the markup still carries the old price.
  • JavaScript injects the block after the page loads, and the crawler sometimes reads the page before the block exists. Put it in the HTML the server sends.

Google's Product documentation also recommends sending the same data through a Merchant Center feed, since the two sources let Google check each other. Product feeds and free listings covers that side.

Frequently asked questions

What is a product schema?

It's the structured data vocabulary for describing a product to search engines: name, image, price, currency, availability and, where you have them, SKU, GTIN and brand. You add it as JSON-LD on a page about one product. Google then knows what the page sells and can show details in the result if the page qualifies.

What is schema with example?

The block in the merchant listings section is one. It names a trail running shoe, gives its image and SKU, and attaches an offer of 129.00 in British pounds marked in stock. Every value in it should match what a shopper sees on that page today.

What is a schema in marketing?

For a marketer, schema is the labelling layer behind your pages. It doesn't change what visitors read, but it lets search engines read your prices, ratings and stock without guessing. The payoff is a richer result and a better chance of the click, so long as the markup is honest and current.

What to take away

  • Product markup makes a result eligible to show price, availability and stars. It doesn't make the page rank higher, and the feature is never guaranteed.
  • A merchant listing needs a name, an image and an offer with a price and currency, per Google's documentation, and it belongs on single-product pages where the shopper can buy.
  • Stars come from genuine, visible product reviews marked up on that product's page. Self-serving or invisible ratings are ineligible.
  • The markup must match the page today: one block, the live price, the current stock status, served in the HTML instead of added by a script.

Next

Google also needs to see the product, and it reads the photo through the text around it. Continue with Product images and alt text.

Free tools this lesson uses

Saved in this browser only.

Chapter 4: Turn product pages into your best salesperson

All 9 chapters