您是否将架构微数据元标记放在html正文中?

我search了很长时间,通过互联网和stackoverflow为这个问题的答案,我发现的链接,说你不应该把元标签在身体:

  • 在<body>中使用HTML5 + Microdata的<meta>标签
  • 在身体部分传递元数据
  • 身体中的元标记

而schema.org网站清楚地显示meta标签直接嵌套在主体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> ,那么你如何将这两个date与他们的评论联系起来呢? <meta itemprop="datePublished" content="2011-04-01"> <meta itemprop="datePublished" content="2011-03-25">

这是造成混乱,我想知道如何正确做到这一点。

如果一个元素

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

那么这个metabody是有效的。 (如果该值是一个URL,则必须使用link 。)

为什么? 由于Microdata规范改变了HTML5 。

(请注意,在某些情况下, RDFa也会通过在meta中允许meta来更改HTML5 。)


如果你要将meta标签保存在<head> ,那么你如何将这两个date与他们的评论联系起来呢?

你可以使用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值列表,因此您甚至可以引用两个或更多个元素。 只需将要添加到项目的所有元素(包含itemprop属性)的id添加到其itemref属性中,例如: itemref="date author rating"

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

我在我的blogg中使用meta标签来指定“datePublished”和“dateUpdated”属性。 谷歌丰富的片段testing工具告诉我这是正确的,w3cvalidation代码。

还要记住,可以完全避免使用HTML标记,并使用完全包含在 HTML文档(甚至是dynamic注入!)中任何位置 <head> 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中的例子,它们通常包含像这样的https://schema.org/Restaurant的; JSON例子标记。

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

您可以使用:

 <meta itemprop=""> 

在页面的主体中,即使你不想在页面上显示实际的文本(例如产品名称),也可以使用机器可读的schema.org语义标记(例如通过机器人,对于SEO)。

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

有时候,一个网页上的信息对于标记是有价值的,但是由于信息出现在页面上,信息不能被标记。 该信息可以在图像中传递(例如,用于表示5分之4的评分的图像)或Flash对象(例如,video剪辑的持续时间),或者可以暗示但不明确地陈述在页面上(例如,价格的货币)。

在第一次使用schema.org的微数据时,我在网页的head标签中添加了meta标签,但是当我使用Google的Rich Snippetstesting工具运行该页面时,没有提取数据。 然后,我将元标记移动到页面的正文中,数据显示为正在提取。

我这样做:

 <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">