Blog · Technical

The schema your product pages need for AI answers.

Product JSON-LD field by field: what decides citation, what most PDPs leave empty, and a complete working example to adapt for your theme.

eCommerce Insights research team · · Updated · 10 min read


Product JSON-LD is how you tell a machine what you sell. It is how Google builds rich results, how Merchant Center validates a feed, and — more quietly — how AI engines ground their product answers and how shopping agents decide whether a PDP is safe to draft into a cart. The spec is open, stable, and documented at schema.org/Product. The problem is that most ecommerce PDPs emit only the minimum Google requires, which is a long way short of what engines need.

The fields you need

Each of these is either required for Google rich-result eligibility or heavily weighted in AI-engine grounding:

  • name — human-readable product name, matching the PDP title.
  • description — prose, HTML stripped, under ~5,000 characters, in buyer-recognizable language.
  • sku — your stock-keeping unit; the variant SKU if the URL resolves to a variant.
  • gtin13 / gtin14 — the single most important cross-reference identifier.
  • brand — a Brand object with a name, not a plain string.
  • image — full-resolution URLs, multiple in an array preferred.
  • offers — an Offer with url, priceCurrency, price, availability, priceValidUntil.

The fields most PDPs leave empty

These separate a complete Product JSON-LD from a minimal one. Most PDPs the research team audits in 2026 skip all of them:

  • additionalProperty — arbitrary key-value pairs for material, fit, capacity, any category attribute. Maps naturally to Shopify metafields.
  • material — "merino wool" beats a vague description; it is how buyers talk.
  • color — variant-level, in the buyer's word.
  • countryOfOrigin — ISO code or country name.
  • aggregateRating and review — only with real data.
  • audience — adult, men's, women's.
  • hasMerchantReturnPolicy — return-policy object. Google rewards it in Merchant Center, and it is one of the fields draft-cart agents read before recommending a purchase.
Most PDPs emit only the minimum Google requires. That is a long way short of what an engine needs to ground an answer about your product.

Why each field earns its place

Name, description, and brand are the grounding trio — they let the engine identify the product unambiguously. GTIN connects the PDP to Merchant Center, marketplaces, and review sites covering the same product. Image feeds the visual layer. Offers is required for any transactional answer and any draft cart — the agent-readability score weights price and availability hardest because an agent cannot recommend what it cannot price. additionalProperty, material, and color give the engine enough detail to characterize the product beyond a generic mention. aggregateRating and review feed the social-proof dimension of ranking. Each missing field narrows the surface over which the PDP can be cited.

FAQPage as the amplifier

Pair Product schema with a FAQPage block on the same PDP. Four to six buyer-phrased questions let engines pull your answers directly into generated responses — one of the cheapest, highest-leverage moves in the discipline. Keep the visible FAQ and the schema in exact sync; drift between them trips validators and reads as manipulation.

A complete working example

A full Product JSON-LD block for a hypothetical trail shoe. Adapt the values; on Shopify, populate them from metafields per the companion metafields post.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailrunner Pro 7",
  "description": "Lightweight trail-running shoe for rocky terrain. Rockered midsole, aggressive lug pattern, 245 g per shoe in size M9.",
  "sku": "TR-PRO-7-M9-CLAY",
  "gtin13": "0810123456789",
  "brand": { "@type": "Brand", "name": "Northbound Running" },
  "image": [
    "https://cdn.example.com/tr-pro-7-clay-1.jpg",
    "https://cdn.example.com/tr-pro-7-clay-2.jpg"
  ],
  "material": "Recycled engineered mesh upper, TPU overlays",
  "color": "Clay",
  "audience": { "@type": "PeopleAudience", "suggestedGender": "unisex" },
  "countryOfOrigin": "Vietnam",
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Stack height", "value": "28 mm heel / 22 mm forefoot" },
    { "@type": "PropertyValue", "name": "Lug depth", "value": "4 mm" },
    { "@type": "PropertyValue", "name": "Weight", "value": "245 g (size M9)" }
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://northbound.example.com/products/trailrunner-pro-7",
    "priceCurrency": "USD",
    "price": "175.00",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 30,
      "returnMethod": "https://schema.org/ReturnByMail",
      "returnFees": "https://schema.org/FreeReturn"
    }
  },
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "847" }
}
</script>

Validation and cadence

Run every PDP through Google's Rich Results Test and the schema.org validator — the first confirms rich-result eligibility, the second catches schema-level errors tooling-specific validators miss. Re-validate after any theme change; ongoing drift usually traces to a price-update edge case or a missing image. The free product schema generator produces a starting block from any PDP URL, and eCommerce Insights validates JSON-LD across the full catalog weekly, flagging exactly which fields are missing on which SKUs. The schema for AI search guide carries the field-by-field depth this post compresses.

Key takeaways

  • Core fields: name, description, sku, gtin, brand, image, offers. High-return additions: additionalProperty, material, color, return policy, real ratings.
  • Most PDPs ship the Google-minimum set; the additions are where citations are won.
  • FAQPage on the PDP is the cheapest amplifier available. Keep it synced with the visible block.
  • Offers completeness is the largest input to agent-readability — agents act on price and availability.
  • Validate on change; wire fields to metafields so updates happen automatically.

Ask AI about Product JSON-LD

Have your preferred AI engine review the field list for your catalog.

Frequently asked questions

Which Product JSON-LD fields matter most for AI search?
Name, SKU, GTIN, brand, description, image, and offers with price, priceCurrency, and availability are the core. Adding additionalProperty for material and pattern, plus aggregateRating and review when the data is real, substantially improves grounding. Those extra fields separate a citeable PDP from one engines skip.
Do I need FAQPage schema on a product page?
Yes. FAQPage schema on a PDP is one of the highest-leverage additions available. It lets engines lift buyer-phrased Q&A directly into answers, and it rewards the answer-coverage content you write for human buyers. Keep questions honest, and keep the schema in exact sync with the visible block.
Should I include aggregateRating if I have few reviews?
Only if the data is real. Google penalizes fabricated rating markup, and AI engines increasingly cross-check. With 50 real reviews, include it. With 3, consider waiting until the sample is meaningful. Missing aggregateRating beats misleading aggregateRating.
How often should Product JSON-LD update?
Continuously. Price and availability should reflect the live state of the catalog — shopping agents act on them. SKU, GTIN, and brand stay stable across the product's lifetime; material and descriptive fields update when the product changes. On Shopify, wiring JSON-LD to metafields makes most updates automatic when admin is edited.

Audit every PDP's schema automatically.

eCommerce Insights validates Product JSON-LD across your full catalog and flags exactly which fields are missing on which SKUs.