Schema.org中网页结构的隐含性

cos*_*phi 7 html microdata schema.org

在阅读了数千个帖子,问题,博客文章和意见之后,我仍然对如何使用微数据标记网页感到困惑.如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容(并且隐含地假定网页),那么从body元素中的itemtype网页开始是否正确,然后继续标记其余的嵌套元素定义哪个是主要实体,或者最好从一个物理类型开始,理想情况下,该类型是网页的主要主题并在顶层关联属性,或者最好在顶层具有不同的项目类型(即网页) ,博客文章和页面的主题)?

一个例子将更好地解释我的问题:如果我必须标记包含关于特定主题的博客文章的网页(比如关于无线技术),那么顶级项目应该是什么?应该是网页,博客或无线技术?

uno*_*nor 5

越多越好(有例外)

\n\n

当涉及结构化数据时,在典型情况下,指导原则应该是:越多越好。如果您提供更加结构化的数据(即,使事情变得明确而不是保持隐式),那么消费者找到可以利用的东西的机会就会更高。

\n\n

不遵循本指南的原因可能包括:

\n\n
    \n
  • 您确切地知道您想要支持哪些消费者以及他们在寻找什么,并且您不关心其他(例如,未知或新的)消费者。
  • \n
  • 您知道消费者在某种程度上被窃听了,它无法\xe2\x80\x99 处理某些结构。
  • \n
  • 您需要保存尽可能多的字符(带宽/性能)。
  • \n
  • 它\xe2\x80\x99 太复杂/昂贵,无法提供额外的结构化数据。
  • \n
  • 结构化数据很可能对任何可以想象的消费者来说都是无用的。
  • \n
  • \xe2\x80\xa6
  • \n
\n\n

WebPage提供什么

\n\n

因此,除非您有理由不这样做,否则如果您可以提供可能有趣的数据,那么提供WebPage类型\xe2\x80\x99可能是一个好主意。例如:

\n\n\n\n

当然它也允许您使用mainEntity,但如果这是您需要该物品的唯一用途WebPage,您也可以使用 inverse 属性mainEntityOfPage

\n\n

更具体的WebPage类型

\n\n

对于更具体的类型也是如此,它们给出了额外的信号:

\n\n
    \n
  • AboutPage如果它\xe2\x80\x99是关于例如站点、您或您的组织的页面。
  • \n
  • CheckoutPage如果它\xe2\x80\x99是网上商店的结账页面。
  • \n
  • CollectionPage如果它\xe2\x80\x99是一个关于多个内容的页面(例如,列出博客文章、画廊、产品类别的分页页面,\xe2\x80\xa6)。
  • \n
  • ContactPage如果\xe2\x80\x99是联系页面。
  • \n
  • ItemPage如果它\xe2\x80\x99是关于单一事物(例如,博客文章、照片、\xe2\x80\xa6)。
  • \n
  • ProfilePage例如,用于用户配置文件。
  • \n
  • QAPage如果它\xe2\x80\x99s \xe2\x80\xa6 好吧,就是这个页面。
  • \n
  • SearchResultsPage用于搜索功能的结果页面。
  • \n
  • \xe2\x80\xa6
  • \n
\n\n

你的例子

\n\n

您的三个案例是:

\n\n
<!-- A - only the topic -->\n<div itemscope itemtype="http://schema.org/Thing">\n  <span itemprop="name">wireless technology</span>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n
<!-- B - the blog post + the topic -->\n<div itemscope itemtype="http://schema.org/BlogPosting">\n  <div itemprop="about" itemscope itemtype="http://schema.org/Thing">\n    <span itemprop="name">wireless technology</span>\n  </div>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n
<!-- C - the web page + the blog post + the topic -->\n<div itemscope itemtype="http://schema.org/ItemPage">\n  <div itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">\n    <div itemprop="about" itemscope itemtype="http://schema.org/Thing">\n      <span itemprop="name">wireless technology</span>\n    </div>\n  </div>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

A传达:有一种东西的名字叫“无线技术”。
\nB 传达:有一篇关于“无线技术”的博文。
\nC 传达:有一个网页包含一篇博客文章(作为该页面的主要内容关于

\n\n

虽然我\xe2\x80\x99t 不建议使用 A,但使用 B 完全没问题,并且可能足以满足大多数用例。虽然 C 已经提供了比 B 更多的详细信息(即该页面是针对单个事物的,并且该事物是博客文章,而不是页面上可能存在的其他项目),但它\xe2\x80\x99s 可能对于这样一个简单的情况不需要。但是,一旦您可以提供更多数据,这种情况就会改变,在这种情况下, I\xe2\x80\x99d 会选择 C。

\n