Back to blog
Technical FeedShield Team April 6, 2026 11 min

The complete guide to product structured data for Google Shopping

Everything you need to know about JSON-LD Product schema for Google Shopping: required fields, common mistakes, and how to validate your markup before Google rejects it.

Structured data is the bridge between your product pages and Google's Shopping results. When it's correct, Google matches your website to your product feed, verifies pricing, and displays rich product information in search. When it's wrong or missing, products get disapproved.

No structured data, no Shopping ads. This guide covers every field Google uses, the mistakes that trigger disapprovals, and the tools that catch problems before Google does.

What structured data does for Google Shopping

Google's crawler visits your product landing pages and reads the structured data embedded in them. It compares what it finds against the data in your product feed. Match = product stays approved. Mismatch = product gets flagged.

Structured data also powers rich results in organic search. Products with complete markup show price, availability, and review ratings directly in Google Search results. Higher click-through rates even without paid ads.

JSON-LD vs. Microdata vs. RDFa

Google supports all three formats but recommends JSON-LD. It's easier to maintain because the data lives in a single script block rather than scattered across HTML attributes.

Most Shopify Shopify themes, WooCommerce WooCommerce plugins, and custom implementations use JSON-LD by default. If your site still uses Microdata, migration to JSON-LD reduces errors and makes debugging faster.

Required fields for Product schema

name: The product title. Must match your feed title. No keyword stuffing. Google cross-references this against your feed and penalizes mismatches.

image: The primary product image URL. Must resolve to an actual image file (not a placeholder or broken URL). Use the same URL in your feed.

offers: This is where most problems happen. The offers object must contain:

FieldRequirementCorrect ExampleWrong Example
priceNumeric only"29.99""$29.99"
priceCurrencyISO 4217 code"USD""$" or "dollars"
availabilitySchema.org URL"https://schema.org/InStock""In Stock"
urlCanonical URL"https://store.com/product"Relative path
Warning: The price must match your feed price to the penny. A one-cent difference triggers disapproval.

Recommended fields that improve performance

brand: The brand name. Products with brand markup get better matching in Shopping results.

gtin, mpn, or sku: Include at least one product identifier. Google reports that products with valid GTINs get up to 40% more impressions.

description: Google compares this to your feed description. Keep them aligned.

aggregateRating: Products with star ratings in search results get higher click-through rates.

How does your structured data score?

Our audit validates every field against Google's requirements.

Start Free Audit

The 7 most common structured data mistakes

  1. Price format errors. Writing "$29.99" instead of "29.99" with a separate priceCurrency field.
  2. Availability as plain text. Writing "In Stock" instead of "https://schema.org/InStock".
  3. Multiple Product schemas on one page. Some themes output schema in the header and body. One page, one Product schema.
  4. Missing offers object. Product schema exists but has no price or availability data.
  5. Stale data in static markup. JSON-LD was hard-coded months ago and the price changed since. Use dynamic structured data.
  6. Wrong schema type. Using "Thing" or "WebPage" instead of "Product".
  7. Schema on the wrong page. Product markup on category pages instead of individual product pages.

How to validate your structured data

Google's Rich Results Test: Paste a URL or code snippet at search.google.com/test/rich-results. Shows whether your markup qualifies for rich results and flags errors. Good for individual pages.

Schema Markup Validator: Validates against the schema.org specification. Catches structural errors Google's tool might miss.

Google Search Console: The Enhancements report shows structured data issues across your entire site. Check the "Product" section for site-wide problems.

Tip: Manual validation works for 10 product pages. For bulk validation across hundreds of pages, you need automated crawling that checks every page and cross-references structured data against your feed.

Platform-specific setup

Shopify

Most themes include basic Product schema. Check that the offers object has price, priceCurrency, and availability. Many themes miss priceCurrency or use the wrong availability format. The JSON-LD script is usually in theme.liquid or product.liquid.

WooCommerce

Plugins like Yoast SEO or Rank Math add Product schema. Verify the output. Plugin updates can break the markup. Check the actual page source, not the plugin settings.

Custom builds

Generate JSON-LD server-side from your product database. Never hard-code prices or availability. Use a template that pulls live data for every page render.

The alignment rule

The most important principle: every data point in your structured data must match the corresponding field in your product feed. Price, availability, title, image URL, GTIN. If Google finds a mismatch between any of these, the product gets disapproved.

Your structured data and your product feed should pull from the same source of truth. Enable "Automatic item updates" in GMC settings as a safety net, but don't rely on it as a substitute for keeping data aligned at the source.

Validate structured data across your entire store

Automated schema validation, feed cross-referencing, and fix instructions for every issue.

Start Free Audit

Check your store's GMC compliance

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

Start Free Audit