如何正确地将 mainEntityOfPage 用于博客详细信息页面?

tim*_*vin 5 blogs schema.org json-ld

我已经阅读了几个mainEntityOfPage关于它是什么以及如何使用它的答案,每个答案都比上一个更令人困惑。

所以我的问题是具体的;我有一个包含博客部分的网站。在博客详细信息页面上,我想使用 JSON-LD 格式的结构化数据。

我的问题:我mainEntityOfPageWebPage还是BlogPosting

我应该使用这个:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "WebPage",
    "mainEntityOfPage": {
        "@type": "BlogPosting",
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

或这个:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "BlogPosting",
    "mainEntityOfPage": {
        "@type": "WebPage",
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

我在想mainEntityOfPageBlogPosting,所以第一个例子,是吗?还是我还是错了?

uno*_*nor 5

的定义mainEntityOfPage是:

指示该事物是所描述的主要实体的页面(或其他创意作品)。

博客文章页面上的主要实体是博客文章,而不是页面。所以,第二个片段是正确的:

{
  "@context": "http://schema.org",
  "@type": "BlogPosting",
  "mainEntityOfPage": {
    "@type": "WebPage"
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您想使用第一个片段(因此这WebPage是顶级项目),则必须使用mainEntity而不是mainEntityOfPage

{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "mainEntity": {
    "@type": "BlogPosting"
  }
}
Run Code Online (Sandbox Code Playgroud)

注1:mainEntitymainEntityOfPage是逆属性,因此这两个片段含义相同。

注2:也许将其理解为“是mainEntityOfPage”和“有mainEntity”会有所帮助。

注 3:您可以在博客文章页面上使用ItemPage(而不是)。WebPage