Duplicate declarations disagree about the same entity
In the reportSame entity marked up twice with conflicting values
structured_data_conflicting_duplicate_entities · Issue
Two captured declarations of one entity give different comparable values for name, price, rating or availability.
Severity: Medium. Reconcile the conflicting declarations.
Why it matters
Contradictory declarations make the intended entity value unclear.
What to do
- Compare both recorded declarations, their source ranges and the shared identity evidence.
- Choose the intended value and update the duplicate markup, or remove the redundant declaration.
- Check theme and plugin output if both emit markup for the same entity.
When to leave it as it is: Identical or complementary declarations do not fire. Different languages, currencies, rating scales or seller/variant offers are not automatically conflicts.
What we read
We read the page’s captured HTML and its JSON-LD, Microdata and RDFa declarations without executing JavaScript or fetching remote contexts or linked targets. Findings retain the original declarations and source byte positions.
Missing or ambiguous data is not checked and cannot confirm a correction. A definite error can still be reported when another part of the same page remains unknown.
An equal declared IRI establishes identity. Name/type fallback needs a matching corroborating identifier with no contradiction and no competing IRI identities. Ambiguous identity remains not checked.
Each conflict uses a specific declaration pair; identifiers are not transitively merged across a chain of different entities.
Direct Offer.price has precedence. Without it, only a single supported active specification is comparable; marked list/member prices are not substituted.
Changed or unavailable language, currency, rating-scale or offer context cannot confirm that a previous conflict was corrected.
Example & evidence
Illustrative correction of two separate JSON-LD declarations; this is not a live audit.
{"@id": "https://shop.example/lamp#product", "name": "Lamp"}
{"@id": "https://shop.example/lamp#product", "name": "Desk lamp"}{"@id": "https://shop.example/lamp#product", "name": "Desk lamp"}
{"@id": "https://shop.example/lamp#product", "name": "Desk lamp"}Confirm & check again
Check for yourself: Compare the reported property with the HTML served at this URL. Validate the corrected markup with the appropriate structured-data test.
Check again: Full audit — Run another full site audit. A correction is confirmed only for the same page with sufficient captured coverage and no remaining violation. Missing coverage does not close the finding.
Limits & sources
The comparison and conservative identity policy are this audit’s rule contract. The general Google introduction does not prescribe this duplicate-entity algorithm or establish a ranking penalty.
Multiple offers, unresolved references, malformed values and compound-price components may prevent a comparison. No price conversion or target fetch is performed.
Confidence: High The finding preserves an exact captured structural or value conflict with source evidence. It does not establish Google indexing, ranking or rich-result display.
Sources
- Google, Introduction to structured data — Explains structured-data markup and its use; the specific duplicate comparison is the audit’s local rule contract. Checked 3 October 2026.
Editorial review: 2 November 2026