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

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

我的问题:我的mainEntityOfPageWebPage还是BlogPosting

我应该使用这个:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "WebPage",
    "mainEntityOfPage": {
        "@type": "BlogPosting",
    }
}
</script>

或这个:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "BlogPosting",
    "mainEntityOfPage": {
        "@type": "WebPage",
    }
}
</script>

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

最佳答案

mainEntityOfPage 的定义是:

指示此内容是所描述的主要实体的页面(或其他CreativeWork)。

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

{
  "@context": "http://schema.org",
  "@type": "BlogPosting",
  "mainEntityOfPage": {
    "@type": "WebPage"
  }
}

如果要使用第一个代码段(以便WebPage是顶级项目),则必须使用 mainEntity 而不是mainEntityOfPage:

{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "mainEntity": {
    "@type": "BlogPosting"
  }
}

注意1:mainEntitymainEntityOfPage是相反的属性,因此这两个代码段的含义相同。

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

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

08-25 20:17