微信不显示og:image是因为其X5内核完全忽略Open Graph协议,仅提取meta name="description"和DOM中第一个作为封面图,且要求该图片为HTTPS绝对路径、≥300×300、无lazyload或隐藏样式。

og:image 在微信里不显示?不是标签没加,而是微信根本不用它。 微信 iOS 和安卓客户端对 Open Graph 协议支持极弱,og:image 对它完全无效——它优先读 meta name="description" 和页面第一个 <img alt="HTML中Meta标签Opengraph协议对多平台分享预览的适配方案" > 标签。想让微信分享图可控,得绕开 og:image,直击它的实际抓取逻辑。
微信为什么无视 og:image
微信内置浏览器(X5 内核)不解析 og:image,也不走标准 Open Graph 流程。它只做三件事:提取 meta name="description" 作为描述;找 DOM 中第一个 <img src="https://..." alt="HTML中Meta标签Opengraph协议对多平台分享预览的适配方案" > 作为封面图;若在公众号文章页,才认 mp:wx:preview_image(仅限公众号后台配置)。其他所有 og:* 字段,包括 og:title,微信都可能忽略或 fallback 到 <title></title>。
- 静态页想让微信显示指定图,最稳做法是:确保首张
<img alt="HTML中Meta标签Opengraph协议对多平台分享预览的适配方案" >的src是 HTTPS 绝对路径、可公开访问、尺寸 ≥ 300×300,且没加loading="lazy"或 CSSdisplay: none - 如果用了 CDN,确认响应头含
Access-Control-Allow-Origin: *,否则安卓微信可能拒绝加载 - 哪怕页面是 HTTPS,
<img src="http://..." alt="HTML中Meta标签Opengraph协议对多平台分享预览的适配方案" >也会白屏——微信 iOS 对 HTTP 协议极其敏感
Twitter 为什么不显示 description
Twitter 完全忽略 og:description,只认 twitter:description。这不是 fallback 关系,而是硬性规则:没写 twitter:description,卡片就等于没描述。而且它必须和 twitter:title、twitter:card 一起出现,缺一不可。
-
twitter:card值只能是summary或summary_large_image;拼错(如Summary_Large_Image或large_summary)会导致整张卡片退化为纯文本链接 -
twitter:description长度建议 ≤ 200 字符,超长会被截断,且不支持换行——所有空格、中文标点都算字符 - 别指望靠
og:description“凑数”,Twitter 爬虫压根不读这个字段
og:url 写错导致卡片反复失效
og:url 不是“看起来像链接”就行,它必须和用户实际分享的 URL 完全一致:协议、大小写、尾部斜杠、查询参数一个都不能多也不能少。Facebook 和 LinkedIn 会严格比对,稍有出入就缓存两份元数据,结果改完标签后新旧卡片混着显示。
立即学习“前端免费学习笔记(深入)”;
- 动态路由页(如
/post/123)务必服务端渲染出真实 URL,别用window.location.href拼接 - 带 UTM 参数的分享链接(如
?utm_source=wechat)不能作为og:url值——应剥离参数,指向规范地址 - 推荐同时加
<link rel="canonical" href="">,且值与og:url完全相同,强化归一性 - 调试时点了 Facebook Sharing Debugger 的
Scrape Again却没更新?大概率是服务器返回了304、302或缓存头干扰了重抓
调试时看不到更新,别刷页面
社交平台缓存卡片元数据长达 24–72 小时,改完 HTML 后刷新浏览器页面毫无意义。验证必须用平台官方工具,并关注原始响应状态。
- Facebook:用 Sharing Debugger 输入真实分享链接,看
Response Code是否为200,Redirect Path是否跳转 - LinkedIn:用 Post Inspector,它会明确标出缺失的
og:title或无效的og:imageHTTP 状态码 - 微信:没有公开调试器,但可在 iOS 微信中长按链接 → “在 Safari 中打开” → 查看源码确认标签存在;或用
opengraph.xyz检测 HTML 结构(不模拟微信抓取) - 所有平台都要求
og:url、og:type、og:image三者同时存在且合法,缺一就会 fallback 到默认抓取逻辑
真正容易被忽略的是:平台爬虫不执行 JS,所以所有 og:* 标签必须在 HTML 初始响应中静态存在;而微信连静态 og:image 都不读——你得给它想要的 <img alt="HTML中Meta标签Opengraph协议对多平台分享预览的适配方案" >,而不是你以为它该读的 og:image。



















