您是否将Schema Microdata元标记放在html主体中?


67

我已经在互联网和stackoverflow上搜索了很长时间,以寻找该问题的答案,而且我发现一些链接表明您不应将meta标签放入正文中:

而schema.org网站清楚地显示了直接嵌套在主体中的元标记http://schema.org/AggregateRating

只是看那里张贴的例子

 Customer reviews:

  <div itemprop="reviews" itemscope itemtype="http://schema.org/Review">
    <span itemprop="name">Not a happy camper</span> -
    by <span itemprop="author">Ellie</span>,
    <meta itemprop="datePublished" content="2011-04-01">April 1, 2011
    <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
      <meta itemprop="worstRating" content = "1">
      <span itemprop="ratingValue">1</span>/
      <span itemprop="bestRating">5</span>stars
    </div>
    <span itemprop="description">The lamp burned out and now I have to replace
    it. </span>
  </div>


 <div itemprop="reviews" itemscope itemtype="http://schema.org/Review">
    <span itemprop="name">Value purchase</span> -
    by <span itemprop="author">Lucas</span>,
    <meta itemprop="datePublished" content="2011-03-25">March 25, 2011
    <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
      <meta itemprop="worstRating" content = "1"/>
      <span itemprop="ratingValue">4</span>/
      <span itemprop="bestRating">5</span>stars
    </div>
    <span itemprop="description">Great microwave for the price. It is small and
    fits in my apartment.</span>
  </div>

如果您将meta标签保留在中<head>,那么如何将这两个日期与他们的评论相关联? <meta itemprop="datePublished" content="2011-04-01"> <meta itemprop="datePublished" content="2011-03-25">

这引起了混乱,我想知道如何正确进行。

Answers:


79

如果一个meta元素

  • 有一个itemprop属性和一个content属性,并且
  • 没有name属性,没有http-equiv属性,也没有charset属性,

那么将其包含meta在中是有效的body。(如果该值为URL,则必须link改用。)

为什么?因为微数据规范更改了HTML5

(请注意,RDFa的也允许改变HTML5metabody某些情况下)。


如果您将meta标记保留在中<head>,那么如何将这两个日期与他们的评论相关联?

您可以使用itemref属性

<!DOCTYPE html>
<html>
<head>
  <title>Using itemref for meta in the head</title>
  <meta itemprop="datePublished" content="2011-03-25" id="date">
</head>
<body>

  <div itemscope itemtype="http://schema.org/Review" itemref="date">
    <span itemprop="name"></span>
  </div>

</body>
</html>

itemref采用空格分隔的id值列表,因此您甚至可以引用两个或多个元素。只需将应添加到项目id的所有元素(包含itemprop属性)添加到其itemref属性,例如:itemref="date author rating"


2
哇,那itemref东西真棒。一定会用的!
jedd.ahyoung 2014年

@unor:您可以看看:stackoverflow.com/questions/36083028/…吗?
juFo

9

还请记住,可以完全避免HTML标记,而使用完全包含在<head> HTML文档中任何位置(甚至是动态注入!)的JSON-LD标记,如下所示:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Restaurant",
  "name": "Fondue for Fun and Fantasy",
  "description": "Fantastic and fun for all your cheesy occasions",
  "openingHours": "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00",
  "telephone": "+155501003333",
  "menu": "http://example.com/menu"
}
</script>

看一下schema.org中的示例,它们通常包含JSON示例标记,例如https://schema.org/Restaurant

这是关于它的另一篇好文章http://www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/


8

我可以从whatwg.org上阅读到的内容,可以在主体中正确使用:http : //www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-meta-element

我在博客正文中使用元标记来指定“ datePublished”和“ dateUpdated”属性。Google的丰富网页摘要测试工具告诉我它是正确的,并且w3c验证了代码。


埃里克(Erik)的经历反映了我自己的经历。我必须将它们移到身体上,以使丰富的代码片段测试工具能够识别它们。由于我们在结果中看到了这些属性,因此我们在Google中的搜索结果会正确地提取它们。
TMC 2012年

dateUpdated此页面上不再存在http://schema.org/docs/full.html
Timo Huovinen

5

您可以使用:

<meta itemprop="">

在页面的正文中执行schema.org语义标记,即使您不想在页面上显示实际文本(例如产品名称),也可以使用机器可读的schema.org语义标记。

请参阅:http : //schema.org/docs/gs.html#advanced_missing

有时,网页上的信息对于标记很有价值,但是由于该信息在页面上的显示方式而无法标记。该信息可以在图像(例如,用于表示5中的4的评级的图像)或Flash对象(例如,视频剪辑的持续时间)中传达,或者可以隐含但不明确指出在页面上(例如,价格的货币)。


3
也不要忘记使用meta标签上的内容!<meta itemprop =“” content =“”>
Mehdi Maghrouni

4

我这样做:

<meta id="md_course" itemprop="course" name="course"   content="..."/>
<meta id="md_lang" itemprop="language" content="eng"/>
<title id="md_title" itemprop="title" >Motivation and Course Overview</title>
</head>
<body itemscope itemtype=".../Presentation" itemref="md_course md_lang md_title md_field"> 

1
根据Schema.org的规定,当您在元标记上使用itemprop时,您应该省略名称&...,而仅使用itemprop和content :)
Mehdi Maghrouni 2014年

2
这是无效的有一个itemprop 一个name属性上meta。是或。(这直接来自Microdata,而不是(仅)来自Schema.org词汇表。)
2014年

3

最初使用schema.org的微数据时,我在网页的head标签中添加了meta标签,但是当我针对Google的Rich Snippets Testing Tool运行该页面时,并未提取数据。然后,我将meta标记移到页面的主体中,数据显示为已提取。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.