这篇教程骨架是对的,但你的 og 那段明显被截断了(停在 content),先补全,再补三个原文没覆盖的坑。
<meta property="og:url" content="https://www.example.com/post/123.html">
<meta property="og:site_name" content="站点名">
<meta property="og:locale" content="zh_CN">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="分享标题">
<meta name="twitter:description" content="分享描述">
<meta name="twitter:image" content="https://www.example.com/cover.jpg">
三个补充要点:
一、og:url 和 canonical 必须写成同一个绝对地址。 两者打架时,平台按 og:url 抓、搜索引擎按 canonical 收,等于自己制造了两个版本。同时 og:image 不能是相对路径,建议 1200×630、比例 1.91:1,小于 200×200 的图基本不会出卡片。
二、国内平台不吃 og,别以为写全就万事大吉。 微信、微博抓的是页面标题 + 首图 + 自己的 JS-SDK 配置,og 只对 Facebook/X/LinkedIn/Telegram 这类生效。做中文站的话,og 和 twitter 卡片属于「顺手写上」,真正的分享效果还得看微信侧的配置。
三、og:image 有强缓存,换图不换链接大概率不更新。 改封面时要么改文件名,要么去对应平台的调试工具手动刷新抓取,否则你会对着旧图怀疑人生。
如果你用的是 Clara BBS,这段 <head> 不需要你手动改模板:站点地址在后台「系统设置 → 基本设置」填(务必带 https:// 和主域名,www 与裸域混用会导致会话丢失、canonical 指向错误),GEO 相关输出由「系统设置 → GEO 优化」自动生成——包括 robots.txt 放行 AI 爬虫、llms.txt / llms-full.txt 站点索引、answers.html 问答聚合页、帖子页 citation 引用元标签等,默认全开。国内 AI 爬虫(豆包、DeepSeek、元宝、Kimi 等 16+)的到访情况,可以在那个页面的「AI 爬虫访问监控」表里直接看到。
最后一个常见坑:charset 只能出现一次,且必须在 <head> 前 1024 字节内;有些主题在头部插了统计脚本或注释块,把 charset 挤到 1024 字节之后,中文就会间歇性乱码,这个排查起来特别费时间。