9.1 什么是微格式?
微格式(structured data)是向 HTML 文档添加元数据的一种方法,目的是改善搜索引擎和其他服务对网页内容的理解。微格式用于描述网页上的各种实体及其相互关系,有助于提高页面在搜索结果中的可见性,并提供附加功能,例如丰富片段。
微格式是添加到页面 HTML 代码中的结构化数据。它为搜索引擎提供有关页面内容的更多信息,例如内容类型、作者、发布日期、评分等。
微格式由两部分组成:词汇表——用哪些术语来描述实体,以及语法——如何把这些术语实际写进 HTML。这是两个不同的层面,不要混为一谈。
词汇表就是 Schema.org:一套公共的类型(Article、Product、Event、Organization 等)及其属性。Schema.org 由 Google、Microsoft、Yahoo 和 Yandex 发起,由开放社区维护,所有主流搜索引擎都能理解它。
语法就是书写方式。同一套 Schema.org 词汇表可以用三种不同的方式写出来:
- JSON-LD:数据放在
<script type="application/ld+json">里作为独立的一块,不和页面结构混在一起。W3C 标准,Google 推荐的正是它。 - Microdata:把
itemscope、itemtype、itemprop属性直接写在 HTML 元素上。在 HTML Living Standard 中有定义。 - RDFa(RDFa Lite 1.1):把
vocab、typeof、property属性同样直接写在 HTML 元素上。W3C 推荐标准。
除了 Schema.org,还有针对特定场景的其他词汇表——比如 Open Graph(社交网络中的链接预览)和 microformats2。本节课我们使用 Schema.org。
9.2 Schema.org
Schema.org是用于在网页上结构化数据的数据类型和其属性的词汇表。它支持多种数据类型,例如文章、事件、组织、产品等。
Schema.org 的使用示例
文章 (Article):
<article>
<h1>文章标题</h1>
<p>作者:作者姓名</p>
<p>发布日期:2024年1月1日</p>
<img src="https://example.com/image.jpg" alt="示例图片">
<p>文章内容...</p>
</article>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "文章标题",
"author": {
"@type": "Person",
"name": "作者姓名"
},
"datePublished": "2024-01-01",
"image": "https://example.com/image.jpg",
"publisher": {
"@type": "Organization",
"name": "出版社",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
}
</script>
产品 (Product):
<body>
<h1>产品名称</h1>
<img src="https://example.com/product.jpg" alt="产品图片">
<p>产品描述</p>
<p>价格:$29.99</p>
</body>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "产品名称",
"image": "https://example.com/product.jpg",
"description": "产品描述",
"sku": "0446310786",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "29.99",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"url": "https://example.com/product"
}
}
</script>
使用 Schema.org 的好处:
- 提高可见性:搜索引擎可以在搜索结果中显示额外数据(丰富片段)。
- 改善理解:搜索引擎更好地理解内容,可以提高页面排名。
- 标准支持:Schema.org 得到所有主要搜索引擎的支持。
9.3 JSON-LD
JSON-LD(JavaScript Object Notation for Linked Data)是一种在页面上使用 JSON 格式编码微格式的方法,通常插入到 <script> 标签中。Google 推荐使用 JSON-LD 来处理结构化数据。
JSON-LD 的使用示例
组织 (Organization):
<body>
<h1>公司名称</h1>
<p>公司描述</p>
<div>联系方式</div>
</body>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "公司名称",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-800-555-1212",
"contactType": "Customer Service"
}
}
</script>
9.4 Microdata
Microdata 是直接嵌入 HTML 的微格式语法。itemscope、itemtype、itemprop(以及 itemid 和 itemref)这些专用属性被加到普通的 HTML 元素上,把它们与 Schema.org 词汇表中的类型和属性关联起来。
Microdata 的使用示例
事件 (Event):
<body itemscope itemtype="https://schema.org/Event">
<h1 itemprop="name">事件名称</h1>
<time itemprop="startDate" datetime="2024-05-01T19:00">2024年5月1日, 19:00</time>
<div itemprop="location" itemscope itemtype="https://schema.org/Place">
<span itemprop="name">事件地点</span>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">街道, 地址</span>
<span itemprop="addressLocality">城市</span>
<span itemprop="postalCode">邮政编码</span>
<span itemprop="addressCountry">国家</span>
</div>
</div>
</body>
使用微格式的好处:
- 丰富片段:搜索引擎可以在搜索结果中显示扩展片段,提高点击率。
- 更好的内容理解:搜索引擎更好地理解内容,可能会提高页面排名。
- 支持语音搜索:结构化数据可以改善语音搜索结果。
- 与其他服务集成:微格式允许与各种服务集成,如 Google Knowledge Graph 等。
GO TO FULL VERSION