2

Say I have markup like this on https://example.org/index.html:

<span itemscope itemtype="https://schema.org/LocalBusiness">
    <meta itemprop="url" content="https://example.org/index.html">
    <meta itemprop="name" content="Example Industries">
    <span itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
        <meta itemprop="addressCountry" content="CA">
        <meta itemprop="addressRegion" content="ON">
        <meta itemprop="addressLocality" content="Ottawa">
    </span>
    <meta itemprop="telephone" content="613-555-1234">
    ...
</span>

Then on https://example.org/employees/joe-blow.html I have

<span itemscope itemtype="https://schema.org/Person">
    <meta itemprop="url" content="https://example.org/employees/joe-blow.html">
    <meta itemprop="givenName" content="Joe">
    <meta itemprop="familyName" content="Blow">
    <span itemprop="worksFor" itemscope itemtype="https://schema.org/LocalBusiness">
        <meta itemprop="url" content="https://example.org/index.html">
        <meta itemprop="name" content="Example Industries">
    </span>
</span>

I obviously don't want to repeat all the information about the LocalBusiness within each Person. Is this a valid way for the Person to reference the LocalBusiness on another page?


I've also tried it like this:

https://example.org/index.html:

<span itemid="#business" itemscope itemtype="https://schema.org/LocalBusiness">
    <meta itemprop="url" content="https://example.org/index.html">
    <meta itemprop="name" content="Example Industries">
    <span itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
        <meta itemprop="addressCountry" content="CA">
        <meta itemprop="addressRegion" content="ON">
        <meta itemprop="addressLocality" content="Ottawa">
    </span>
    <meta itemprop="telephone" content="613-555-1234">
    ...
</span>

https://example.org/employees/joe-blow.html:

<span itemscope itemtype="https://schema.org/Person">
    <meta itemprop="url" content="https://example.org/employees/joe-blow.html">
    <meta itemprop="givenName" content="Joe">
    <meta itemprop="familyName" content="Blow">
    <link itemprop="worksFor" href="https://example.org/#business">
</span>

But Google's validator doesn't seem to recognize the linked information. It complained unless I re-included the name property of the LocalBusiness.

Dave
  • 123
  • 4
  • 1
    Side note: You must use link with href attribute (instead of meta with content attribute) if the value is a URL, e.g., for your url properties. – unor Feb 22 '17 at 16:10

1 Answers1

1

How to reference/link with Microdata and Schema.org

If possible, I would use both ways (url property from Schema.org & itemid attribute from Microdata).

While Schema.org isn’t that strict about it, I think it makes sense to use different URIs for them, if you want to differentiate between the page and the thing:

  • Schema.org’s url property gives the URI of the page about the thing.
  • Microdata’s itemid attribute gives the URI of the thing.

For example, the URI https://example.org/employees/joe-blow.html points to a page about Joe Blow, and the URI https://example.org/employees/joe-blow.html#i is the URI for Joe Blow himself. Then you could specify:

<div itemscope itemtype="http://schema.org/Person" itemid="/employees/joe-blow.html#i">
  <link itemprop="url" href="/employees/joe-blow.html" />
</div>
<div itemscope itemtype="http://schema.org/AboutPage" itemid="/employees/joe-blow.html">
  <link itemprop="about mainEntity" href="/employees/joe-blow.html#i" />
  <!-- just for the sake of the example; you would typically include the 'Person' item here -->
</div>

Search engine support

Google’s SDTT doesn’t follow links. Copying my comment to a related question:

The SDTT doesn’t support it, but of course that doesn’t necessarily mean that Google doesn’t support it. I guess it makes sense that the tool doesn’t follow references, because there could be many, possibly endless, even to external documents. -- My guess (I have no evidence, just a guess) is that the Googlebot will follow those references (these are, after all, normal a/area/link hyperlinks), but without "adding" the structured data from the linked page to the linking page.

As far as I know, no search engine documents that they would follow references in structured data to do something with it.

unor
  • 21,739
  • 3
  • 46
  • 117