应使用 https://schema.org/Book 作为 itemtype,必须为完整 HTTPS URI,大小写敏感且不可省略协议与域名;仅标记 name、author、isbn 等核心字段即可被基础识别,image 和 aggregateRating 需规范嵌套才能触发富摘要。

itemtype 应该用 schema.org 的 Book 类型 URL
HTML 中的 itemtype 不是随便写个 “Book” 就行,它必须是结构化数据规范中定义的完整 URI。对图书信息,唯一被广泛支持、搜索引擎(Google、Bing 等)明确识别的是 https://schema.org/Book。写成 Book、book 或 http://schema.org/Book(少一个 s)都会导致解析失败。
常见错误现象:Google Rich Results Test 显示 “No structured data detected”,或在搜索结果中不出现图书封面、作者、评分等富摘要。
- 必须用 HTTPS 协议:
https://schema.org/Book(不是http) - 大小写敏感:不能写成
https://schema.org/book - 不能省略协议和域名,
Book或/Book都无效
最简可用的 Book 微数据标记写法
只标记核心字段(name、author、isbn)就能被基础识别,不需要堆砌所有属性。关键是用对 itemscope 和 itemprop 嵌套关系。
<div itemscope itemtype="https://schema.org/Book"> <h1 itemprop="name">三体</h1> <p>作者:<span itemprop="author" itemscope itemtype="https://schema.org/Person"><span itemprop="name">刘慈欣</span></span></p> <p>ISBN:<span itemprop="isbn">9787536692930</span></p> </div>
说明:
立即学习“前端免费学习笔记(深入)”;
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
-
itemprop="author"后面嵌套了Person类型,这是推荐做法——直接写“刘慈欣”字符串也能被识别,但显式声明Person更利于语义解析 -
isbn推荐用纯数字或带分隔符的完整 ISBN-13(如978-7-5366-9293-0),Google 支持两种格式 - 避免把
itemprop错放在父容器外,比如<h1>外再写一个itemprop="name",会导致字段丢失
哪些 itemprop 字段 Google 实际会用于富摘要?
不是所有 schema.org/Book 定义的属性都会触发富结果。Google 当前(2024)明确支持并展示的图书字段有限,优先保证这几个:
-
name(必填,否则无标题) -
author(支持Person或Organization,多作者用多个itemprop="author"元素) -
isbn(用于关联图书数据库,提升可信度) -
image(需绝对 URL,且图片宽高比建议 ≥ 1:1.5,否则可能被忽略) -
aggregateRating(需完整嵌套ratingValue+reviewCount,单独写ratingValue不生效)
注意:description、publisher、datePublished 虽然合法,但 Google 图书富摘要中目前不显示这些字段——它们更多用于知识图谱补全,而非用户可见结果。
容易被忽略的兼容性细节
微数据本身不报错,但实际生效依赖 HTML 结构干净、上下文合理。以下几点常被跳过,却直接导致验证通过但无效果:
- 整个
itemscope区块最好独立成块级容器(如<div>或<article>),不要塞在<span>或内联元素里 - 如果页面同时用了 JSON-LD,微数据会被忽略——二者别混用在同一实体上
- Google 不抓取本地文件(
file://)或未部署的 HTML,测试务必用真实 HTTP(S) 地址 +Google Rich Results Test -
image的 URL 必须可公开访问、允许爬虫抓取(检查robots.txt和响应头X-Robots-Tag)
真正卡住人的往往不是语法,而是 image 路径 404、或把整个 Book 结构包在 JavaScript 动态渲染的 v-if / ngIf 里——Googlebot 当前仍难以可靠执行复杂前端逻辑来提取微数据。


















