Product Schema for Google Shopping: Complete Guide (2026)
Every JSON-LD field Google reads from your product pages, which are required for Shopping eligibility, and the mistakes that cause structured-data disapprovals.
Product schema is JSON-LD structured data, defined by schema.org, that you embed on product pages so Google can read prices, availability, brand, ratings, and other attributes without parsing visible HTML. For Google Shopping, valid Product schema is effectively required: it's one of the most common failure patterns we see, and missing or invalid schema triggers "landing page requirements" disapprovals plus reduced impression share for products that do serve.
Why Product schema matters for Shopping
Three reasons:
- Cross-validation with the feed. Google compares your feed's price, availability, and brand against what the page schema says. Mismatches disapprove.
- Rich Results in Search. Product schema unlocks rich snippets in organic Search (price, rating, availability shown directly in SERP).
- Performance Max ranking signal. PMax weights well-structured landing pages higher than poorly-structured ones, even when both pass standard Shopping requirements.
Required fields
For Google Shopping eligibility, Google requires these fields [1]:
| Field | Type | Notes |
|---|---|---|
| name | string | Product title, ideally matching feed title |
| image | URL or array | Primary image, must be reachable, no auth |
| offers.price | number/string | Match the feed price exactly |
| offers.priceCurrency | ISO 4217 code | "USD", "EUR", "GBP", etc. |
| offers.availability | URL enum | https://schema.org/InStock, OutOfStock, PreOrder, etc. |
Recommended fields
Add these to maximize Shopping ranking and rich-result eligibility:
brand(string or Brand node) — strongly affects Shopping rankingsku(string) — useful for variant-level trackinggtinorgtin8/12/13/14(string) — Google's preferred identifiermpn(string) — for branded items without GTINdescription(string) — improves rich-result coverageaggregateRating(AggregateRating node) — unlocks rating stars in Searchreview(Review array) — for individual review displayoffers.priceValidUntil(date) — required for sale pricesoffers.itemCondition(URL enum) — schema.org/NewCondition by defaulthasMerchantReturnPolicy(MerchantReturnPolicy node) — required for return badge eligibility
Full reference example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Acme Wireless Headphones, Black",
"image": [
"https://example.com/products/acme-headphones-1.jpg",
"https://example.com/products/acme-headphones-2.jpg"
],
"description": "Acme noise-cancelling wireless headphones with 40-hour battery life.",
"sku": "ACME-WH-001-BLK",
"gtin13": "0840000123456",
"brand": { "@type": "Brand", "name": "Acme" },
"offers": {
"@type": "Offer",
"url": "https://example.com/products/acme-wireless-headphones",
"price": "199.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"priceValidUntil": "2026-12-31",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": 247
}
}
</script>
Common schema bugs that disapprove products
1. priceCurrency missing
The price is "29.99" but no currency is declared. Google does not know if USD, EUR, or CAD. Fix: always populate priceCurrency with an ISO 4217 code.
2. availability as plain text
The value is "In Stock" or "true" instead of the URL https://schema.org/InStock. Google's parser is strict here. Fix: use the full schema.org URL.
3. Image URL not reachable or requires auth
The image link redirects, returns 404, or requires authentication. Fix: serve images at stable public URLs.
4. Multiple Product schemas on the same page
Theme emits one Product node, an SEO plugin emits another, a review app emits a third. Google picks one and may pick the wrong values. Fix: audit page source, disable all but one source.
5. priceValidUntil missing on sale prices
You have a sale price with no end date in the schema. Google strips the rich result. Fix: include priceValidUntil for any product where the price is time-limited.
6. Brand as a string when Google expects a node
Some Shopify themes emit "brand": "Acme". Google now requires Brand to be a node: "brand": { "@type": "Brand", "name": "Acme" }. The string form still works but emits a warning.
Validation workflow
- Pick 5 random products (a high-price item, a variant-heavy item, a sale item, a low-stock item, a free-shipping item).
- Run each through Google's Rich Results Test [4]. Confirm Product schema passes with no errors and only minor warnings.
- Cross-check with Schema.org's Markup Validator [5] for strict spec compliance.
- Use Search Console's URL Inspection to fetch the page as Googlebot and confirm the rendered HTML includes the JSON-LD block.
- Compare schema values against feed values for each product. Mismatches must be resolved before going live.
Validate Product schema across your catalog
Free FeedShield audit. Tests Product schema on every URL, flags missing required fields, surfaces feed-vs-schema mismatches.
Run free auditBottom line
Product schema is the contract between your landing page and Google's Shopping infrastructure. Get the five required fields right, add the recommended ones for ranking and rich results, audit for common bugs, and validate on a sample. Most schema disapprovals come from one of six recurring bugs covered above; fixing those resolves nearly all "landing page requirements" flags we see.
Frequently asked questions
Is Product schema required for Google Shopping?
Technically Google can serve Shopping ads from feed data alone, but in practice, missing or invalid Product schema causes 'landing page requirements' disapprovals and reduces impression share even when ads serve. Treat Product schema as required.
Do I need both feed data and Product schema?
Yes. Google cross-checks. The feed sends data to Merchant Center; Product schema lets Google validate that the landing page actually matches the feed. Mismatches between the two trigger disapprovals.
What's the difference between Microdata, RDFa, and JSON-LD?
All three are valid ways to express schema.org data on a page. JSON-LD is the format Google recommends because it lives in a single script block separate from visible content, which makes it easier to maintain.
Can I have multiple Product schemas on the same page?
No. Multiple Product schemas confuse Google's parser and often lead to mismatched data extraction. Audit your page for any plugins or apps that emit Product schema and disable all but one.
Does AggregateRating from review apps count as Product schema?
It can if the review app injects a complete Product block. More often, review apps inject only an AggregateRating block tied to a Product node that the theme also creates separately. This causes duplicate Product schemas. Best practice: pick one source (theme or review app) and disable the other's schema output.
How does Google handle variant products in Product schema?
Use the ProductGroup pattern or emit Product schema per variant page. Avoid trying to express variants inside a single Product node; Google's parser does not handle that pattern reliably across all categories.
Sources and further reading
Cited inline as [1], [2] and so on.
- [1]Product structured data — Google Search Central, Google (2026-03-10)
- [2]Schema.org Product, Schema.org
- [3]Schema.org Offer, Schema.org
- [4]Rich Results Test, Google
- [5]Schema Markup Validator, Schema.org
Written by
Charles ReedCompliance research lead
Charles leads compliance research at FeedShield. He tracks Google Merchant Center policy updates, turns them into audit rules inside the FeedShield ComplianceIQ engine, and writes the step-by-step recovery guides used by agencies and merchants appealing suspensions. His coverage focuses on the practical fixes that move accounts from disapproved to reinstated.
Related reading
Check your store's GMC compliance
Automated checks across 27 categories. Free, no credit card.