Schema.org 入门指南:2024年微数据提升网页语义化

AI Summary (BLUF)
Schema.org入门指南:利用结构化数据词汇表(微数据、RDFa、JSON-LD)标记网页内容,助力搜索引擎精准理解页面信息,优化内容展示效果。
注意:本文档基于 Schema.org 的开发版本。有关更多详情,请参阅 我们的工作方式。
引言:超越 HTML 的语义标记
大多数网站管理员都熟悉页面上的 HTML 标签。通常,HTML 标签告诉浏览器如何显示标签中包含的信息。例如,<h1>Avatar</h1> 告诉浏览器以标题 1 的格式显示文本字符串“Avatar”。然而,HTML 标签本身并未提供关于该文本字符串含义的任何信息——“Avatar”可能指代那部极其成功的 3D 电影,也可能指代一种个人头像类型。这种模糊性使得搜索引擎难以智能地向用户展示相关内容。
Schema.org 提供了一套共享的词汇表,网站管理员可以使用这些词汇表以主要搜索引擎(如 Google、Microsoft、Yandex 和 Yahoo!)能够理解的方式来标记他们的页面。
您可以将 schema.org 词汇表与 Microdata、RDFa 或 JSON-LD 格式结合使用,为您的网页内容添加结构化信息。本指南将帮助您快速掌握 Microdata 和 schema.org 的基础知识,以便开始为您的网页添加标记。
尽管本指南主要关注 Microdata,但 schema.org 网站上的大多数示例也展示了 RDFa 和 JSON-LD 格式。这里介绍的基本概念(类型、属性等)同样适用于 Microdata 之外的其他格式——您可以查看相关示例以了解细节上的差异。
1. 如何使用 Microdata 标记内容
1.1 为何使用 Microdata?
您的网页具有潜在的含义,人们在阅读时能够理解。但搜索引擎对这些页面所讨论内容的理解是有限的。通过在网页的 HTML 中添加额外的标签——这些标签相当于在说“嘿,搜索引擎,这条信息描述的是这部特定的电影、地点、人物或视频”——您可以帮助搜索引擎和其他应用程序更好地理解您的内容,并以有用、相关的方式展示它们。Microdata 是 HTML5 引入的一套标签,使您能够实现这一目标。
1.2 itemscope 与 itemtype
让我们从一个具体例子开始。假设您有一个关于电影《阿凡达》的页面,其中包含指向电影预告片的链接、导演信息等。您的 HTML 代码可能如下所示:
<div>
<h1>Avatar</h1>
<span>Director: James Cameron (born August 16, 1954)</span>
<span>Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html">Trailer</a>
</div>
首先,确定页面中“关于”电影《阿凡达》的部分。为此,在包含项目信息的 HTML 标签上添加 itemscope 属性,如下所示:
<div itemscope>
<h1>Avatar</h1>
<span>Director: James Cameron (born August 16, 1954) </span>
<span>Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html">Trailer</a>
</div>
通过添加 itemscope,您指定了 <div>...</div> 块中包含的 HTML 是关于一个特定项目的。
但是,仅指定有一个被讨论的项目而不说明它是哪种类型的项目,帮助不大。您可以在 itemscope 之后立即使用 itemtype 属性来指定项目的类型。
<div itemscope itemtype="https://schema.org/Movie">
<h1>Avatar</h1>
<span>Director: James Cameron (born August 16, 1954)</span>
<span>Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html">Trailer</a>
</div>
这指定了 div 中包含的项目实际上是 schema.org 类型层次结构中定义的 Movie(电影)。项目类型以 URL 形式提供,本例中为 https://schema.org/Movie。
1.3 itemprop
我们还能向搜索引擎提供关于电影《阿凡达》的哪些额外信息呢?电影具有有趣的属性,如演员、导演、评分等。要标记项目的属性,请使用 itemprop 属性。例如,要标识电影的导演,请在包含导演姓名的元素上添加 itemprop="director"。(您可以在 https://schema.org/Movie 找到可以与电影关联的所有属性的完整列表。)
<div itemscope itemtype="https://schema.org/Movie">
<h1 itemprop="name">Avatar</h1>
<span>Director: <span itemprop="director">James Cameron</span> (born August 16, 1954)</span>
<span itemprop="genre">Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</div>
请注意,我们添加了额外的 <span>...</span> 标签,以便将 itemprop 属性附加到页面上相应的文本。<span> 标签不会改变网页浏览器渲染页面的方式,因此它们是配合 itemprop 使用的便捷 HTML 元素。
现在,搜索引擎不仅能理解 http://www.avatarmovie.com 是一个 URL,还能理解它是科幻电影《阿凡达》预告片的 URL,该电影由詹姆斯·卡梅隆执导。
1.4 嵌套项目
有时,项目属性的值本身可以是另一个具有自己属性集的项目。例如,我们可以指定电影的导演是一个 Person(人物)类型的项目,而该 Person 具有 name(姓名)和 birthDate(出生日期)属性。要指定某个属性的值是另一个项目,您需要在相应的 itemprop 之后立即开始一个新的 itemscope。
<div itemscope itemtype="https://schema.org/Movie">
<h1 itemprop="name">Avatar</h1>
<div itemprop="director" itemscope itemtype="https://schema.org/Person">
Director: <span itemprop="name">James Cameron</span> (born <span itemprop="birthDate">August 16, 1954</span>)
</div>
<span itemprop="genre">Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</div>
2. 使用 Schema.org 词汇表
2.1 Schema.org 类型与属性
并非所有网页都是关于电影和人物的——除了第 1 节中描述的 Movie 和 Person 类型外,schema.org 还描述了各种其他项目类型,每种类型都有自己的一组可用于描述该项目的属性。
最广义的项目类型是 Thing,它具有四个属性:name、description、url 和 image。更具体的类型会继承更广义类型的属性。例如,Place 是 Thing 的一个更具体的类型,而 LocalBusiness 又是 Place 的一个更具体的类型。更具体的项目会继承其父类型的属性。(实际上,LocalBusiness 是 Place 和 Organization 的更具体类型,因此它从两个父类型继承属性。)
以下是一些常用的项目类型:
- 创意作品: CreativeWork, Book, Movie, MusicRecording, Recipe, TVSeries ... (Creative works)
- 嵌入式非文本对象: AudioObject, ImageObject, VideoObject (Embedded non-text objects)
- 事件: Event
- 组织: Organization
- 人物: Person
- 地点: Place, LocalBusiness, Restaurant ... (Place, LocalBusiness, Restaurant ...)
- 产品与优惠: Product, Offer, AggregateOffer (Product, Offer, AggregateOffer)
- 评价与评分: Review, AggregateRating (Review, AggregateRating)
您也可以在完整类型列表页面上查看所有项目类型。
2.2 期望类型、文本与 URL
在为网页添加 schema.org 标记时,请记住以下几点注意事项:
- 标记越多越好,但隐藏文本除外。 一般来说,标记的内容越多越好。然而,作为一般规则,您应该只标记访问网页的用户可见的内容,而不是隐藏在 div 或其他隐藏页面元素中的内容。 (More is better, except for hidden text.)
- 期望类型与文本。 在浏览 schema.org 类型时,您会注意到许多属性都有“期望类型”。这意味着该属性的值本身可以是一个嵌套项目(参见第 1.4 节:嵌套项目)。但这并非强制要求——仅包含常规文本或 URL 也是可以的。此外,只要指定了期望类型,嵌入一个属于该期望类型子类型的项目也是可以的。例如,如果期望类型是 Place,那么嵌入一个 LocalBusiness 也是可以的。 (Expected types vs text.)
- 使用
url属性。 有些网页是关于特定项目的。例如,您可能有一个关于单个人物的网页,可以使用 Person 项目类型进行标记。其他页面则描述了项目的集合。例如,您的公司网站可能有一个列出员工的页面,每个员工都有一个指向其个人资料页面的链接。对于这种包含项目集合的页面,您应该单独标记每个项目(本例中是一系列 Person),并为每个项目的链接添加url属性,如下所示: (Using theurlproperty.)
<div itemscope itemtype="https://schema.org/Person">
<a href="alice.html" itemprop="url">Alice Jones</a>
</div>
<div itemscope itemtype="https://schema.org/Person">
<a href="bob.html" itemprop="url">Bob Smith</a>
</div>
2.3 测试您的标记
就像网络浏览器对于测试网页布局的更改很重要,代码编译器对于测试编写的代码很重要一样,您也应该测试您的 schema.org 标记,以确保其正确实现。Google 提供了一个富媒体搜索结果测试工具,您可以使用它来测试您的标记并识别任何错误。
3. 高级主题:信息的机器可理解版本
许多页面可以仅使用第 1 节描述的 itemscope、itemtype 和 itemprop 属性,以及第 2 节描述的 schema.org 定义的类型和属性来描述。
然而,有时项目属性在没有额外消歧义的情况下,机器难以理解。本节描述了在标记页面时,如何提供信息的机器可理解版本。
- 日期、时间和持续时间:使用带有
datetime属性的<time>标签。 (Dates, times, and durations: use thetimetag withdatetime) - **枚举和规范
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。




