Structured data & schema, the AI-native way
Schema markup is a block of JSON-LD code that tells Google exactly what's on a page: product, price, rating, stock. It earns rich results, the stars and prices that make your listing bigger and more clickable in classic Google search.
The same markup also helps AI answer engines cite you, but that side has its own note, schema-for-ai, in the GEO channel. This one is about rich results.
The AI-native split: AI writes the JSON-LD, Google's free testers verify it, and you use real values only, never invented ones.
Fastest path: one prompt, end to end
🤖 AI prompt — paste into ChatGPT / Claude
You are a structured-data engineer. Generate valid schema.org Product JSON-LD for my product page.
Page: [product page URL]
Details: [name, brand, price + currency, availability, SKU or GTIN if you have one, and review count + average rating ONLY if the page really displays them]
Do this:
1. If you can browse, open the page URL and read the real name, price, currency, availability, and the visible review count and average from the page itself.
2. Output ONE complete JSON-LD block: Product with name, image, description, brand, sku, and offers (price, priceCurrency, availability, url). Include aggregateRating and review ONLY with real values you saw on the page or that I typed above.
3. Check your own output before returning it: valid JSON, schema.org property names spelled exactly, price as a plain number.
4. End by telling me to validate it in Google's Rich Results Test (search.google.com/test/rich-results) and validator.schema.org, and to paste any error back to you to fix.
Never invent a rating, review count, price, or GTIN — made-up values violate Google's guidelines and can cost a site all its rich results. Leave out anything you don't actually have. If you cannot browse, use only what I typed and list what's still missing.
Or do it in 4 steps
- Test what you already have. Paste your top product page into Google's Rich Results Test (search.google.com/test/rich-results) to see which rich results it detects, then into validator.schema.org for pure syntax errors. Shopify note: most themes already emit basic Product JSON-LD, so you're usually filling gaps (brand, GTIN, ratings), not starting from zero.
- Add Product + Review markup. Easiest path on Shopify: a review app (Judge.me, Loox and similar) injects Review/aggregateRating markup automatically from real customer reviews. Otherwise generate the JSON-LD with the prompt above and add it to the product template — theme editor > custom liquid block, or a script tag of type application/ld+json.
- Add FAQ markup only where a page has genuine Q&A (shipping, sizing, care). Since 2023, Google shows FAQ rich results only for a narrow set of authoritative sites, so don't expect the dropdown in the SERP — keep honest FAQPage markup anyway; structured Q&A stays easy for machines to read.
- Re-validate and monitor. Re-run both testers after every change, then watch Search Console > Enhancements (Products / Merchant listings) — it reports invalid items and shows impressions your rich results earn.
What each type earns (priority order)
| Schema type | Must-have fields | What it earns |
|---|
| Product | name, image, offers (price, currency, availability) | price + stock in the listing; Merchant listings |
| Review / aggregateRating | ratingValue, reviewCount — real ones | star ratings in the SERP |
| Organization | name, logo, sameAs | the brand anchor every other type leans on |
| LocalBusiness | NAP, hours, geo | pairs with the local pack |
| FAQPage | genuine questions + answers | no SERP snippet since the 2023 restriction; still machine-readable Q&A |
My rule: implement a schema type completely or not at all — a half-filled Product schema earns zero rich-result lift.
Cadence: re-validate whenever you change theme or review app; check Search Console's enhancement reports monthly.