schema评分标记指用schema.org规范(如aggregaterating)为页面可见的评分内容添加结构化数据,必须同时具备人类可读文本与对应微数据绑定;仅写json-ld而无真实可见内容支撑,google可能忽略或报“不匹配”错误。

什么是Schema评分标记,为什么不能只写JSON-LD?
直接在HTML里用script type="application/ld+json"写JSON-LD是最常见做法,但搜索引擎(尤其是Google)对结构化数据的解析有隐性依赖:如果页面上完全看不到对应的人类可读评价内容,即使JSON-LD语法正确,也可能被忽略或标记为“不匹配”。换句话说,ratingValue和reviewCount必须有真实、可见、语义匹配的HTML文本支撑。
实操建议:
- 先写人类可读的评价区块(比如星级、分数、评论数),再用
itemprop等微数据属性绑定到它上面 - 避免把评分信息藏在
display: none或aria-hidden="true"元素里——Google明确表示这类内容不计入结构化数据验证 - JSON-LD可以保留作为补充,但不能替代可见标记
怎么用微数据(Microdata)给HTML评分区块打标?
微数据最稳妥,兼容性好,且能与页面DOM强绑定。关键不是套模板,而是让每个属性指向真实渲染的文本节点。
常见错误现象:ratingValue写成"4.5"但页面显示的是“4.5/5”或“★★★★☆”,导致解析失败。
实操建议:
- 用
itemscope itemtype="https://schema.org/AggregateRating"包裹整个评分容器 -
ratingValue必须对应一个纯数字文本节点(如<span itemprop="ratingValue">4.5</span>),不能带单位、斜杠或图标 -
reviewCount同理,必须是整数文本,比如<span itemprop="reviewCount">127</span> - 如果页面用SVG或CSS伪元素画星,得额外加一个
aria-label或隐藏span提供数值,例如:<span class="stars" aria-label="Rated 4.5 out of 5"></span><span itemprop="ratingValue" class="sr-only">4.5</span>
AggregateRating vs. Review:该用哪个类型?
很多人混淆这两个类型。简单说:AggregateRating是“汇总评分”(比如商品页顶部的平均分+总评人数),Review是单条用户评论。混用会导致Rich Result被拒。
使用场景:
- 页面顶部的“4.8分(239条评论)” → 必须用
AggregateRating - 下方每一条用户写的文字评价 → 每条都用独立的
Review,并关联到同一itemReviewed - 如果只标了
Review但没标AggregateRating,Google不会展示星级摘要(Stars in SERP)
参数差异:AggregateRating必须包含ratingValue和reviewCount;Review必须包含author、datePublished、reviewBody,否则结构化数据测试工具会报错。
怎么验证标记是否生效?
别信浏览器源码里看着“好像对了”,得用Google官方工具实测。
实操建议:
- 部署后,用
https://search.google.com/search?q=site%3Ayourdomain.com确认页面已被收录 - 打开
https://search.google.com/search?&q=your-page-url,右键“查看网页源代码”,复制全部HTML - 粘贴进
https://search.google.com/search/about/structured-data/testing-tool/(新版Rich Results Test) - 重点看“Errors”和“Warnings”栏——常见警告如
The property ratingValue is not recognized for type AggregateRating,通常是因为父级itemscope缺失或itemtype拼写错误(注意末尾有没有斜杠)
容易被忽略的地方:本地开发时用file://协议打开HTML,Rich Results Test无法解析微数据;必须部署到http(s)://环境才能测准。还有,Google缓存更新有延迟,改完标记后至少等24小时再重测。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











