The complete guide to Product schema markup for Google Shopping
Every JSON-LD field Google uses, which ones are required, and the mistakes that cause disapprovals.
Google uses structured data on your product pages to verify the information in your product feed. If your structured data is missing, incomplete, or contradicts your feed, products get disapproved. No structured data, no Shopping ads.
This guide covers every field that matters, the exact format Google expects, and the mistakes that cause the most disapprovals.
Required fields
name: Must match your product title. Don't stuff keywords. Google cross-references this with your feed title and flags mismatches.
image: The primary product image URL. Must resolve to an actual image file (not a placeholder or broken URL).
offers: Contains price, priceCurrency, and availability. This is where most mismatches happen.
The offers object (where 80% of errors happen)
Inside the offers object, you need these four fields:
| Field | Format | Example |
|---|---|---|
| price | Numeric only, no currency symbol | "29.99" |
| priceCurrency | ISO 4217 code | "USD" |
| availability | Schema.org URL | "https://schema.org/InStock" |
| url | Canonical product URL | "https://store.com/product" |
Example JSON-LD
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Nike Air Max 90 Men's Running Shoe",
"image": "https://store.com/images/air-max-90.jpg",
"brand": { "@type": "Brand", "name": "Nike" },
"gtin14": "00194501234567",
"offers": {
"@type": "Offer",
"price": "129.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://store.com/nike-air-max-90"
}
}
Recommended fields that improve performance
brand: Use the brand name as it appears in your feed. Can be a text string or a Brand object with a name property.
gtin/mpn/sku: Include at least one product identifier. GTIN gets you up to 40% more impressions according to Google.
description: Product description. Google compares this to your feed description for consistency. Keep them aligned.
aggregateRating: If your product has reviews, include the rating. Products with star ratings in search results get higher click-through rates.
Common mistakes that cause disapprovals
- Using Microdata instead of JSON-LD (JSON-LD is Google's preferred format, and easier to debug)
- Multiple Product schemas on one page (confuses Google's parser; one page, one Product schema)
- Price in wrong format ("$29.99" instead of "29.99" with separate priceCurrency)
- Availability as plain text ("In Stock" instead of the full schema.org URL)
Validate structured data across your entire store
Our audit checks every product page for schema errors, price mismatches, and missing fields.
Start Free AuditCheck your store's GMC compliance
Run an automated audit with 250+ compliance checks across 27 categories.
Start Free Audit