Product schema incomplete: missing price, currency or rating
Product JSON-LD missing name, image, offers.price or priceCurrency won't earn Shopping rich results or star ratings. Find incomplete Product markup free and add the required merchant fields.
What it means
This page contains Product JSON-LD, but the markup omits a field Google requires for merchant-surface eligibility — name, image, offers.price, or offers.priceCurrency — or lacks recommended fields such as sku/gtin, brand, aggregateRating, review, or description. The schema is structurally valid (it will not trigger schema.invalid) but is too sparse to unlock a visible SERP enhancement.
Why it matters
Google enriches Product schema two ways: a standard product snippet (price and availability badge) and a Merchant Center listing in Shopping surfaces. Both require offers.price and offers.priceCurrency as a matched pair — a price without a currency is ignored outright, and a currency without a price provides nothing actionable. aggregateRating is not required, but without it no star rating appears in results, and star ratings measurably lift click-through on commerce pages. Sparse-but-valid Product schema therefore delivers none of the traffic value the implementation was meant to produce.
How to fix it
- Locate the
ProductJSON-LD block, typically in a<script type="application/ld+json">tag. - Complete the
offersobject withprice(a numeric value, not"$29.99"),priceCurrency(ISO 4217), andavailability. - Ensure the structured-data price matches the visible price — a mismatch is a Merchant Center policy violation.
- Add
aggregateRatingwithratingValueandreviewCountif the page displays user ratings. - Add the recommended
sku/gtin,brand, anddescriptionto strengthen the listing. - Validate in Google's Rich Results Test before deploying.
When it's not a problem
This rule does not fire on AggregateOffer marketplace blocks or on Product entities used as the mainEntity of a category/listing page where per-product price is intentionally absent. If price is handled by a sibling Offer node in a larger graph that static analysis cannot associate, verify with the Rich Results Test. It is separate from schema.invalid (structurally broken markup) — a page can pass that and still be incomplete.
How common is it?
611 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.