Uppercase Brands
Uppercase Brands

Reputation: 72

How does Google treat webpages with multiple JSON-LD Schema.org blocks?

How do search engines like Google treat webpages with multiple JSON-LD (Schema.org) blocks?

For example, what would happen if a page has both non-conflicting script blocks below?

<script type="application/ld+json">
{   "@context":"http://schema.org",    
    "@type":"WebPage",
    "@id": "#123",
    "author": {
      "@type": "Person",
      "name": "Foo Bar"
    }
}
</script>
<script type="application/ld+json">
{   "@context":"http://schema.org",
    "@type":"WebPage",
    "@id": "#123",
    "text": "blah blah blah",
    "url":"pageurl"
  }
</script>

Upvotes: 3

Views: 1621

Answers (1)

unor
unor

Reputation: 96597

We can’t know how Google Search actually treats them, but we can know how Google’s Structured Data Testing Tool handles such a case.

Same URI

If objects have the same URI (in JSON-LD: @id), they are the same. Google’s SDTT will display one entry showing properties from all objects with the same URI. So judging from the output in SDTT, Google seems to treat these two cases equally:

<script type="application/ld+json">
{   "@context":"http://schema.org",    
    "@type":"WebPage",
    "@id": "#123",
    "url":"pageurl",
    "text": "blah blah blah"
}
</script>
<script type="application/ld+json">
{   "@context":"http://schema.org",    
    "@type":"WebPage",
    "@id": "#123",
    "url":"pageurl"
}
</script>
<script type="application/ld+json">
{   "@context":"http://schema.org",
    "@type":"WebPage",
    "@id": "#123",
    "text": "blah blah blah"
}
</script>

Output in Google’s SDTT

Different (or no) URI

The default assumption is that the objects describe different things. However, if certain (typically unique) properties have the same values (telephone, address, name etc.), a consumer like Google Search might deduce that the objects describe the same thing -- this is not standardized, though, and if/when consumers do this is not documented.

Upvotes: 2

Related Questions