SEO和结构化数据

什么是结构化数据?

结构化数据的概念起源于搜索引擎对于文字内容理解上的缺失。由于网路上最大量的信息来源是文字,而文字却是相当随意的,缺乏逻辑性和结构性这让搜索引擎的小机器人发生了困惑。在2011年谷歌,微软,雅虎和Yandex这几家搜索引擎巨头坐到了一起探讨如何改进对互联网信息的进一步理解。

Schema.org

探讨的结果便是大家拟定一个协议,这就是我们现在看到的Schema.org的框架。通过这个协议,我们使用标签,将我们的内容从文本上赋予结构性。举个例子来说,假设你的网站有一个页面是一部电影的介绍,你可以洋洋洒洒写1000字,但是小机器人读完还是不明白这部电影片名叫什么,导演是谁,公映年份,主演卡斯。如果小机器人无法理解,那导致的后果便是搜索引擎提供的内容质量难以提升。 Schema.org推出不过几年,即使在美国,使用的网站仍然很少。根据SearchMetrics的统计,大概只有0.3%的网站,也就是大约三百分之一。从排名上我们可以看到对结构化数据进行了优化的网站在各关键词的平均排名要先于未进行优化的网站4个名次(21 vs 25)。另外,36%的谷歌查询包含至少一个富文本结果,如下的电影《阿凡达》搜索结果中(SERP)我们可以做大概了解:

搜索英文Avatar《阿凡达》的谷歌搜索结果

搜索英文Avatar《阿凡达》的谷歌搜索结果

排名第一的IMDB就使用了schema.org结构化数据。查阅其代码我们可以看到:

<div id=”pagecontent” itemscope itemtype=”http://schema.org/Movie”>
可见,这个页面在这里定义了一个电影的item。所以在SERP上会列出关于此影片的其他信息,因为搜索引擎已经理解这个页面的内容。结构化数据目前使用的网站还不多,所以先一步使用结构化数据会使自身处于相当有利的位置。

什么样的网站需要结构化数据?

Schema.org在各网站的用途分类

Schema.org在各网站的用途分类

统计表明使用Schema.org结构化数据框架的网站还是分类比较集中的。目前主要集中在影视行业,还有促销和评论等方面。事实上,几乎所有的网站都可以进行结构化数据集成。它可以将你数据库中的信息无损地展现到前端页面上。Schema.org规定最基本的元素是Thing。只要你的网站提供的是一个Thing就可以用结构化数据进行描述。那么我们接下来用3分钟时间举一个例子,如何用结构化数据来描述你的Thing。

Schema.org集成简易教程

第一步,定义一个itemscope的域

这一步是要告诉小机器人你所要描述的Thing开始了。假设你的生意是开一个发廊(⊙o⊙)…那么你要在该信息的标签处添加itemscope并且把Thing的类型设置成“HairSalon”。

<div itemscope itemtype=”http://schema.org/HairSalon”> <h1>河马发廊</h1> <span>河马发廊是一个不存在的发廊,这里仅用于说明结构化数据的集成。</span> <span>营业时间:周一到周日,上午10点到晚上10点。</span> <span>门店地址:浣熊市河马路98号。邮编:123456</span> <span>电话:123-4567-8890</a> <a href=”http://hemasalon.com/hema_salon.html”>网址</a> </div>

第二步,添加Item的各属性

接下来我们添加关于你的生意的各个属性信息的集成标签。我们可以看到这些属性和schema.org里所定义的类型一致。

<div itemscope itemtype=”http://schema.org/HairSalon”> <h1 itemprop=”name”>河马发廊</h1> <span itemprop=”description”>河马发廊是一个不存在的发廊,这里仅用于说明结构化数据的集成。</span> <span itemprop=”openingHours” datetime=”Mo, Tu, We, Th, Fr, Sa, Su 10:00-22:00″>营业时间:周一到周日,上午10点到晚上10点。</span> <span itemprop=”address”>门店地址:浣熊市河马路98号。邮编:123456</span> <span itemprop=”telephone”>电话:123-4567-8890</a> <a href=”http://hemasalon.com/hema_salon.html” itemprop=”url”>网址</a> </div>

 第三步,进一步添加结构化信息

之前我们看到address这个属性的内容是Text文本,实质上根据schema,搜索引擎期待(expected)的是一个address类型。这里我们可以用另一类型PostalAddress来进一步细化。那么我们在这个属性上再添加一个itemscope域,并且按照PostalAddress来对地址进行描述:

<div itemscope itemtype=”http://schema.org/HairSalon”> <h1 itemprop=”name”>河马发廊</h1> <span itemprop=”description”>河马发廊是一个不存在的发廊,这里仅用于说明结构化数据的集成。</span> <span itemprop=”openingHours” datetime=”Mo, Tu, We, Th, Fr, Sa, Su 10:00-22:00″>营业时间:周一到周日,上午10点到晚上10点。</span> <span itemprop=”address” itemscope itemtype=”http://schema.org/PostalAddress”>门店地址: <span itemprop=”addressLocality”>浣熊市</span> <span itemprop=”streetAddress”>河马路98号。</span> 邮编: <span itemprop=”postalCode”>123456</span> </span> <span itemprop=”telephone”>电话:123-4567-8890</a> <a href=”http://hemasalon.com/hema_salon.html” itemprop=”url”>网址</a> </div>

最后的话

Schema.org结构化数据是未来搜索引擎必不可少的元素,这是提高搜索引擎友好度,帮助搜索引擎理解网页文本内容的最终出路。国内的搜索引擎虽然起步较晚但已经逐步开始接触结构化数据方案。如百度也已经发布了部分的结构化数据样式规范,详见百度站长数据规范。大数据也是未来互联网发展的趋势之一。 最后,如果你喜欢本文,期待你的宝贵留言。也希望你分享给你身边的SEO们。