Zola结构化数据3步落地:让搜索结果展示文章摘要与作者
【免费下载链接】zolaA fast static site generator in a single binary with everything built-in. https://www.getzola.org项目地址: https://gitcode.com/GitHub_Trending/zo/zola
本文以 Zola 静态网站生成器为例,用3步完成一次最小可用的结构化数据接入:在模板里输出 JSON-LD 格式的 Schema.org 标记,让搜索引擎在搜索结果中展示文章标题、摘要、作者与发布日期。Zola 本身不内置该功能,但它的 Tera 模板系统提供了完成此事所需的全部变量。
✅ 最终效果预览
完成后,每篇文章的 HTML 头部会多出一段application/ld+json脚本,搜索引擎据此在搜索结果中展示富信息卡片;用 Google 的结构化数据测试工具打开页面,能直接看到被识别的 Article 类型及其字段。仓库文档中的 Adidoks 主题就是一个真实示例,它通过[extra.schema]配置向页面注入 JSON-LD:
动手前确认
- 一个可正常运行的 Zola 站点,包含
templates、content目录和config.toml,执行zola serve无报错。 config.toml中已填写description,并预留[extra]段存放站点级信息。- 浏览器已安装开发者工具,方便查看渲染后的 HTML。
目录约定与模板机制详见 官方文档:目录结构 和 模板概览。
🔧 最短实现路径:Article 标记三步接入
第1步:创建 templates/schema/article.html
在templates下新建schema/article.html,内容如下:
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "{{ page.title }}", "description": "{{ page.description | default(value=config.description) }}", "author": { "@type": "Person", "name": "{{ page.extra.author | default(value=config.extra.author) }}" }, "datePublished": "{{ page.date | date(format='%Y-%m-%d') }}" } </script>这段代码用{{ page.* }}取出每篇文章的标题、描述与日期;default过滤器在页面没写description或extra.author时回退到config.toml里的站点级值,保证字段始终有内容。
第2步:在页面模板中引入,并补充站点配置
在templates/page.html的<head>中加入一行引入,并在config.toml补充作者:
{% include "schema/article.html" %}[extra] author = "你的名字"引入语句让所有走page.html的页面自动携带该标记;如需只对文章生效,可用{% if %}按current_path包一层条件。站点标题、Logo 等字段通过config.title、get_url()内置函数取到后,可按同样方式补进模板。
场景速查:按页面类型选 Schema 类型
| 页面场景 | @type | 关键字段 | 取数来源 |
|---|---|---|---|
| 博客文章 | Article | headline、datePublished、author | page.title、page.date、page.extra |
| 首页 | WebSite | name、url、potentialAction | config.title、config.base_url |
| 产品介绍页 | Product | name、offers、brand | page.extra下的价格等字段 |
| 关于页 | Organization | name、url | config.extra |
做法都一样:每种类型单独建一个templates/schema/xxx.html,再在对应模板中 include。仓库里的 Academic Paper 主题即为博客场景的完整参考,其 说明文档 明确列出 JSON-LD 元数据属于主题特性:
自检与排错:如何验证 Zola 结构化数据生效
执行zola serve后访问任意文章页,用开发者工具查看源码中的application/ld+json段,再将其内容粘贴到 Google 结构化数据测试工具中校验。常见问题对照如下:
| 症状 | 原因 | 处理 |
|---|---|---|
| 源码中找不到 ld+json 脚本 | 引入没写进实际使用的模板,或条件不成立 | 确认文章真正渲染的是page.html,必要时用 front matter 的template字段核对 |
| 测试工具提示缺少必填字段 | Article 缺少 headline 或 datePublished 等 | 按工具报出的字段名逐个补齐 |
| 校验通过但搜索结果仍是普通卡片 | 搜索引擎尚未重新抓取索引 | 提交站点地图后等待数天,期间无需改代码 |
| 工具报 JSON 解析错误 | 模板里的引号、花括号未闭合,或字段值含未转义引号 | 先手动核对生成出的 JSON,再改模板 |
下一步
- 在 模板文档 中确认各模板可用的
config、current_url、page变量,把 WebSite 标记加到首页模板。 - 用
zola build完整构建一次,抽查public目录下的 HTML,确认静态产物里标记无误。 - 需要更多主题级示例时,参考 AdiDoks 主题文档 中
[extra.schema]的用法。
【免费下载链接】zolaA fast static site generator in a single binary with everything built-in. https://www.getzola.org项目地址: https://gitcode.com/GitHub_Trending/zo/zola
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考