首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Schema.org中网页结构的隐含性

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

Stack Overflow用户
提问于 2016-11-16 13:36:35
回答 1查看 986关注 0票数 8

在阅读了上千篇文章、问题、博客文章和观点之后,我仍然对如何用微数据标记网页感到有点困惑。如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容(并且假定网页是隐式的),那么从body元素中的itemtype网页开始,然后继续标记定义主要实体的嵌套元素的其余部分,还是最好从理想上是网页主主题的项目类型开始,并在顶层关联属性,还是最好在顶层有不同的项目类型(即网页、博客文章和页面的主要主题)?

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

EN

回答 1

Stack Overflow用户

发布于 2016-11-16 15:40:23

越多越好(例外)

当涉及到结构化数据时,在典型的情况下,指南应该是:越多,越好。如果您提供了更结构化的数据(即,您将事物显式化,而不是将其保持为隐式),那么消费者找到它可以使用的东西的可能性就会更高。

不遵守这一准则的理由可能包括:

  • 您清楚地知道您希望支持哪些消费者,以及他们在寻找什么,并且您不关心其他(例如,未知的或新的)消费者。
  • 你知道,消费者被窃听的方式,它无法应付某些结构。
  • 您需要保存尽可能多的字符(带带/性能)。
  • 提供额外的结构化数据过于复杂/昂贵。
  • 结构化数据对任何可以想象的消费者来说都很可能是无用的。

WebPage提供了什么

所以除非你有理由不这么做,否则提供 type…可能是个好主意如果你能提供可能有趣的数据。例如:

  • 它允许您为页面和页面上的事物提供不同的URI,或者页面所代表的内容,如人、建筑物等(请参阅why this can be usefula slightly more technical answer with details)。
  • hasPart允许您连接否则可能是顶级项的项,对于这些项来说,不一定清楚它们是什么关系。
  • isPartOf允许您将此WebPage作为其他内容的一部分(例如,如果您提供WebSite项,或者是CollectionPage)。
  • 页面上有面包屑:使用breadcrumb明确表示此页面的面包屑。
  • 提供可访问性信息:使用accessibilityAPIaccessibilityControlaccessibilityFeatureaccessibilityHazard
  • 页面的author/contributor/copyrightHolder/editor/funder/etc.与author/…不同。例如页面的主要内容。
  • 该页面的license与页面中包含的某些部分不同。
  • 您提供了可以在/使用该页面执行的操作:使用potentialAction

当然,它还允许您使用mainEntity,但是如果这是您唯一需要WebPage项的东西,您也可以使用逆属性mainEntityOfPage

更具体的WebPage类型

更具体的类型也是如此,它们提供额外的信号:

  • AboutPage --如果它是一个关于网站、你或你的组织的页面。
  • CheckoutPage如果是网上商店的结账页面。
  • CollectionPage如果它是一个关于多种事物的页面(例如,列出博客文章的分页页面、画廊、产品类别、…)。
  • 如果是联系人页面,ContactPage
  • ItemPage如果它是关于一件事情(例如,博客帖子,一张照片,…)。
  • ProfilePage,例如用于用户配置文件。
  • QAPage如果是…就这一页。
  • SearchResultsPage用于搜索函数的结果页。

你的例子

你的三个案件是:

代码语言:javascript
复制
<!-- A - only the topic -->
<div itemscope itemtype="http://schema.org/Thing">
  <span itemprop="name">wireless technology</span>
</div>
代码语言:javascript
复制
<!-- B - the blog post + the topic -->
<div itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
    <span itemprop="name">wireless technology</span>
  </div>
</div>
代码语言:javascript
复制
<!-- C - the web page + the blog post + the topic -->
<div itemscope itemtype="http://schema.org/ItemPage">
  <div itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
    <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
      <span itemprop="name">wireless technology</span>
    </div>
  </div>
</div>

传达:有一个名为“无线技术”的东西。

B传达:有一个博客关于的“无线技术”。

C传达:有一个网页,包含一个博客文章(作为该页面的主要内容)关于“无线技术”的

虽然我不建议使用A,但是使用B是非常好的,而且对大多数用例来说可能已经足够了。虽然C已经提供了比B更多的细节(即页面是为一件事情而写的,并且这个东西是博客文章,而不是页面上的其他项目),但对于这样一个简单的例子来说,它可能并不需要。但是只要你能提供更多的数据,这种情况就会改变,在这种情况下,我会选择C。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40633571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档