复制或链接到WebSite JSON-LD?

时间:2016-12-09 18:29:51

标签: schema.org json-ld

我正在使用JSON-LD替换我们网站上的微数据(itemscope等)。我是否需要在每个页面上声明WebSite,还是可以将其放在主页上一次?

如果是后者,处理器(我指的是Google)会通过域名自动将每个页面绑定到它,还是有某种方式可以链接到它?鉴于“关联数据”就在名称中,我发现没有使用它的例子。他们都将数据直接复制或嵌入到链接的东西中。

例如,我想链接到我们嵌入文章的YouTube视频,但Google不了解video媒体资源的网址。如果我将其展开为VideoObject,Google会抱怨我不知道宽度,高度,持续时间等。所有数据都在我指定的网址youtube.com上。为什么不能自己提取视频信息?

1 个答案:

答案 0 :(得分:3)

  

我是否需要在每个页面上声明WebSite,还是可以在主页上放置一次?

从Schema.org和Linked Data的角度来看,只提供一次项目就完全没问题了(我会说它甚至是最好的做法),并且只要需要就通过它引用它。

在JSON-LD中,这是can be done with @id。例如:

<!-- on the homepage -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebSite",
  "@id": "http://example.com/#site",
  "hasPart": {
    "@type": "WebPage",
    "@id": "http://example.com/"
  }
}
</script>
<!-- on another page -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "@id": "http://example.com/foobar",
  "isPartOf": {"@id": "http://example.com/#site"}
}
</script>

Google是否真的遵循这些引用并不清楚(据我所知,它没有记录)¹。很明显,他们的测试工具不会显示来自引用URI的数据,但这并不意味着太多。至少他们的测试工具会在提供一个URI时显示URI(作为“ID”)。

如果您想为video property提供网址值,请注意URL不是其预期值之一。虽然Schema.org仍允许这样做(任何属性都可以有文本或URL值),但有些消费者可能只会处理预期值。如果您只提供url属性,那么提供VideoObject值也是完美的。谷歌的测试工具给出错误这一事实并不意味着出现了问题;这只是意味着Google不会将此视频视为与视频相关的丰富搜索结果。

¹但是对于谷歌提供的少数丰富的结果特征,作者通常不需要从另一个页面引用某些东西,我猜。 URI的引用通常是针对其他语义Web和关联数据案例进行的。