Back to blog
Technical FeedShield Team March 15, 2026 10 min

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:

FieldFormatExample
priceNumeric only, no currency symbol"29.99"
priceCurrencyISO 4217 code"USD"
availabilitySchema.org URL"https://schema.org/InStock"
urlCanonical product URL"https://store.com/product"
Warning: The price must match your feed price to the penny. "$29.99" in the JSON-LD is wrong. "29.99" with a separate priceCurrency of "USD" is correct.

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

  1. Using Microdata instead of JSON-LD (JSON-LD is Google's preferred format, and easier to debug)
  2. Multiple Product schemas on one page (confuses Google's parser; one page, one Product schema)
  3. Price in wrong format ("$29.99" instead of "29.99" with separate priceCurrency)
  4. Availability as plain text ("In Stock" instead of the full schema.org URL)
Tip: Validate your markup using Google's Rich Results Test. Paste any product URL and it will flag schema errors. For bulk validation across your entire catalog, run a free audit.

Validate structured data across your entire store

Our audit checks every product page for schema errors, price mismatches, and missing fields.

Start Free Audit

Check your store's GMC compliance

Run an automated audit with 250+ compliance checks across 27 categories.

Start Free Audit