Product pages that search and AI systems can read
What Google's own documentation asks of a product page: required markup, one product per page, the price rules, and why markup belongs in the initial HTML.
By Metryn · Updated 16 October 2026 · 4 min read
A product page has two audiences that behave differently. A shopper looks at the photo and the price. A crawler needs the same facts in a form it can parse without guessing. When those drift apart, you get listings with the wrong price, missing availability, or no listing at all.
Snippets versus merchant listings
Google separates two kinds of Product markup. Product snippets are for pages where people can't buy directly, like reviews. Merchant listings are for pages where they can, and they allow more detail such as shipping and return information. Its documentation also says that marking up the required merchant listing properties can make a page eligible for snippets too.
What a merchant listing needs
| Property | Status in Google's docs | Rule worth knowing |
|---|---|---|
name | Required | The product name |
image | Required | Must be crawlable and indexable |
offers.price | Required | Must be greater than zero for merchant listings |
offers.priceCurrency | Required | Three-letter ISO 4217 code |
offers.availability | Recommended | Keep it in step with the real stock status |
gtin, brand, sku | Recommended | Use the most specific GTIN that applies; one brand name |
shippingDetails, hasMerchantReturnPolicy | Recommended | Google suggests a site-wide return policy under Organization |
Two details catch stores out. First, the merchant has to be the seller: pages that send the shopper to another seller aren't eligible for merchant listings. Second, a past priceValidUntil date can stop the listing from showing, which is easy to trigger with a sale that someone forgot to remove.
One product per page
Google says Product rich results support pages that focus on a single product, or variants of the same product. A category page that lists forty products isn't a good place for Product markup on each of them. Put the markup on the product pages, and let the category page be a normal, well-linked list.
Put the markup in the first response
Google's merchant listing documentation recommends including Product markup in the initial HTML, and notes that markup generated with JavaScript can make shopping crawls less frequent and less reliable. If your theme or app injects JSON-LD after load, it's worth checking whether it's present in the raw HTML response. View source, not the inspector, is the quick test.
Keep markup and page honest with each other
Google's AI features documentation repeats a point that applies here: structured data should match the visible text of the page. A price in the markup that doesn't match the price on screen is worse than no markup. If you also use a Merchant Center feed, Google says combining page markup and a feed maximizes eligibility, so keep both sources telling the same story.
Questions people ask
Do I need a Merchant Center feed as well as markup?
Google says that using both page markup and a Merchant Center feed maximizes eligibility, and that some experiences combine data from both. If you only have one, markup on the page is the one that also helps everything else that reads the page.
What if my price changes often?
Then the markup has to change with it. A price in the markup that doesn't match the visible price is worse than no markup, and an expired priceValidUntil can stop a listing from showing.
Can I mark up a product I don't sell myself?
Not for merchant listings. Google says the merchant has to be the seller of the product, and that pages that link to other sellers aren't eligible. Those pages can still use product snippets.
Do category pages need Product markup?
Google says Product results support pages focused on a single product or its variants, and that category and listing pages aren't suitable for it.
What to do this week
- View the source of your best-selling product page and find the JSON-LD.
- Check price, currency and availability against the visible page.
- Add
gtinandbrandwhere you have them. - Add a site-wide return policy under
Organization.
Check your own site
Paste your address below. The free scan looks at robots.txt, your sitemap, access for the main AI crawlers and structured data, and shows what it found in seconds. It tells you what a machine can fetch and read. It doesn't predict rankings or citations.
Sources
- Google Search Central: Product structured data: https://developers.google.com/search/docs/appearance/structured-data/product
- Google Search Central: Merchant listing structured data: https://developers.google.com/search/docs/appearance/structured-data/merchant-listing
- Google Search Central: Structured data for ecommerce sites: https://developers.google.com/search/docs/specialty/ecommerce/include-structured-data-relevant-to-ecommerce
- Google Search Central: JavaScript SEO basics: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
Keep reading
Guides for stores and SaaS
What makes an online store look trustworthyGuides for stores and SaaS
AI search readiness for a SaaS site: where to startGuides for stores and SaaS
Dropshipping stores: supplier copy and duplicates
Running a store? See Metryn for online stores for what the scan checks and the other guides written for store owners.
Want to check one file yourself? Try the free AI crawler robots.txt checker or the llms.txt validator, or read how the score is built.