目前主流搜索引擎支持三种类型的结构化数据标记格式:JSON-LD,Microdata,RDFa,我们如何正确选择这三种不同的结构化数据编写方法?谷歌在2015年宣布JSON-LD作为首选方法,这个宣布是非常重要的,因为谷歌之前没有说明偏好哪种结构化数据标记。在没有明确JSON-LD作为首选方法之前,谷歌希望站长在网页上使用可以看得到的标志文本,统称行内标记。
行内微数据标记代码看起来像这样:
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">启明路818号4幢32号</span>
<span itemprop="addressLocality">浙江宁波鄞州区</span>
<span itemprop="addressRegion">中国</span>
<span itemprop="postalCode">315500</span>
</div>
在网页上查看时显示为:
启明路818号4幢32号 浙江宁波鄞州区 315500
这种变化很重要,如果你不熟悉行内编程格式,例如Microdata可能很难实现,有时它会影响网页的设计。JSON-LD是隐藏的,它对网页的展示没有影响,让网站管理员更容易实现。
JSON-LD(JavaScript Object Notation for Linked Data)是一种结构化数据格式,用于标记你的网站,并被最大的搜索引擎Google,Bing和Yandex支持,Google推荐使用JSON-LD实现结构化数据。JSON-LD优于其它方法主要是在网站的<head>中插入JSON-LD代码通常是安全的,因此我们建议这样做。JSON-LD也可以插入网站的<body>或其它任何地方。JSON-LD不是内联因此我们不必更改HTML元素。
<script type="application/ld+json">
{
"@context":"http://schema.org",
"@type":"Organisation",
"name":"[林雍岷]",
"url":"[https://www.linyongmin.com/]",
"logo":"[https://www.linyongmin.com/wp-content/uploads/2018/05/harborne-logo.png]",
"description":"[分享谷歌SEO和WEB前端开发技术]",
"telephone":"[0574-88186347]",
"address":{
"@type":"PostalAddress",
"addressLocality":"[浙江宁波鄞州区]",
"adressRegion":"[中国]",
"postalCode":"[315500]",
"streetAddress":"[启明路818号4幢32号]"
}
}
</script>
微数据(MICRODATA)允许标记你的网页,这些标记直接添加到HTML中。每组标签都包含ITEMSCOPE,ITEMTYPE和ITEMPROP。ITEMSCOPE标记用于标识正在引用的项目,ITEMSCOPE后跟一个ITEMTYPE标签,ITEMTYPE微数据引用的项目类型,例如,本地商家或食谱。最后,我们使用ITEMPROP标记每个属性,让我们MICRODATA标注本地商家。
原始的HTML
<h1>网络公司</h1>
<span>网络公司某城市网站建设公司,十年某城市网站建设经验,主要从事企业,外贸,商城和门户网站建设,从网站设计建设到上线一条龙建站服务的建站公司。</span>
<span>启明路818号4幢32号</span>
<span>浙江宁波鄞州区</span>
<span>中国</span>
<span>联系电话:0574-8888-8888</span>
使用MICRODATA标记
<div itemscope itemtype="http://schema.org/LocalBusiness">
<h1><span itemprop="name">网络公司</span></h1>
<span itemprop="description">网络公司某城市网站建设公司,十年某城市网站建设经验,主要从事企业,外贸,商城和门户网站建设,从网站设计建设到上线一条龙建站服务的建站公司。</span>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">启明路818号4幢32号 </span>
<span itemprop="addressLocality">浙江宁波鄞州区 </span>
<span itemprop="addressRegion">中国</span>
</div>
联系电话:<span itemprop="telephone">0574-8888-8888</span>
</div>
RDFa是Resource Description Framework in Attributes的缩写,是HTML5的扩展,用于标记网页中的元数据,RDFa类似于MICRODATA一样,RDFa使用HTML行内标签:
<div vocab="http://schema.org/" typeof="LocalBusiness">
<h1><span property="name">网络公司</span></h1>
<span property="description">网络公司某城市网站建设公司,十年某城市网站建设经验,主要从事企业,外贸,商城和门户网站建设,从网站设计建设到上线一条龙建站服务的建站公司。</span>
<div property="address" itemscope itemtype="http://schema.org/PostalAddress">
<span property="streetAddress">启明路818号4幢32号 </span>
<span property="addressLocality">浙江宁波鄞州区 </span>
<span property="addressRegion">中国</span>
</div>
联系电话:<span property="telephone">0574-8888-8888</span>
</div>
RDFa使用三个标签VOCAB,TYPEOF和PROPERTY。从上面实例,第一行使用SCHEMA的词汇表,TYPEOF确定了该页面的LOCALBUSINESS。接下来,我们使用PROPERTY标记所有信息。
就个人而言我会选择JSON-LD,因为实现起来容易得多,而且这是GOOGLE推荐的方法,也得到最大的搜索引擎的支持,因此JSON-LD的未来看起来很好。RDFa和SCHEMA系统一样在HTML添加属性。谷歌喜欢JSON-LD,虽然现在不能够完全支持JSON-LD,BING现在除了MICRODATA和RDFa外不用JSON-LD,也支持Facebook Open Graph标签,以便当页面被拉进FACEBOOK的帖子时将信息传递给FACEBOOK。
我们应该使用:
阅读结构化数据:提升网页排名了解更多,必应用MICRODATA和RDFa这两种方法,对活动事件,面包屑,可以考虑使用这两种方法。如果不用JSON-LD谷歌会读取MICRODATA,所以我们至少要用MICRODATA。
JSON-LD实际上在页面上不可见,使用JSON-LD仍然可以得到相同的结果,而无需更改HTML或访问网站文件,JSON-LD可以添加到网页的任何位置,搜索引擎读取的隐藏脚本。