如何使用JSON-LD标记课程介绍页与课时页的关联关系
自主进度多页面课程Schema结构化标记方案
课时页的@type选型
课时页不要使用Course类型,也不要误用CourseInstance——后者是用来标记同一门课程的不同开班批次(比如定时开课的直播班、线下授课班期),和自主进度课的固定内容单元不匹配。
课时页的核心类型选**LearningResource**即可,这是schema.org专门为独立学习资源单元定义的子类,属于CreativeWork的子类型,完全适配单课时的定位。如果单个课时包含特定形态的内容,可以叠加对应类型:比如课时以视频为主可以同时加VideoObject,包含随堂测验可以加Quiz,包含实操练习可以加HowTo。
跨页面关联关系配置方法
通过hasPart+isPartOf的双向关联即可完整描述页面从属关系,不需要额外引入其他属性,配置规则分两类页面处理:
- 课程介绍页(每组的根路径页面,如
/course-1):在已有的Course实体上新增hasPart字段,按课时顺序罗列所有下属课时的核心标识即可,不需要把课时的完整内容嵌套进来,仅需填写@type、name、url、position(课时序号)四个字段。 - 单个课时页(如
/course-1/lesson-1):根实体使用前面说的LearningResource(按需叠加其他内容类型),新增两个关联字段:- 用
isPartOf关联所属的课程,仅需填写对应Course的@type、name、url(即课程介绍页地址) - 可选配置
nextItem/previousItem关联前后相邻课时,或直接用position字段标记课时序号,明确内容顺序
- 用
配置示例
课程介绍页JSON-LD示例
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Course", "name": "前端入门实战课", "description": "从零基础到能独立开发前端页面的自主进度实战课程", "url": "https://www.myeducationalsite.com/course-1", "provider": { "@type": "Organization", "name": "我的教育站点" }, "hasPart": [ { "@type": "LearningResource", "name": "课时1:前端行业与学习路径介绍", "url": "https://www.myeducationalsite.com/course-1/lesson-1", "position": 1 }, { "@type": "LearningResource", "name": "课时2:HTML核心标签用法", "url": "https://www.myeducationalsite.com/course-1/lesson-2", "position": 2 }, { "@type": "LearningResource", "name": "课时3:CSS基础选择器", "url": "https://www.myeducationalsite.com/course-1/lesson-3", "position": 3 } ] } </script>
单课时页JSON-LD示例
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": ["LearningResource", "VideoObject"], "name": "课时1:前端行业与学习路径介绍", "description": "本课时讲解前端开发的岗位方向、能力要求和科学学习路径", "url": "https://www.myeducationalsite.com/course-1/lesson-1", "position": 1, "duration": "PT15M", "isPartOf": { "@type": "Course", "name": "前端入门实战课", "url": "https://www.myeducationalsite.com/course-1" }, "nextItem": { "@type": "LearningResource", "name": "课时2:HTML核心标签用法", "url": "https://www.myeducationalsite.com/course-1/lesson-2" } } </script>
配置注意:不需要在课时页重复罗列全课程所有课时,也不需要在课程介绍页嵌套每个课时的完整内容(比如视频字幕、正文全文),保留核心标识字段即可,避免结构化数据冗余。
hasPart和isPartOf是schema.org定义的双向关联属性,只要两边配置对应字段,搜索引擎就能自动拼接出完整的课程层级结构。
内容的提问来源于stack exchange,提问作者jenwoodson
相关产品推荐
相关产品推荐

