在阅读了数千篇帖子、问题、博客文章和意见之后,我仍然对如何使用微数据标记网页感到有点困惑。如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容(并且隐式假设网页),那么在 body 元素中从 itemtype Webpage 开始,然后继续标记其余部分是否正确?嵌套元素定义哪个是主要实体,或者最好从理想情况下是网页主要主题的项目类型开始并在顶层关联属性,或者最好在顶层具有不同的项目类型(即网页) 、博客文章和页面的主要主题)?
一个例子可以更好地解释我的问题:如果我必须标记一个包含有关特定主题(比如说无线技术)的博客文章的网页,那么顶层的项目应该是什么?应该是网页、博客还是无线技术?
越多越好(有例外)
当涉及结构化数据时,在典型情况下,指南应该是:越多越好。如果您提供更加结构化的数据(即,使事情变得明确而不是隐式),那么消费者找到可以利用的东西的机会就会更高。
不遵循本指南的原因可能包括:
- 您确切地知道您想要支持哪些消费者以及他们在寻找什么,并且您不关心其他(例如未知或新的)消费者。
- 您知道消费者因无法应对某些结构而受到干扰。
- 您需要保存尽可能多的字符(带宽/性能)。
- 提供额外的结构化数据太复杂/昂贵。
- 结构化数据很可能对任何可以想象的消费者来说都是无用的。
- …
What WebPage
offers
因此,除非您有理由不这样做,否则最好提供WebPage type … if您可以提供可能有趣的数据。例如:
它允许您为页面和页面上的事物或页面代表的内容提供不同的 URI,例如人、建筑物等(请参阅为什么这很有用 and 一个稍微更技术性的答案和细节).
hasPart允许您连接可能是顶级项目的项目,对于这些项目来说,它们之间的关系不一定很清楚。
isPartOf允许你做这个WebPage
其他内容的一部分(例如,如果您提供了网站的一部分)WebSite项目,或CollectionPage).
您的页面上有面包屑:使用breadcrumb以明确它们代表此页面的面包屑。
您提供辅助功能信息:使用accessibilityAPI, accessibilityControl, accessibilityFeature, accessibilityHazard
The author/contributor/copyrightHolder/editor/funder/ETC。页面的内容与author
/…例如页面的主要内容。
页面有不同的license比页面中包含的某些部分。
您提供可以在页面上/通过页面完成的操作:使用potentialAction.
…
当然它也允许你使用mainEntity,但如果这是您唯一需要的WebPage
item 对于,你也可以使用逆属性mainEntityOfPage.
更具体WebPage
types
对于更具体的类型也是如此,它们给出了额外的信号:
-
AboutPage如果这是一个关于例如的页面网站、您或您的组织。
-
CheckoutPage如果是网上商店的结账页面。
-
CollectionPage如果它是一个关于多个内容的页面(例如,列出博客文章、画廊、产品类别等的分页页面)。
-
ContactPage如果是联系页面。
-
ItemPage如果它是关于一件事情(例如,一篇博客文章、一张照片……)。
-
ProfilePage例如用于用户配置文件。
-
QAPage如果是……好吧,就是这一页。
-
SearchResultsPage用于搜索功能的结果页面。
- …
你的例子
您的三个案例是:
<!-- A - only the topic -->
<div itemscope itemtype="http://schema.org/Thing">
<span itemprop="name">wireless technology</span>
</div>
<!-- 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>
<!-- 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>
A传达:有一种东西的名字叫“无线技术”。
B传达:有一篇博文about“无线技术”。
C 传达:有一个网页包含单个博客文章(如该页面的主要内容) about“无线技术”。
虽然我不建议使用 A,但使用 B 非常好,并且对于大多数用例来说可能就足够了。虽然 C 已经提供了比 B 更多的详细信息(即该页面用于单个事物,并且该事物是博客文章,而不是页面上也可能存在的其他项目),但对于如此简单的内容可能不需要它案件。但一旦你可以提供更多数据,这种情况就会改变,在这种情况下我会选择 C。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)