为个人网站实现 JSON-LD"}],

为个人网站实现 JSON-LD

JSON-LD (JSON Linked Data) 是一种用于向网页添加结构化数据的标准化格式,允许网络爬虫和 AI 引擎理解网站的语义结构。实现 JSON-LD 可以带来更丰富的链接预览、提高搜索排名,并提升 LLM 爬虫的引用准确性。

JSON-LD 基础知识

JSON-LD 是通过在 HTML 文档的 <head> 部分添加一个 MIME 类型为 application/ld+json<script> 标签来实现的。这可以确保浏览器的 JavaScript 引擎忽略其内容,而专门的爬虫(如 Googlebot)则会对其进行解析。

JSON-LD 文档的核心组件

  • @context: 定义所使用的词汇表。大多数网络爬虫都遵循 Schema.org 标准。
  • @graph: 一个带标签的有向图,包含由弧连接的多个节点。
  • Nodes: 图中的单个实体,由以下内容定义:
    • @type: 节点的类别(例如,WebSitePerson)。
    • @id: 唯一标识符,通常是一个带有哈希值的 URL(例如,https://example.com/#website),这允许爬虫在不同页面间合并同一实体的属性。
    • Properties: 描述节点属性的键值对。

个人网站必备节点

为了最大限度地提高 SEO 和可发现性,个人网站应实现一组特定的 Schema.org 节点。

WebSite 和 WebPage

WebSite 节点提供有关整个域名的层级元数据,例如网站名称和描述。虽然根页面应该包含一个详尽的 WebSite 节点,但后续页面可以使用精简版本,为单页爬虫提供足够的上下文。

WebPage 描述了物理 HTML 页面及其内容。它是一个通用节点,可以进一步细化为子类型,如 ProfilePage(用于“关于”页面)或 CollectionPage(用于博客索引或个人资料列表)。

Person

Person 节点对于内容质量指标和 LLM 引用至关重要。它应该包含在个人网站的每个页面上,以建立一致的身份标识。关键属性包括:

  • url: 锚定身份的根页面。
  • name, givenName, familyName: 对个人的清晰标识。
  • sameAs: 其他专业个人资料的 URL 列表(GitHub、LinkedIn 等),这有助于爬虫构建知识图谱并区分同名人士。
  • image: 与该人相关的规范照片或 Logo。

SoftwareApplication

对于展示项目的开发者,SoftwareApplication 节点(或其子类型,如 MobileApplicationWebApplication)提供了有关软件的元数据。建议为免费和开源软件 (FOSS) 添加一个价格为 0 的 offers 属性,以确保元数据的完整性。

内容组织与导航

BreadcrumbList

BreadcrumbList 允许网站所有者控制搜索引擎如何在搜索结果中表示页面层级。这对于将长 URL 路径缩短为可读格式(例如,Home > Blog > Post Title)特别有用。

Blog 和 BlogPosting

对于带有技术博客的网站,使用两层结构:

  1. Blog: 此节点放置在博客索引页,作为 WebSite 与单个文章之间的桥梁。它可以包含 license 属性(例如, Creative Commons)以告知爬虫使用权限。
  2. BlogPosting: 此节点应用于单个文章。它应包含 headlinedatePublisheddateModifiedauthor(指向回 Person 节点)。image 属性应与用于社交链接预览的 Open Graph (OG) 图片保持一致。

实现总结表

Node Type Recommended Placement Primary Purpose
WebSite 所有页面 (根页面使用完整版) 域名级元数据和网站命名
Person 所有页面 身份、权威性和 LLM 引用
WebPage 所有页面 对特定 HTML 文档的描述
BreadcrumbList 所有非根页面 搜索引擎路径表示
Blog 博客索引页 博客文章的聚合器
BlogPosting 单个博客文章 文章特定元数据和富摘要

Sources