Blume中文文档

可发现性

结构化数据

在每个页面的 head 中输出 schema.org JSON-LD,让搜索引擎读懂你的内容

Blume 会在每个页面的 <head> 中输出 schema.org JSON-LD,让搜索引擎理解你的内容。默认开启:

seo: {
  structuredData: true,
}

每个页面包含:

  • 一个用于标识站点的 WebSite 节点,
  • 把页面本身作为 article —— blog 文章为 BlogPosting,更新日志和文档为 TechArticle —— 带上它的描述和发布日期,
  • 一个由导航路径构建的 BreadcrumbList。

当 deployment.site 已设置时,URL 是绝对的。标记了 seo.noindex 的页面会被跳过。当 lastModified 开启时,每个页面的日期还会作为 dateModified 输出。

站点标识#

WebSite 节点只说明存在这样一个站点;它没说这是_什么_,也没说由_谁_运营 —— 而 AI 智能体在推荐或引用你之前,读 JSON-LD 正是为了这些。有两个可选配置块可以补上这些信息,它们都需要 deployment.site(这些节点带的是绝对标识符):

seo: {
  organization: {
    name: "Acme", // 默认为站点标题
    email: "hello@acme.com",
    telephone: "+1 555 0100",
    address: { addressLocality: "Sydney", addressCountry: "AU" },
    logo: "/logo.svg",
    sameAs: ["https://github.com/acme", "https://x.com/acme"],
  },
  software: {
    license: "MIT",
    operatingSystem: "Node.js 22+",
    price: 0, // 输出为 Offer;0 表示免费
    sameAs: ["https://www.npmjs.com/package/acme"],
  },
}

organization 会给每个页面加上一个 Organization 节点 —— WebSite 和 article 节点把它作为 publisher 引用 —— 其中邮箱和电话组成一个 ContactPoint(contactType 默认为 "customer support"),地址作为一个 PostalAddress,商业信息核验查的就是这两项。name 和 url 默认为站点的值;根相对的 logo 会像任何页面 URL 一样被转成绝对地址。

software 会给首页加上一个 SoftwareApplication 节点:产品名称和描述(默认取站点的)、applicationCategory(默认 "DeveloperApplication")、操作系统、许可证、设置了 price 时的 Offer,以及 sameAs 中的注册表或仓库 URL。传入 software: true 即可采用全部默认值。若配置了 organization,它会作为该节点的 publisher 被引用。

自定义页面#

通过 PageLayout 渲染的自定义 .astro 页面会输出同样的 WebSite 图谱,因此营销首页不会是唯一没有结构化数据的那个 URL。传入 structuredDataEnabled={config.structuredData} 让它与本设置保持同步,或传入 structuredDataEnabled={false} 单独为该页面关闭。