产品评论的正确 Schema.org 标记 - 即博客文章

Proper Schema.org markup for product reviews - that are blog posts

博客 post / 文章的正确 Schema.org JSON-LD 是什么,它只是对产品进行评论?网络上无处不在的实际用法示例:我拥有一个网站,该网站有一个撰写评论并提供附属链接的博客(例如亚马逊)。

从技术上讲,这是一个 Product,它是一个 Review,显然它是一个 ArticleBlogPosting?)。

Product 上可以嵌套 Review 结构。所以,这似乎更侧重于页面内容,这是我假设要使用的内容。但是,它仍然是一篇文章,从技术上讲,该网站本身并不提供产品,这使得 Product 类型看起来不正确。

那么,您究竟应该如何处理博客网站的此类附属标记,而不会因为标记误导性信息而受到潜在影响?

这取决于你想要的表现力。对于对评论感兴趣的消费者,第一个片段通常就是他们所需要的全部内容,因为如果评论作为博客 post、文章、论坛 post 等发布,这可能与他们无关


最小值是 Review with itemReviewed:

{
  "@context": "https://schema.org/",
  "@type": "Review",
  "itemReviewed": {
    "@type": "Product"
  }
}

如果您想传达评论是作为博客发布的 post,您还可以使用 BlogPosting

{
  "@context": "https://schema.org/",
  "@type": ["Review", "BlogPosting"],
  "itemReviewed": {
    "@type": "Product"
  }
}

如果 BlogPosting 不仅仅包含 Review,但 Review 是主要内容,您可以改用 mainEntity with separate entities (and if it’s not the primary entity, you could use hasPart):

{
  "@context": "https://schema.org/",
  "@type": "BlogPosting",
  "mainEntity": {
    "@type": "Review",
    "itemReviewed": {
      "@type": "Product"
    }
  }
}

如果您想提供包含 post 博客的网页的数据,is/contains 评论,您可以使用 ItemPagemainEntity

{
  "@context": "https://schema.org/",
  "@type": "ItemPage",
  "mainEntity": {
    "@type": ["Review", "BlogPosting"],
    "itemReviewed": {
      "@type": "Product"
    }
  }
}
{
  "@context": "https://schema.org/",
  "@type": "ItemPage",
  "mainEntity": {
    "@type": "BlogPosting",
    "mainEntity": {
      "@type": "Review",
      "itemReviewed": {
        "@type": "Product"
      }
    }
  }
}