我正在使用JSON-LD替换我们网站上的微数据(itemscope
等)。我是否需要在每个页面上声明WebSite
,还是可以将其放在主页上一次?
如果是后者,处理器(我指的是Google)会通过域名自动将每个页面绑定到它,还是有某种方式可以链接到它?鉴于“关联数据”就在名称中,我发现没有使用它的例子。他们都将数据直接复制或嵌入到链接的东西中。
例如,我想链接到我们嵌入文章的YouTube视频,但Google不了解video
媒体资源的网址。如果我将其展开为VideoObject
,Google会抱怨我不知道宽度,高度,持续时间等。所有数据都在我指定的网址youtube.com
上。为什么不能自己提取视频信息?
答案 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和关联数据案例进行的。