Each listing page has valid JSON-LD with correct Schema.org type
Why it matters
Missing or malformed JSON-LD blocks Google's rich results pipeline entirely. When a directory listing omits a valid <script type="application/ld+json"> block with the correct schema-org LocalBusiness or Place @type, Google cannot generate rich snippets — star ratings, addresses, and hours never appear in SERPs. Listings that lack structured data are effectively invisible in the competitive layer where rich results dominate click-through rates. A JSON-LD object stored in an HTML data- attribute rather than the script's text content is the canonical hallucination failure for AI-generated code: it compiles and renders fine, but search engine parsers skip it completely.
Severity rationale
Critical because misconfigured or absent JSON-LD eliminates the directory's structured-data eligibility entirely, directly suppressing rich-result visibility for every affected listing.
Remediation
Add a reusable JsonLd component that injects the schema as the script element's inner text, not an HTML attribute. The dangerouslySetInnerHTML pattern is correct here — the input is always JSON.stringify() of a controlled object.
// components/json-ld.tsx
export function JsonLd({ schema }: { schema: object }) {
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
);
}
Use it on every listing page template: <JsonLd schema={{ "@context": "https://schema.org", "@type": "LocalBusiness", ...listing }} />. Validate the output with Google's Rich Results Test.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Listing Data & Schema Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- schema-org · LocalBusiness — LocalBusiness type for business directory listings
- schema-org · Place — Place type for location-based listings
Taxons
History
- 2026-04-18·v1.0.0·Initial import from directory-listing-schema·automated