4

Should I use the Organization schema on each page if I have another schema data, for example Event?

Can I use Event and Organization on the same page?

Organization code

<script type="application/ld+json">
{
  "@context" : "http://schema.org",
  "@type" : "Organization",
  "name" : "name",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "addr",
    "postalCode": "index",
    "streetAddress": "addr",
    "telephone" : "phone"
  },
  "logo" : {
    "@type": "ImageObject",
    "url": "logo",
    "width": "500",
    "height": "500"
  },
  "email": "email",
  "url" : "url",
  "sameAs" : [
    "link"
  ]
}
</script>

Event code

<div itemscope itemtype="http://schema.org/Event" class="tour tour--page">
    <span class="schema_hide" itemprop="startDate" content="date"></span>
    <span class="schema_hide" itemprop="performer" content="performer"></span>
    <span class="schema_hide" itemprop="url" content="url"></span>
    <img itemprop="image" src="tour.avatar" />
    <h1 itemprop="name">name</h1>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
        <span class="schema_hide" itemprop="telephone" content="phone"></span>
        <span class="schema_hide" itemprop="name" content="name"></span>
        <span class="schema_hide" itemprop="address" content="address"></span>
    </div>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <span itemprop="validFrom" :content="date"></span>
        <span itemprop="url" content="url"></span>
        <span itemprop="availability" content="http://schema.org/PreOrder"></span>
        <span itemprop="priceCurrency" content="RUB"></span>
        <span itemprop="price" content="price"></span>
    </div>
</div>
1
  • Same question on SO, where it’s currently closed (but has 3 reopen votes).
    – unor
    Commented Jun 19, 2018 at 12:42

2 Answers 2

1

I'd be careful when using multiple top level entities like that. Systems like Google typically pick one entity as the main entity for the page, and ignore the others. Will Google decide that it is a page about an Organization, or a page about an Event?

There are exceptions, like entities that are defining parts of a page (WebPageElement BreadcrumbList etc).

You can use the mainEntity or mainEntityOfPage properties to clarify things. e.g. set your Event to say it is the mainEntityOfPage for the current page.

You don't need to place Organization on every page of your site, if the whole site is related to that organisation. Maybe just on the home page, or the about us page. It's best on a page that talks about the organisation.

You could also place the Organization inside the Event if it is the organizer.

4
  • Actualy i did like u say because it's seems logical. I put it in main and contacts page. But if i have Event and Organization on same page google schema validator says that its ok.
    – Viktor
    Commented Jun 20, 2018 at 10:33
  • The validator only performs some basic checks. The best clue from it is if you get a preview button. That's an indication that it is valid enough to get rich snippets. Often the button is not shown if there are conflicting top level entities. Commented Jun 27, 2018 at 10:38
  • Is it a sensible thing to do, to have the same Organization snippet on both home page and about us / contact page? ty
    – Keith Mak
    Commented May 24, 2022 at 1:21
  • That's fine with Google. In fact, they don't do any linking of entities across pages. If you add an entity to multiple pages use the itemid attribute to identify them both as representing the same thing. Commented May 25, 2022 at 2:38
0

Yes, you can use as many schemas as you want.

It would be the best practice to connect the items with suitable properties. For example, if the Event is organized by the Organization, you could use the organizer property. To convey which is the primary item, you can provide a WebPage item and use its mainEntity property (example).

You would typically use one syntax, though, but you are using two syntaxes: JSON-LD and Microdata. You can still connect these items (via referencing URIs instead of nesting), but using the same syntax makes it easier and is likely better supported.

If you have to use both syntaxes, you could use something like this (if the organization is the event organizer):

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "@id": "/#this-organization"
</script>

<div itemscope itemtype="http://schema.org/Event">
  <link itemprop="organizer" href="/#this-organization" />
</div>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.