← All checks
product_schema

Product structured data (schema.org)

Why it matters Google, ChatGPT Shopping and Perplexity read the product name, price and identity from this data first.

Category
Product data
Weight
7 of 100 points
Critical blocker
Yes. If it fails, the score is capped at 59; with two or more blockers, at 39.
Applies to
Online stores
Effort
2-4 hours · developer (once, in the theme template)
Score model
v2.4

How we measure it

We look for JSON-LD Product (or ProductGroup) on the product page. Only microdata or Open Graph product tags is a partial pass; none fails and is a critical blocker.

What the result page says

These are the sentences in the test result; “…” is replaced by what we found on your site.

  • PassedThe product page includes schema.org Product data.
  • PartialProduct data is only available as microdata or Open Graph; agents read JSON-LD more reliably.
  • FailedThe product page has no machine-readable Product data, so agents have to guess from the text.

How to fix it

Target: Every product page carries Product data as JSON-LD; products with variants use ProductGroup + hasVariant.

Example code

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sample product",
  "image": "https://example.com/img/product.jpg",
  "description": "A short, original product description.",
  "sku": "SKU-001",
  "brand": { "@type": "Brand", "name": "Brand Name" }
}
</script>

Example values (example.com, product name, price) are placeholders; replace them with your own.

How to verify it yourself

Validate the product page with Google’s Rich Results Test (search.google.com/test/rich-results).

Fix it with an AI coding agent

Paste this into Claude Code, Cursor or another coding agent working on your store’s code. Review the change before you deploy it.

You are working on my online store. Specoria’s agent readiness test checks the item below. Fix it so AI shopping agents can read the store and act on it.

## 1. Product structured data (schema.org) (product_schema)
Target: Every product page carries Product data as JSON-LD; products with variants use ProductGroup + hasVariant.
Example fix (adapt it to this codebase and platform; example values are placeholders):
```
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sample product",
  "image": "https://example.com/img/product.jpg",
  "description": "A short, original product description.",
  "sku": "SKU-001",
  "brand": { "@type": "Brand", "name": "Brand Name" }
}
</script>
```
Reference: https://specoria.com/method/checks/product-schema/

## Rules
- First look through the codebase and tell me which files or templates you will change, before editing anything.
- Change only what these checks need, and keep the visible page and the structured data saying the same thing.
- Never invent prices, stock, shipping or return terms, reviews or product identifiers (GTIN): take them from the store’s real data or ask me.
- Don’t block or slow down real visitors and don’t add tracking.
- After deploying, run the free test again at https://specoria.com/ to verify the fix.

Specifications and guidance

The check is based on these open sources; links go to the publisher’s own pages.

Where it sits in the 196-criteria framework

The result of this check counts as evidence for these items of the readiness framework:

  • 2.2 Product schema on every product page

The framework and its source →

Run the free test See the sample report →