将schema.org标记添加到网站的标题:如何以及哪个模式?

时间:2015-08-05 11:54:35

标签: html5 meta-tags schema.org microdata html-head

我有一个提供运输服务的网站,而不是产品(我的意思是我们不销售这个品牌的小部件,这个其他型号......;我们只提供一种运输服务)。我有点不清楚我应该如何将schema.org微数据添加到我的网站,所以我基本上看了Ryanair正在做什么(因为我们的产品最类似于他们的)并复制了他们的标记(将其更改为我们的公司的名字,显然)。他们的标记是这样的:

<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<meta content="#22356b" name="theme-color"/>
<meta content="Book Cheap Flights direct at the official Ryanair website for Europe's lowest fares. Fully allocated seating and much more now available online" name="description"/>
<meta content="summary" name="twitter:card"/>
<meta content="@ryanair" name="twitter:site"/>
<meta content="Cheap Flights | Cheap Flights to Europe | Ryanair" name="twitter:title"/>
<meta content="Book Cheap Flights direct at the official Ryanair website for Europe's lowest fares. Fully allocated seating and much more now available online" name="twitter:description"/><meta content="@ryanair" name="twitter:creator"/>
<meta content="/static/images/seo/seo-logo-200.png" name="twitter:image:src"/>
<meta content="https://www.ryanair.com" name="twitter:domain"/>

<meta itemtype="http://schema.org/Product" itemscope="itemscope"/>

<meta content="Cheap Flights | Cheap Flights to Europe | Ryanair" property="og:title"/>

<meta content="Cheap Flights | Cheap Flights to Europe | Ryanair" itemprop="headline"/>
<meta content="Book Cheap Flights direct at the official Ryanair website for Europe's lowest fares. Fully allocated seating and much more now available online" property="og:description"/>
<meta content="Book Cheap Flights direct at the official Ryanair website for Europe's lowest fares. Fully allocated seating and much more now available online" itemprop="description"/>
<meta content="http://www.ryanair.com/en/" property="og:url"/>
<meta content="/static/images/seo/seo-logo-200.png" property="og:image"/>
<meta content="/static/images/seo/seo-logo-200.png" itemprop="image"/>
<meta content="article" property="og:type"/>
<meta content="Ryanair" property="og:site_name"/>
<meta content="" property="fb:admins"/><link href="https://plus.google.com/" rel="publisher"/>
<meta content="INDEX,FOLLOW" name="robots"/>
<meta content="NOYDIR" name="Slurp"/>
<meta content="NOODP" name="Robots"/>
<meta content="Copyright Ryanair.com 2014" name="dcterms.rightsHolder"/>

然而,Google网站管理员工具在以下行显示错误:

<meta itemtype="http://schema.org/Product" itemscope="itemscope" />

说它需要一个&#34;名称&#34;属性。

我该如何添加?我所看到的所有示例都适用于您拥有多种产品并需要标记其中每种产品的情况。此外,我见过的所有示例都是在网页正文中添加标记,而不是在标题中添加标记。哪一个是正确的?

1 个答案:

答案 0 :(得分:1)

更新:以下答案不完全正确。 可以表达head元素中的每个微数据,不需要headhtml元素上的父项。有关示例,请参阅my comment on a related Schema.org issue中的此片段,该片段使用style元素创建顶级项目:

<head>
  <style itemscope itemtype="http://schema.org/Thing" itemref="i1a i1b"></style>
  <meta id="i1a" itemprop="name" content="Top-level item 1" />
  <meta id="i1b" content="" itemprop="image" itemscope itemtype="http://schema.org/ImageObject" itemref="i1b-1a i1b-1b" />
  <meta id="i1b-1a" itemprop="name" content="Nested item 1" />
  <link id="i1b-1b" itemprop="contentUrl" href="image.png" />
</head>

这不是一个好习惯,因为所有必需的itemref / id值而变得混乱,但它是有效的。

从问题中包含的代码段中,只有这些元素包含微数据:

<meta itemtype="http://schema.org/Product" itemscope="itemscope"/>
<meta content="Cheap Flights | Cheap Flights to Europe | Ryanair" itemprop="headline"/>
<meta content="Book Cheap Flights direct at the official Ryanair website for Europe's lowest fares. Fully allocated seating and much more now available online" itemprop="description"/>
<meta content="/static/images/seo/seo-logo-200.png" itemprop="image"/>

此代码无效,无法执行他们可能想要实现的目标。

如果你只想在head元素中提供微数据(这没有多大意义,但让我们假装)你需要一个可以有子元素的元素。否则,您无法创建顶级微数据项。

唯一的候选者是head元素本身,因此您只能在head中提供一个项目,并且它可能没有将另一个项目作为值的属性。对于属性,您将使用link元素(如果值是URI)和meta元素(如果值不是URI)。

所以它必须是(省略headline属性,因为Product不允许这样做):

<head itemscope itemtype="http://schema.org/Product">
  <meta content="…" itemprop="description"/>
  <link href="…" itemprop="image"/>
</head>

这非常有限。因此,如果您想使用Microdata(或RDFa),您很可能想要使用整个文档(htmlhead body) 。使用Microdata / RDFa的重点是利用您现有的内容,而不必复制它。如果您不想“注释”现有内容,可以使用JSON-LD,只需在script元素中提供所有属性,例如head

关于遗失的name媒体资源:如果Google的结构化数据测试工具表示某个资产缺失,则只是意味着如果Google遗失了,Google就不会某事。如果没有它,这并不意味着代码无效,因为Schema.org没有必需的属性。