Declare each thing once
Multiple schema sources declare the same entity or disagree about its facts.
Aditya R. Singh maintains Let The Bots In, a technical AI-readiness scanner and reference site.
What does this finding mean?
The report identifies this check as schema-single-source in Structured data. The category carries up to 16 of the 100 rubric points. This is a category weight, not an automatic deduction for this finding. Read the scan detail for the measured state, overlapping signals and any score cap.
Identify which theme, plugin or layout emits each entity. Give each fact one owner, remove conflicting duplicates and reuse the same @id in references.
Why does this matter for AI retrieval?
Valid markup labels the entities and content already visible on a page. Parsers can use those explicit relationships. No schema type guarantees selection by ChatGPT, Claude, Perplexity or Gemini, and this score is our rubric rather than a vendor ranking formula.
How do I check and resolve it?
- Inventory schema from the theme, SEO plugin, shared layout and route. Identify duplicate nodes and conflicting values for the same entity.
- Choose one owner for each fact. Disable or correct the duplicate emitter rather than adding a third node to override it.
- Reuse stable @id references across blocks. A Person author and an Organization publisher are separate entities and should remain separate.
Adapt the example to the reported issue and the actual route. Placeholder names, URLs and dates must be replaced with facts from your site.
<!-- One source emits each entity. Reuse its stable @id. -->
<script type="application/ld+json">
{"@context":"https://schema.org","@graph":[
{"@type":"Organization","@id":"https://example.com/#publisher",
"name":"Actual publisher","url":"https://example.com/"},
{"@type":"WebSite","@id":"https://example.com/#website",
"name":"Actual site","url":"https://example.com/",
"publisher":{"@id":"https://example.com/#publisher"}}]}
</script> Verify the result
Fetch the deployed source and inspect every JSON-LD, microdata and RDFa entity. Confirm the same @id never has conflicting names, URLs or publisher facts.
Open the related tool or technical guide, then run a new scan of the affected URL. Keep unknown checks marked unknown until you have a complete response.
Copy a prompt for your coding agent
Paste this into Codex, Claude Code or Cursor from your own repository. Include the scan's exact URL and detail so the agent can verify the observation.
Investigate the scanner finding "Declare each thing once" (schema-single-source) in this repository.
Observation: Multiple schema sources declare the same entity or disagree about its facts.
Required change: Identify which theme, plugin or layout emits each entity. Give each fact one owner, remove conflicting duplicates and reuse the same @id in references.
Inspect the existing route, shared layouts and configuration first. Confirm the finding against the actual response before editing. Preserve intentional access restrictions, existing content and unrelated changes. Use only factual identity and date values. Make the smallest appropriate fix, verify the deployed HTML or resource response and run the relevant project checks. Explain any measurement that remains unknown. Do not promise search rankings or AI citations.
Reference: https://letthebots.in/fixes/schema-single-source/ Check your site's technical readiness
Scan a public URL for crawler rules, delivered HTML and page metadata. The report distinguishes measured issues from checks it could not complete.
Check my site →