ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Zola 结构化数据实战:让搜索结果长出摘要和作者

Zola 结构化数据实战:让搜索结果长出摘要和作者 Zola 结构化数据实战让搜索结果长出摘要和作者【免费下载链接】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 标记——搜索引擎靠它理解页面再用富摘要展示。为什么 Zola 没有内置 Schema.org怎么办先说清楚一个事实Zola 定位是极快的静态站点生成器功能面收窄config.toml里没有任何结构化数据相关选项默认产物里也找不到 JSON-LD。但这不是坏消息。Zola 用 Tera 模板引擎渲染页面而 JSON-LD一段塞在head里、给机器读的结构化数据脚本本质就是几行 HTML。换句话说你不需要等官方功能模板里手写即可。从页面类型到 Schema.org 类型的速查全景动手之前先建立全局认知不同页面用不同的 Schema 类型别拿 Product 去标博客你的页面Schema.org 类型核心字段博客文章Articleheadline、author、datePublished站点首页WebSitename、url、potentialAction商品页Productname、offers、image活动页Eventname、startDate、location公司介绍Organizationname、logo、sameAs作者主页Personname、jobTitle、worksFor实操把 Schema.org 标记写进 Zola 模板JSON-LD 模板注入位置与 Tera 变量速查落点只有一个地方模板的head里。参考仓库里的模板结构test_site/templates/page.html 就是文章模板把script块贴进它的head即可完整变量清单可查 docs/content/documentation/templates/overview.md。写之前记住这几个 Tera 变量后面代码全靠它们page.title/page.description文章标题、摘要来自 Markdown 前置元数据page.date/page.updated发布日期、更新日期后者未填时要用default兜底page.taxonomies.tags文章打过的标签列表page.extra.author自定义字段适合存作者名current_url当前页面的完整 URLZola 渲染时自动注入config.title/config.description/config.base_url站点级信息Article 与 WebSite 标记的最小可用代码第一段给文章页输出 Article 标记贴进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) }}, author: { type: Person, name: {{ page.extra.author | default(valueconfig.extra.author) }} }, image: [ https://your-domain.com/cover.jpg {# 需要动态生成时可遍历 page.assets 过滤本地图片再拼进这个数组 #} ], {# current_url 是 Zola 注入的当前页面完整地址 #} mainEntityOfPage: {{ current_url }} } /script第二段给首页输出 WebSite 标记并声明站内搜索供富摘要使用贴进index.html的head。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把标记抽成可复用的 include 组件标记一多直接内联会让模板变臃肿。约定一个目录templates/schema/每种类型一个文件比如article.html、website.html、product.html内容就是上面带script的整块。然后按页面归属的 section 条件引入page.html的head末尾写{# 文章区才输出 Article 标记 #} {% if page.section posts %} {% include schema/article.html %} {% endif %} {# 组织信息全站通用直接包含 #} {% include schema/organization.html %} 这样做的好处换文章标记格式只改schema/article.html一个文件模板本体零改动。验证结构化数据与常见报错排查两步验证zola serve Rich Results Test本地跑zola serve打开http://localhost:1111的任意文章页F12查看源码确认script typeapplication/ldjson真的被渲染出来了且花括号内没有残留{{。把页面 HTML 粘进 Google Rich Results Test看是否报 error 或 warning。结构化数据标记常见坑清单尾逗号JSON 最后一个字段后多一个逗号整个块直接解析失败。变量没兜底page.updated没填时 Tera 输出空字符串dateModified就变成记得加| default(valuepage.date)。assets 过滤写错想从page.assets里筛本地图片时过滤条件过严会导致image数组为空先打印变量再调条件。全角标点混入中文输入法下敲的全角逗号会让 JSON 非法肉眼很难发现。重复标记主题模板里已经写过一次 JSON-LD你又内联一段同类型字段互相冲突。回看开头那个对比场景你需要的不是换主题而是让搜索引擎读懂页面。下一步就从最近的一篇博客开始——把 Article 代码贴进page.htmlzola serve验证通过后再上首页的 WebSite 标记一天内让搜索结果长出摘要、作者和日期。【免费下载链接】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),仅供参考
返回列表