A JSON-LD block with the wrong @type or missing critical properties like name, description, and url is worse than no schema at all — it tells search engines you have content structure, then fails to describe it. Google's schema-org BlogPosting and Product parsers skip incomplete records for Rich Results eligibility. A product page with a generic Thing type instead of Product receives zero structured-data SERP benefit. Incomplete schema is technical debt that accumulates silently until a Rich Results Test exposes it.
High because schema type mismatches and missing critical properties directly disqualify pages from Rich Results, eliminating structured-data SERP gains even when the scaffolding is present.
Audit each JSON-LD block against the Schema.org type specification. Update incomplete blocks in the relevant page component — app/blog/[slug]/page.tsx for articles, app/products/[slug]/page.tsx for products. At minimum, every object needs name, description, and url:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Widget Pro",
"description": "High-performance widget for professional use",
"url": "https://yoursite.com/products/widget-pro",
"offers": {
"@type": "Offer",
"price": "29.00",
"priceCurrency": "USD"
}
}
Never use Thing where a specific type applies. The Google Rich Results Test will flag type mismatches; fix them before they compound across pages.
ID: seo-advanced.structured-data.schema-completeness
Severity: high
What to look for: Enumerate every JSON-LD block found across the site. For each block, verify the @type is appropriate for the page content (e.g., Product for product pages, BlogPosting for blog posts, Organization for home page). Count the critical properties present: name, description, and url must exist for most schema types. Check that no generic Thing type is used where a more specific type (Product, BlogPosting, Article) would apply.
Pass criteria: All JSON-LD schema types are content-appropriate for their pages, and at least 3 critical properties (name, description, url) are present in every schema object. No generic Thing types where a more specific type applies. Report: "X of Y schema blocks have complete critical properties."
Fail criteria: Schema type is generic or mismatched (e.g., Product schema on a blog post), or fewer than 3 critical properties are present in any schema object.
Do NOT pass when: Schema types technically match but required sub-properties are empty strings or contain only whitespace.
Skip (N/A) when: No JSON-LD schema is present on any page (covered by the jsonld-present check).
Cross-reference: For schema syntax validation and parsing errors, see the structured-data-valid check in the Crawlability category.
Detail on fail: Name the pages and issues. Example: "Blog post uses generic 'Thing' type instead of 'BlogPosting'; 'description' property missing from Product schema on /products/item1".
Remediation: Each schema type has required and recommended properties per the Schema.org specification. Update your JSON-LD blocks in app/page.tsx or the relevant page component. For BlogPosting:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Article Title",
"description": "A brief summary of the article",
"datePublished": "2024-01-15",
"author": {
"@type": "Person",
"name": "Author Name"
},
"image": "https://yoursite.com/image.jpg"
}