2026 Open Graph 优化清单:发版前后与季度工程 + OGKit 用法
你不需要再读一篇「og:title 是什么」的科普。你需要一页能打印、能勾选、能在发版群里直接丢给同事的清单——不必每次重新翻完整套系列。
本文是系列收束:三份清单(发布前 15 分钟、发版后 15 分钟 rescrape、季度工程),一份 OGKit 能力对照表,以及 01–11 索引。某项看不懂就点进深文或规则页,别在群聊里现场发明规范。
诚实边界(与产品文案一致):第三方聚合预览只是近似。只有各平台官方 debugger 能清掉该平台自己的缓存。
怎么用这一页
- 发版时打印或常开一页标签,逐项勾选;延期的写在旁边。
- 优先修模板(布局、CMS 默认值、SSR 壳),而不是只救一个英雄 URL。
- 改了标签、图、路由或 bot 规则后,重跑对应切片——不要只在大改版时才想起来。
自我证明:本篇的分享卡与系列其它文章走同一套博客管道生成。若你把本页 URL 丢进扫描器或官方 debugger 仍是错卡,这份清单先没过自己那关。
1. 发布前 15 分钟
在接近生产形态的 URL 上做(HTTPS、CDN、bot 可达与生产一致的 staging),不要只在外壳不同的 localhost 上打勾。
标签(最小正确集)
- 原始 HTML 在任何客户端 JS 之前已有
og:title、og:type、og:url、og:image
→ 必填 meta · og-title-missing · og-tags-require-javascript -
og:description与og:site_name是有意写的文案,不是 CMS 空占位
→ og-description-missing · og-site-name-missing -
og:url为绝对 HTTPS,且与rel=canonical身份一致(不夹带多余追踪参数)
→ og-url-missing · og-url-canonical-mismatch - Twitter / X:
twitter:card已写(要大图时用summary_large_image)
→ twitter-card-missing - 主题 + 插件 + 框架没有对同一 key 写出互相打架的重复 meta
→ meta-tag-conflicting-duplicates
图片
-
og:image是绝对 HTTPS,爬虫能 200 拿到,不是登录墙后面的图
→ og-image-missing · og-image-not-https · 图片工程 - 跟随重定向后的最终体积落在你在意的平台预算内(WhatsApp 一类常是悬崖)
→ og-image-bytes-exceeds-platform-budget · og-image-redirects - Content-Type 与文件一致;像素尺寸撑得起大卡布局
→ og-image-content-type-mismatch · og-image-dimensions-too-small - 安全裁切:关键文案不要只贴在平台会裁掉的边缘
→ og-image-aspect-ratio-crop-risk · 平台差异
平台与爬虫
- 按本次上线真正吃流量的平台抽检(不必每次八个全跑)
→ 平台档案 · 卡片差异 - 公网 URL 上社交 bot UA 不被 robots / WAF 挡掉
→ robots-blocks-social-crawlers · 爬虫 UA - 若按 UA 分叉 HTML,人与机器人仍共享卡片意图(别把「不对 bot 返回」当安全措施)
→ ua-content-diverged
SPA / SSR
私有 / 预发
- localhost / VPN / 登录墙后的 staging 用本地路径验收(扩展或 fixture),不要把 cookie 贴给公网检测站
→ localhost / staging
公网快检: 把 URL 丢进首页扫描。你要的是可执行的规则结论,不是一张「看起来还行」的模拟卡。
2. 发版后 15 分钟(rescrape)
新 HTML 上线 ≠ 各平台忘记了旧卡片。
- 用 View Source 或带社交 bot UA 的
curl -A确认生产 HTML 已是新标签与新图 URL
→ 缓存与 rescrape - 本次在意的每个平台,走官方 debugger / Post Inspector / 刷新流程——第三方预览不够
→ 重新抓取助手(按 URL 列官方入口) - 图片策略:要么换新路径(缓存穿透),要么接受必须对已缓存的网络逐个 rescrape
- 官方刷新后再在 Slack / 聊天 / LinkedIn 信息流里点一次真展开——近似预览不会告诉你缓存状态
- rescrape 后仍错:先别猜 TTL,回头查重定向、最终图字节、bot 看到的 HTML
→ 空白卡模式
没有「一键清全世界」的按钮。把 rescrape 写进发版清单,像对待 DNS TTL 一样预留时间。
3. 季度工程清单
靠发版英雄撑不住。把无聊门禁放进日历。
CI 与基线
- 关键模板(首页、定价、文档枢纽、博客布局)在每个 PR 跑 OG 检查
→ CI 防回归 - 检查使用稳定规则 id,失败时非零退出码(当 ESLint 用,不当截图墙)
- 有 baseline / 豁免列表承接已知债——且随时间变短,而不是无限变长
- HTML fixture 或公网金丝雀覆盖「meta 只在 JS 后出现」「相对路径 og:image」,防止重构静默复现
示意(接到你们真实 CI;包名与参数以仓库为准,见 CLI):
# 公网 URL 或构建产物 HTML — 规则失败时非零退出
npx --yes @og-kit/cli check https://www.example.com/
图片预算
- 默认 OG 资产管线有团队约定的体积上限(写进文档;别只靠传说数字)
→ 图片工程 - 动态出图路由(Satori /
opengraph-image/ 模板 API)测过字体 subset 与超时
→ 动态 OG 图 - CDN / 签名 URL 过期时间长过「分享高峰后爬虫可能重试多久」
平台与 bot 矩阵
- 重核你依赖的 平台档案 数字(标题长度、图槽)——产品 UI 会变,过时假设要标出来
- 若加了边缘鉴权、bot 管理或新 CDN,重采样 bot UA 行为
→ 爬虫 UA - 工具盘点:官方 debugger 仍在书签;预览站只做布局 QA
→ 工具选型
所有权
- 「分享卡坏了」有明确 triage / on-call 归属——不是「最后改 CMS 的人」
- 多站点、流程型审计:问题超出缺一个 meta 时再走 consulting
4. OGKit 能力对照
选能看见该 URL 的最薄一层。
| 任务 | 用什么 | 替代不了什么 |
|---|---|---|
| 给公网 URL 按规则打分 | 首页扫描 + 规则文档 | 官方缓存失效 |
| 搞懂某条规则为何触发 | 规则参考(稳定 id) | 平台产品政策本身 |
| 对比平台字段 / 裁切 | 平台档案 + 系列 03 | 官方 UI 像素级还原 |
| 强制官方 rescrape | 重新抓取助手 → 各平台工具 | 第三方「刷新」按钮 |
| localhost / 私有 HTML | 浏览器扩展(页面 ↔ 扩展桥) | 把 cookie 贴进 SaaS 检测站 |
| CI / 文件系统 / 构建产物 | @og-kit/cli check(需要时再包一层 Action) |
只在 main 上人手 DevTools |
| 多站点 / 重流程审计 | Consulting | 单靠扫描器 |
系列一句话定位:OGKit 是 Open Graph 领域的 ESLint + Lighthouse——像爬虫一样抓取,用命名规则打分,分享卡会坏时让构建失败。它不替代 Meta、LinkedIn 自己的 debugger。
5. 系列索引(01–11)
| # | 主题 | 链接 |
|---|---|---|
| 01 | Open Graph 到底在解决什么 | what-open-graph-really-solves |
| 02 | 必填 OG / Twitter meta | required-open-graph-meta-tags |
| 03 | 平台卡片差异 | social-platforms-og-card-differences |
| 04 | 图片工程(尺寸 / 体积 / 格式 / 重定向) | open-graph-image-engineering |
| 05 | 缓存、TTL 与 rescrape | open-graph-cache-and-rescrape |
| 06 | SPA 爬虫、SSR、预渲染 | spa-open-graph-ssr-prerender |
| 07 | 动态 OG 图(Next / Satori) | dynamic-og-image-next-satori |
| 08 | 爬虫 UA 与内容分叉 | crawler-user-agents-open-graph |
| 09 | CI 防回归门禁 | open-graph-ci-lint-regression |
| 10 | localhost / staging 预览死角 | preview-open-graph-localhost-staging |
| 11 | 工具选型(debugger / 预览站 / 生成器) | open-graph-tools-comparison |
| — | 加餐:空白卡失败模式 | why-your-open-graph-card-is-blank |
| 12 | 本清单 | open-graph-checklist-ogkit |
先跑一条命令
公网 URL,除 npx 外无需安装:
npx --yes @og-kit/cli check https://www.example.com/
或把同一 URL 贴进网页扫描。报告干净、官方 debugger 已是新图时,这一轮就结束——直到下次改模板;所以季度与 CI 两行必须留下。