ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Zola 快速上手:3 步给静态站注入 Schema.org 结构化数据

Zola 快速上手:3 步给静态站注入 Schema.org 结构化数据 Zola 快速上手3 步给静态站注入 Schema.org 结构化数据【免费下载链接】zolaA fast static site generator in a single binary with everything built-in. https://www.getzola.org项目地址: https://gitcode.com/GitHub_Trending/zo/zola同一批搜索结果里两条链接标题几乎一样一条只有一行灰字摘要另一条下面挂着作者名、发布日期鼠标划过还有小图预览。差别不在内容质量而在后者的 HTML 里多了一段给机器看的说明书——结构化数据。Zola 本身不内置 Schema.org 标记但它的 Tera 模板足以让你手写 JSON-LD 脚本让文章页在搜索引擎里以富媒体形式展示。本文从零走到进阶全程只用模板不引任何插件。最小可用 JSON-LD三步注入最小可用就是一段能被搜索引擎解析的 Article 脚本三行核心字段起步不追求完整。第一步找到 Zola 的三个标准模板index.html、section.html、page.html把脚本放进文章模板page.html的head里。script typeapplication/ldjson { context: https://schema.org, type: Article, headline: {{ page.title }}, description: {{ page.description | default(valueconfig.description) }}, datePublished: {{ page.date | date(format%Y-%m-%d) }}, mainEntityOfPage: { id: {{ current_url }} } } /script第二步把占位符换成真实数据。这里全是模板变量page.title和page.date来自 front mattercurrent_url是 Zola 注入的当前页完整地址default过滤器负责页级描述缺失时退回站点描述。第三步运行zola build在生成的 HTML 里右键查看源码确认head中出现了填好值的script typeapplication/ldjson。页面场景与 Schema 类型选型对照不同页面用不同type类型错了富媒体展示根本不会触发。下表覆盖最常见的场景页面场景推荐 type必备字段博客文章Articleheadline、datePublished、author首页WebSitename、url产品页Productname、image、offers活动页Eventname、startDate、location人物页Personname、jobTitle公司页Organizationname、url、logoArticle 可以补的增强字段description、keywords、articleSection、image、publisher、dateModified。其中keywords常用page.taxonomies.tags | join(sep, )从分类法取值dateModified建议写page.updated | default(valuepage.date)页面没更新过时自动回退到发布日。页面变量与过滤器速查表填 JSON-LD 用到的变量一张表查全变量 / 工具作用page.title/page.description页级标题与摘要page.date/page.updated发布日 / 更新日后者可不填page.assetsfront matter 中声明的素材路径列表page.extrafront matter 自定义字段如作者名page.taxonomies.tags页面命中的标签集合current_url当前页完整 URLconfig.title/config.base_url站点名与根地址default过滤器值为空时给兜底值join过滤器列表拼成字符串date过滤器日期转指定格式get_url函数把站内路径解析成对外 URL忘了某个变量叫什么在模板里临时写一行{{ __tera_context }}构建后页面上会直接打印当前能访问到的全部变量。按 section 拆分 schema 片段页面一多JSON-LD 全塞在page.html里会失控正确做法是拆成独立片段按 section 条件引入。{# templates/page.html 内 #} {% if current_path starts_with /blog %} {% include schema/article.html %} {% elif current_path starts_with /products %} {% include schema/product.html %} {% endif %}目录结构建议templates/ ├── schema/ │ ├── article.html │ ├── product.html │ └── organization.html └── page.html每个片段只放一个script typeapplication/ldjson主模板只管选择。新增类型时建一个片段、加一条分支即可互不干扰。本地验证与常见报错验证顺序固定为本地预览、肉眼核对源码、上 Google 工具复测。zola serve起本地站点后先看页面源码里脚本是否生成再丢进 Google 的富媒体结果测试工具Rich Results Test确认零报错。三个高频问题page.updated未声明它是可选字段没填就引用会直接构建失败务必加default回退404 模板没有current_url404.html拿不到current_path和current_url别往里塞依赖这俩变量的标记标题带引号headline含会产出非法 JSON改用regex_replace过滤器转义后再输出。交付前清单只标记页面真实展示的信息不写页面看不到的字段所有值都来自模板变量杜绝硬编码JSON-LD 拆成templates/schema/片段按 section includezola serve预览 源码核对确认每个页面都生成脚本Google 富媒体结果测试工具零报错后再发布上线想查变量和函数的完整说明看官方文档 模板概览 和 分类法模板仓库里的 test_site/templates/ 是一套可运行的模板示例照着改最快。【免费下载链接】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),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进