TechArticle 最危险的错误不是少一个字段,而是网页、社交卡片和 JSON-LD 各说一套事实:正文已经有代表图,结构化数据仍只有 Logo;页面只展示发布日期,Sitemap 却每天声称更新;署名是组织研究团队,机器数据却虚构一个个人专家。可靠实现的核心是“同源”——每个机器可读字段都从用户实际看到的数据生成,并由渲染测试验证。结构化数据可以帮助理解与富结果资格,但不会因为字段更多就自动获得 AI 引用。

一、先设计数据流,再决定写哪些字段
文章系统通常有四个输出面:正文 HTML、页面 metadata、JSON-LD、Sitemap/RSS。最稳妥的架构不是在四处复制值,而是让数据库文章记录与 Markdown 正文成为事实源,再由共享函数派生输出。
以代表图为例,本站文章编辑规范要求图片必须独占一行:
渲染器只识别这种语法并输出 <figure>、<img> 和 <figcaption>。那么页面元数据也应该调用同一套解析规则:找到“渲染器真正会展示的第一张图”,再把这张图写入 Open Graph、Twitter card 和 TechArticle image。如果 metadata 用另一套更宽松的正则,可能会抓到一张行内图片;机器数据说它存在,读者却根本看不见。
二、代表图不是 Logo,也不是任意附件
Google 的 Article 指南把 image 定义为能代表文章内容的图片,并要求图片可抓取、可索引、与页面相关。全站 Logo 能说明出版者是谁,不能说明某篇文章讲什么。
一套稳健的代表图处理应满足五点:
- 图片真实出现在正文里,并靠近相关文字。
- URL 是公开的 HTTP/HTTPS 地址,不依赖登录或临时签名。
- alt 与图注能独立说明图里表达的关系,而不是只写“图 1”。
- 图片尺寸足以用于搜索和分享卡片,不是 50 像素的小图标。
- Open Graph、Twitter 与 TechArticle 指向同一张图,避免预览结果漂移。

这不是说每篇文章必须只有一张图。正文可以有多张证据图;代表图只是其中最适合概括页面的一张。Google 对 Article 的最佳实践还建议准备多种比例的高分辨率图片,但如果站点目前只有一张真实代表图,先准确提供这一张,比用裁切错误或无关的占位图凑数组更可靠。
三、三个日期字段不能互相冒充
datePublished:第一次公开的时间
它应该在文章首次发布后稳定不变。重发旧文章时,如果导入脚本把 published_at 改成今天,列表顺序、文章页日期、RSS 与历史记录都会一起失真。
dateModified:内容最后一次实质变更
正文、结构化数据、主要图片或重要内链发生显著变化时,修改时间可以更新。只改版权年份、构建产物哈希或部署时间,不应被包装成文章内容更新。
Sitemap lastmod:给抓取系统的可核验提示
Google 明确表示,只有在 lastmod 持续准确且可被页面变化验证时才会使用它。最省事的错误做法是每次请求 Sitemap 都写当前时间;短期看起来“很新”,长期会让信号失去可信度。

可见页面也要表达同一事实。发布日期使用语义化 <time datetime="…">;只有修改日期跨越发布日期且确实对应内容改动时,再显示“更新于”。这样搜索引擎、读者和内部审计看到的是同一条时间线。
四、组织署名也需要可消歧
没有公开个人资料时,不应该为了 E-E-A-T 或 Schema 完整度虚构作者姓名、头像、职务和个人主页。Article 的 author 可以是 Person,也可以是 Organization。
组织作者至少要回答三件事:
- 可见署名是什么,例如“妙蛙 GEO 研究团队”;
- 哪个公开页面解释这支团队的编辑与复核责任;
- 它与出版公司的关系是什么。
本站采用组织署名,author.url 指向编辑政策,parentOrganization 指向稳定的公司实体 ID;publisher 则单独指向天津思必得科技有限公司,并使用公开 Logo。这样不会把品牌、研究团队和法定主体硬合并成一个名字,也不会凭空造一个“专家作者”。
完整的作者数据仍必须与页面可见署名一致。机器数据里出现一个读者看不到的人名,违反的不只是内容策略,也违反结构化数据应代表可见内容的基本规则。
五、面包屑要同时服务读者与机器
BreadcrumbList 表达的是页面在站点层级里的位置。技术文章最简单的层级通常是:
首页 → 技术文章 → 当前文章页面顶部应有真实可点击的“首页”和“技术文章”链接;JSON-LD 再用相同名称和 URL 输出三个 ListItem。面包屑不是把关键词重复三遍的地方,也不该指向不存在的伪栏目。
可见面包屑与 JSON-LD 同时存在有两个好处:读者能回到上级,爬虫也拿到稳定层级。至于搜索结果最终是否展示面包屑,仍由搜索系统决定。
六、一份最小而完整的 TechArticle 图
下面是结构关系,不是可以无脑复制的字段清单:
{
"@type": "TechArticle",
"@id": "文章URL#article",
"headline": "页面可见标题",
"datePublished": "首次发布时间",
"dateModified": "最后实质修改时间",
"image": ["正文真实可见的代表图"],
"author": { "@type": "Organization", "url": "编辑政策页" },
"publisher": { "@id": "全站稳定的公司实体ID" },
"mainEntityOfPage": { "@id": "文章URL" },
"isPartOf": { "@id": "全站稳定的网站实体ID" }
}同页再输出 BreadcrumbList。若文章没有真实代表图,就不应该把 Logo 冒充代表图;若没有证据支持修改日期,就保留发布日期;若没有个人作者,就使用真实组织。完整性必须服从真实性。
《Schema 结构化数据在 GEO 里还有用吗?2026 年的实测结论》讨论 Schema 的作用边界;本文补的是工程层:怎样避免机器数据与页面事实分叉。
七、测试什么,才算真的上线
源码里出现 TechArticle 字符串不能证明输出正确。至少要对渲染 HTML 检查:
- 页面只有一个 H1,canonical 指向自身;
- 首图在正文可见,图片 URL 返回 200;
og:image、Twitter image 和 TechArticle image 指向同一张代表图;datePublished与页面发布日期一致;dateModified与数据库真实更新时间一致,跨日时页面可见;- BreadcrumbList 的名称和 URL 与可见面包屑一致;
- JSON-LD 可以解析,不含原始 citation 占位标签;
- 没有虚构评分、作者或效果数字。
这套测试只能证明发布合约成立。它不能证明搜索引擎已经重新抓取,也不能证明页面会获得富结果或 AI 引用。后续发现与处理要交给《一篇技术博客怎样被发现:Sitemap、RSS、IndexNow 与主题内链的四路发布链》里的分层验证。
边界声明
- TechArticle、BreadcrumbList 和 Open Graph 用于描述页面与分享预览,不是生成式 AI 排名保证。
- Google 的 Article 属性多为建议项;字段合法也不保证富结果展示。
- 本文的代码结构来自妙蛙 GEO 当前文章系统实践,不代表所有 CMS 必须使用相同正则或数据模型。
- 日期只在真实内容变化时更新;本文不建议用自动刷新制造新鲜度。
本文事实资料来自 Google Search Central Article 与结构化数据通用指南、Google Sitemap 指南,以及 Schema.org TechArticle 与 BreadcrumbList 规范。实现案例来自妙蛙 GEO 当前文章系统。
本文由妙蛙 GEO 研究团队撰写,使用 AI 辅助进行资料整理与语言校对,文中事实、来源和结论均经人工复核。
