新闻详情

新闻详情

首页 / 资讯中心 / 详情

Zola 网站补全 JSON-LD 结构化数据:让搜索结果多出一行信息

发布时间:2026/9/10 10:00:10来源:尧图网络
Zola 网站补全 JSON-LD 结构化数据:让搜索结果多出一行信息
Zola 网站补全 JSON-LD 结构化数据让搜索结果多出一行信息【免费下载链接】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 静态站的模板加一段 Schema.org 格式的 JSON-LD结构化数据的标准写法搜索结果里就能多出作者、发布日期甚至缩略图。本文只动模板文件5 分钟跑通最小可用版本适合任何有博客或栏目结构的 Zola 站点。为什么需要 Schema.org 结构化数据搜索引擎读的是 HTML 文本它并不天然知道哪段文字是作者、哪段是日期。JSON-LD 把一份机器可读的键值描述嵌进页面引擎解析后就能在富结果位展示这些信息Schema.org 是各搜索引擎共用的词汇标准。读完本文你能在文章模板里输出 Article 结构化数据为产品页输出 Product 标记给首页加上 WebSite 全局标记把不同标记封装成可复用的模板片段5 分钟跑通最小可用版 Zola JSON-LD第 1 步确认站点配置里的公共字段。打开站点根目录的zola.toml确保有下面这几行没有就补上title 我的博客 description 关于静态站点生成的笔记 base_url https://example.com author 你的笔名这几个字段后面会被 JSON-LD 反复引用author是文章没写作者时的兜底值。第 2 步新建templates/schema/article.html写入完整的脚本块。script typeapplication/ldjson { context: https://schema.org, type: Article, headline: {{ page.title }}, description: {{ page.description | default(valueconfig.description) }}, author: { type: Person, name: {{ page.extra.author | default(valueconfig.author) }} }, datePublished: {{ page.date | date(format%Y-%m-%dT%H:%M:%SZ) }}, dateModified: {{ page.updated | default(valuepage.date) | date(format%Y-%m-%dT%H:%M:%SZ) }}, mainEntityOfPage: { type: WebPage, id: {{ current_url }} } } /script这一段把 front matter 里的元数据翻译成一篇 Article 描述。date过滤器把日期格式化成 ISO 8601两处default保证字段缺失时不会渲染出空值。第 3 步在templates/page.html的开头引用它。{% extends index.html %} {% block content %} {% include schema/article.html %} {{ page.title | safe }} {{ page.content | safe }} {% endblock %}JSON-LD 放在head或正文里都有效所以直接放在内容区顶部即可不依赖主题模板的 head 结构。这样每篇文章构建后都会带上自己的结构化数据。第 4 步构建并检查输出。zola serve启动后打开任意一篇文章右键查看页面源代码找到script typeapplication/ldjson里面应该是变量全部替换完毕的纯 JSON。需要部署到线上再实际验证时先跑一次zola build检查产物。拆开看Tera 如何把页面变量渲染成 JSON-LDZola 是静态站点生成器构建时 Tera 模板引擎会遍历每个模板把{{ }}占位符替换成渲染上下文里的真实值。上下文来自三处页面 front matterpage.title、page.date、zola.tomlconfig.*以及引擎注入的current_url这类内置变量。整个过程就像乐高底板——模板是底板变量是拼上去的积木块构建完成的 HTML 里已经是最终成品不再有占位符。爬虫抓到的就是这份成品它按脚本类型找到 JSON-LD、解析其中的 JSON再决定搜索结果展示什么。如果对某个变量存疑可以在模板里临时写{{ __tera_context }}把整个上下文明明白白打印出来看。覆盖更多页面类型文章页补上图片和关键词第 2 步的最小版本只保留了必填字段文章页可以再补两个可选字段。把article.html中mainEntityOfPage那行的结尾逗号去掉改成mainEntityOfPage: { type: WebPage, id: {{ current_url }} } {% if page.taxonomies.tags %}, keywords: {{ page.taxonomies.tags | join(sep, ) }}{% endif %} {% if page.extra.image %}, image: {{ get_url(pathpage.extra.image) }}{% endif %}get_url会按 static 目录优先的顺序查找文件所以封面图放在static/images/下、front matter 写image images/cover.png就能用。把条件字段放在 JSON 末尾是为了避免{% if %}破坏逗号结构。产品页Product新建templates/schema/product.htmlscript typeapplication/ldjson { context: https://schema.org, type: Product, name: {{ page.title }}, description: {{ page.description }}, sku: {{ page.extra.sku }}, offers: { type: Offer, price: {{ page.extra.price }}, priceCurrency: {{ page.extra.currency }}, availability: https://schema.org/InStock, url: {{ current_url }} } } /script title 无线鼠标 description 静音按键长续航 sku WM-01 price 299 currency CNY 与 Article 块的差别在于headline换成name价格信息收进offers子对象字段全部来自 front matter模板里不写死任何商品数据。站点全局WebSite / Organization在templates/index.html顶部加一段只在首页输出一次script typeapplication/ldjson { context: https://schema.org, type: WebSite, name: {{ config.title }}, url: {{ config.base_url }}, description: {{ config.description }}, potentialAction: { type: SearchAction, target: {{ config.base_url }}/search?q{search_term_string}, query-input: required namesearch_term_string } } /script这段引用的全是config而不是page因为它描述的是整个站点。SearchAction声明站内搜索入口路径请改成你站点实际的搜索页地址。三种类型都稳定后建议保持templates/schema/目录结构不动在page.html里按 front matter 条件引用{% if page.extra.schema article %} {% include schema/article.html %} {% elif page.extra.schema product %} {% include schema/product.html %} {% endif %}以后新增类型时只要多建一个文件、在 front matter 里加一行schema product即可。JSON-LD 常见踩坑与排查症状源码里有脚本标签验证工具却显示未找到结构化数据原因include 写在了section.html这类模板里而该页面实际由page.html渲染脚本块根本没被输出修法确认引用写在该页面类型真正使用的模板中拿不准上下文时临时输出{{ __tera_context }}核对症状JSON-LD 里日期字段是空字符串原因文章 front matter 没有updated字段page.updated未定义修法给所有可能缺失的字段加| default(value...)兜底写法见第 2 步代码症状验证工具提示图片 URL 必须是绝对地址原因部署时base_url没配置为正式域名get_url只输出了相对路径修法在正式环境配置里把base_url设为真实站点地址且末尾不带斜杠症状解析报 JSON 无效缺逗号或多出空白原因用{% if %}条件输出字段时JSON 的逗号结构被破坏修法每种类型的 JSON-LD 放进独立的templates/schema/*.html文件被条件包裹的字段一律放在 JSON 末尾一张清单收尾脚本块位于 head 或 body 内JSON 合法日期为 ISO 8601缺失字段有 default 兜底base_url 为线上地址输出的是绝对 URL不同页面类型引用对应的 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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

OpenSSL 测试开发指南:为 test/recipes 编写 TAP 测试脚本与 C 测试可执行程序 2026/9/10 10:33:15

OpenSSL 测试开发指南:为 test/recipes 编写 TAP 测试脚本与 C 测试可执行程序

OpenSSL 测试开发指南:为 test/recipes 编写 TAP 测试脚本与 C 测试可执行程序 【免费下载链接】openssl General purpose TLS and crypto library 项目地址: https://gitcode.com/GitHub_Trending/ope/openssl 本文以 OpenSSL 仓库 test/README-dev.md 为核…

阅读更多 →
数字信号编码从NRZ到8B/10B:物理层比特映射与工程选型详解 2026/9/10 10:33:15

数字信号编码从NRZ到8B/10B:物理层比特映射与工程选型详解

做嵌入式、通信或者底层硬件开发的同行,应该都有过这种时刻:拿着示波器戳在芯片引脚上,明明协议栈里跑的全是0和1的逻辑,示波器上却是一串完全不认识的电平波形;翻了大半天手册,最后发现问题是出在物理层编…

阅读更多 →
【单片机毕业设计】基于 STM32 或 51 单片机人体感应节能台灯监测系统设计 基于 STM32 或 51 单片机的坐姿检测与灯光调控系统设计(021407) 2026/9/10 10:33:15

【单片机毕业设计】基于 STM32 或 51 单片机人体感应节能台灯监测系统设计 基于 STM32 或 51 单片机的坐姿检测与灯光调控系统设计(021407)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

阅读更多 →
CANN/GE图引擎设置图int64属性API 2026/9/10 10:33:15

CANN/GE图引擎设置图int64属性API

EsSetInt64AttrForGraph 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

阅读更多 →
STM32F103C8T6智能小车测速与距离计算:编码器、定时器与单位换算调参指南 2026/9/10 10:33:15

STM32F103C8T6智能小车测速与距离计算:编码器、定时器与单位换算调参指南

简介:STM32F103C8T6智能小车测速与行驶距离显示实验的完整程序源码包,适合嵌入式入门学习者与小车DIY爱好者参考。程序基于Keil4环境编写,适配STM32F103C8T6主控,配合L293D电机驱动、TT直流减速电机、测速模块及OLED屏&#xff0c…

阅读更多 →
SEO优化预算全解析:从几千到几万,钱到底花在哪? 2026/9/10 10:30:15

SEO优化预算全解析:从几千到几万,钱到底花在哪?

1. 先搞懂预算差异的根源:同样叫SEO,报价为什么能差出百倍我做SEO这行十几年,每隔几天就会接到一次类似的咨询,开场白通常是这样:"我看网上有人做SEO两千块一个月,也有人说花了十几万没效果&#xff0…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞