SD002 – Field Match Visible Content
Overview
SD002 (Field Match With Visible Content) verifies that the JSON-LD Product fields—name, description, and price—match the visible page content (title/h1, description block, and price element). It requires SD001 to have passed so that valid Product structured data exists. Mismatches between schema and visible content confuse users and AI systems: crawlers and generative models that use both structured data and visible text can produce inconsistent or misleading answers when the two sources disagree.
Probability that AI systems use this signal: AI training and inference pipelines often fuse structured data (e.g. Product name, description, offers) with visible text for entity resolution and answer generation. When schema and visible content disagree, systems may pick one source over the other or emit conflicting information, reducing trust and increasing the risk of wrong or non-compliant answers. The probability that alignment between schema and visible content affects AI behavior is high for product and shopping queries.
Impact on geo compliance: Passing SD002 (schema and visible content aligned) supports geo compliance by ensuring that the same product identity, description, and price are communicated in both machine-readable and human-visible form. This reduces the chance of locale or pricing mismatches in AI-generated answers. Failing SD002 can lead to inconsistent or misleading product information in search or chat, which can violate local advertising or consumer-information rules.
What We Check
- SD001 must be in context and status PASSED; otherwise the assessment is skipped with a failed result.
- JSON-LD is extracted from
<script type="application/ld+json">; the first Product or ProductGroup is used. - Visible content extraction: Title from
<title>; first<h1>text; description from selectors such as.description,.product-description,.desc,[class*="description"],[class*="desc"]; price from.price,.product-price,.cost,.amount,[class*="price"],[class*="cost"]. - Name match: schema
namevs visible h1; normalized (lowercase, remove non-word chars, collapse spaces). - Description match: schema
descriptionvs visible description; same normalization. - Price match: schema
offers[0].pricevs visible price; normalization strips non-digits and normalizes decimal (comma → dot).
Pass / Fail and Score
PASSED if score ≥ 60.
Score: starts at 100; name mismatch −30, description mismatch −20, price mismatch −40. So a single price mismatch (40 points) can cause failure; name + description mismatch (50 points) also causes failure.
How to Fix When It Fails
- Ensure the product name in JSON-LD matches the visible
<h1>(and ideally<title>). - Ensure the description in JSON-LD matches the visible description block (same or semantically equivalent text after normalization).
- Ensure price in
offers[0].pricematches the visible price element (same numeric value; currency alignment helps). - Fix any structured-data issues first (SD001) so Product fields are present and valid.
Common Issues
- Product name in schema differs from
<h1>(e.g. extra suffix, abbreviation). - Description in schema is truncated or different from the visible description block.
- Price in schema vs DOM: format or currency differences (e.g. comma vs dot, currency code) can cause false positives if normalization differs.
- SD001 not run or failed → dependency failure, so SD002 cannot pass.
Dependencies
SD001 (Field Presence Check) must run first and pass. SD002 uses the Product data validated by SD001 and compares it to visible content.
How to Verify
- Compare Product
namewith page<h1>and<title>. - Compare Product
descriptionwith the visible description block. - Compare
offers.pricewith the visible price element (numeric value and currency).