Skip to content

Duplicate schema blocks found

Two or more <script type="application/ld+json"> blocks on the same page declare the same @type without a unique @id on each block. Google cannot reconcile two conflicting representations of the same entity type. One block will be used and one discarded, but which one wins is unpredictable. This is a common side effect of third-party plugins or analytics scripts adding their own schema blocks alongside yours.

You have two options depending on whether the duplicate blocks represent the same entity or genuinely different entities.

This is the right fix in most cases. Combine all properties from both blocks into a single schema block and remove the duplicate.

Before:

{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Corp"
}
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Corp",
"url": "https://acmecorp.com",
"logo": { "@type": "ImageObject", "url": "https://acmecorp.com/logo.png" }
}

After:

{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Corp",
"url": "https://acmecorp.com",
"logo": { "@type": "ImageObject", "url": "https://acmecorp.com/logo.png" }
}

Use this only when both blocks represent genuinely distinct entities of the same type, for example a parent company and a subsidiary. Each @id must be a unique IRI.

{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://acmecorp.com/#org",
"name": "Acme Corp",
"url": "https://acmecorp.com"
}
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://acmecorp.com/labs/#org",
"name": "Acme Labs",
"url": "https://acmecorp.com/labs"
}

Re-run orino audit. The schema-duplicate-type check should pass. You can also inspect the page source and count <script type="application/ld+json"> tags to confirm only one block exists per type.