您是否将架构微数据元标记放在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
属性,
那么这个meta
在body
是有效的。 (如果该值是一个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注入!)中任何位置 的 JSON-LD标记: <head>
<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">