如何使用Schema.org在JSON-LD中标记文章的各章节?
针对维基百科式网站章节的JSON-LD类型选择方案
嘿,我完全懂你现在的纠结——刚摸JSON-LD,对着满页的章节和长内容,搜了半天也没找到精准的答案对吧?别慌,针对你这种维基百科风格的站点,其实有几个非常贴合的Schema.org类型可以选,我给你拆解清楚:
优先推荐的两种核心类型
1. Section(最贴合“章节”定位)
Schema.org里的Section就是专门为内容分段设计的,它属于CreativeWork的子类型,完美对应你页面里的各个小节。它的优势是明确传递“这是父内容的一部分”的关系,比如你整个页面可以标记为WebPage或者Article,然后用hasPart属性把所有章节关联起来,搜索引擎能清晰理解内容的层级结构。
2. Article(适合独立子主题章节)
如果你的章节本身是一个完整的、有独立主题的内容块(比如“XX事件的历史背景”“XX理论的核心原理”),用Article也完全没问题。Schema.org对Article的定义是“一段独立的创作内容”,这类章节刚好符合这个标准,而且搜索引擎对Article类型的抓取优先级也很高。
实操示例:层级结构的JSON-LD写法
给你举个简单的例子,展示如何把整个页面和章节关联起来:
{ "@context": "https://schema.org", "@type": "WebPage", "name": "量子力学百科页面", "description": "全面介绍量子力学的起源、核心概念及应用", "hasPart": [ { "@type": "Section", "name": "量子力学的起源", "description": "讲述量子力学从经典物理困境中诞生的历程", "text": "19世纪末,经典物理学在解释黑体辐射等现象时遇到瓶颈..." }, { "@type": "Article", "name": "薛定谔方程详解", "description": "深入解析量子力学的核心数学方程", "text": "薛定谔方程是量子力学中描述微观粒子运动状态的基本方程..." } ] }
特殊场景的灵活选择
如果你的章节是围绕某个具体实体(比如人物、地点、科学概念)展开的细节内容,还可以直接用对应的实体类型:
- 比如“爱因斯坦的主要成就”章节,可以把这个章节标记为
ItemList(如果是成就列表),或者作为Person实体的awards/achievements属性的延伸; - 如果是“巴黎的历史沿革”章节,也可以作为
Place实体的history属性内容来标记。
几个关键注意事项
- 不管选哪种类型,都要确保每个章节的
name(章节标题)、description(章节摘要)、text(章节核心内容)这几个基础属性完整,这是搜索引擎抓取和理解内容的关键; - 不要过度嵌套复杂结构,保持JSON-LD的简洁性,否则可能导致解析出错;
- 如果章节里包含子小节,也可以继续用
hasPart给Section或者Article嵌套子内容,形成清晰的层级。
内容的提问来源于stack exchange,提问作者sslver




