Skip to content
Technical Charles ReedUpdated 13 min

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 for Google Shopping: Complete Guide (2026)
On this page6 sections
+
  1. 01Why Product schema matters for Shopping
  2. 02Required fields
  3. 03Recommended fields
  4. 04Full reference example
  5. 05Common schema bugs that disapprove products
  6. 06Validation workflow

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: 867 stores in our audit data fail this check, 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:

  1. Cross-validation with the feed. Google compares your feed's price, availability, and brand against what the page schema says. Mismatches disapprove.
  2. Rich Results in Search. Product schema unlocks rich snippets in organic Search (price, rating, availability shown directly in SERP).
  3. 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]:

FieldTypeNotes
namestringProduct title, ideally matching feed title
imageURL or arrayPrimary image, must be reachable, no auth
offers.pricenumber/stringMatch the feed price exactly
offers.priceCurrencyISO 4217 code"USD", "EUR", "GBP", etc.
offers.availabilityURL enumhttps://schema.org/InStock, OutOfStock, PreOrder, etc.

Add these to maximize Shopping ranking and rich-result eligibility:

  • brand (string or Brand node) — strongly affects Shopping ranking
  • sku (string) — useful for variant-level tracking
  • gtin or gtin8/12/13/14 (string) — Google's preferred identifier
  • mpn (string) — for branded items without GTIN
  • description (string) — improves rich-result coverage
  • aggregateRating (AggregateRating node) — unlocks rating stars in Search
  • review (Review array) — for individual review display
  • offers.priceValidUntil (date) — required for sale prices
  • offers.itemCondition (URL enum) — schema.org/NewCondition by default
  • hasMerchantReturnPolicy (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

  1. Pick 5 random products (a high-price item, a variant-heavy item, a sale item, a low-stock item, a free-shipping item).
  2. Run each through Google's Rich Results Test [4]. Confirm Product schema passes with no errors and only minor warnings.
  3. Cross-check with Schema.org's Markup Validator [5] for strict spec compliance.
  4. Use Search Console's URL Inspection to fetch the page as Googlebot and confirm the rendered HTML includes the JSON-LD block.
  5. 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 audit

Bottom 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 in our customer data.

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 & further reading

References cited inline as [1], [2], etc.

  1. [1]Product structured data — Google Search CentralGoogle (2026-03-10)
  2. [2]Schema.org ProductSchema.org
  3. [3]Schema.org OfferSchema.org
  4. [4]Rich Results TestGoogle
  5. [5]Schema Markup ValidatorSchema.org
Written by
Charles Reed
Compliance 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 audit with 250+ compliance checks across 27 categories. Free, no credit card.