应使用 https://www.php.cn/link/e102c6d146f0a21bb03ed663234994cd 类型,且必须在页面 head 或 body 顶部静态添加,provider 需为含 @type 的对象,name、description、provider 为必填字段。

课程 Schema 标记该用哪个类型
Course 是唯一符合教育类内容的官方类型,别用 Event 或 Organization 替代。Google 搜索文档明确要求课程页必须用 @#@#@#@#@#@#@#@#@#@0,否则不触发“课程”富媒体结果。
- 必须在页面
或顶部添加,不能动态插入(JS 注入的Course极大概率被忽略) -
@context必须是"@#@#@#@#@#@#@#@#@#@1",写成"@#@#@#@#@#@#@#@#@#@2"会失效 -
identifier建议用学校/平台内部课程编码(如"CS101-2024-FALL"),不要用 URL 或随机 UUID
关键字段哪些不能省,哪些可以留空
name、description、provider 这三个是 Google 索引课程卡片的硬性门槛,缺一不可;其余字段如 courseCode、educationalLevel 属于增强项,不影响基础识别。
-
name长度建议控制在 60 字符内,超长会被截断且影响展示 -
description要真实描述课程内容,不能堆砌关键词——Google 会校验与页面正文相关性,不匹配可能降权 -
provider必须嵌套完整对象,至少含@type和name,写成字符串(如"provider": "MIT")直接无效
{
"@context": "https://www.php.cn/link/9e18f95f1c259dbcc2388008c47d5d25",
"@type": "Course",
"name": "数据结构与算法入门",
"description": "涵盖链表、树、图及常见排序算法实现,面向零基础开发者。",
"provider": {
"@type": "Organization",
"name": "极客时间"
}
}
常见报错:Google Rich Results Test 显示“Missing field 'provider'”
这不是代码漏写,而是 provider 对象结构不对。最常踩的坑是:
- 把
provider写成字符串而非对象("provider": "清华大学"❌) -
provider对象里没写@type(必须是"@type": "Organization"或"@type": "EducationalOrganization") - 页面 HTML 中存在多个
script type="application/ld+json",但其中某个 JSON 语法错误,导致整个解析中断(哪怕只错一个逗号)
验证前先用 JSONLint 过一遍,再粘贴到 Rich Results Test 工具——工具不会告诉你哪段 JSON 崩了,只报顶层缺失。
课程时间、学分、授课方式怎么标才被识别
startDate、endDate、numberOfCredits、educationalLevel 这些字段 Google 目前不用于富媒体展示,但会影响 Education Graph 数据收录。如果页面本身没体现开课时间,就别硬填 startDate,空值或虚构日期反而增加信任风险。
-
offers可用来标价格,但必须带priceCurrency和price(如"price": "0"表示免费),只写"price": "免费"会被忽略 -
video或image字段支持VideoObject或ImageObject类型,但图片 URL 必须可公开访问且尺寸 ≥ 200×200px,否则验证失败
实际加标记时,优先保证核心三字段准确、结构合规,扩展字段按页面真实信息有选择地补全。Schema 不是越多越好,错一条就可能让整块标记失效。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











