社交平台爬虫不执行js,仅解析服务端html中的og标签;csr项目需ssr/ssg/预渲染;og:image须绝对url、https、正确尺寸与响应头;四核心标签缺一不可;验证需用平台调试工具强制刷新缓存。

为什么分享链接后预览没图/标题错/描述为空
社交平台(微信、Facebook、LinkedIn、Discord)的爬虫只解析服务端返回的原始 HTML 中的 <meta property="og:xxx"> 标签,且**完全不执行 JavaScript**。如果你用 React/Vue 等 CSR 框架,服务端返回的是空壳 HTML(比如只有 <div id="app"></div>),所有 OG 标签靠 JS 动态插入,那爬虫根本看不到。
验证方式很简单:curl -s https://yoursite.com/post/123 | grep 'og:title'。如果命令输出为空或只看到占位符,说明标签没在服务端渲染出来。
- 纯前端项目必须做 SSR、SSG 或预渲染(如
prerender-spa-plugin) - Vercel/Cloudflare Workers 可用边缘函数动态注入,但需确保响应状态码是
200、Content-Type: text/html - Next.js、Nuxt、Astro 等框架默认支持 SSG/SSR,记得启用并检查生成的 HTML 源码
og:image 加了还是显示默认图或报错
og:image 是最常出问题的字段——不是贴个 URL 就完事。平台会主动发起 HTTP 请求去拉取这张图,并校验响应头、尺寸、格式和可访问性。
- URL 必须是**绝对路径**,例如
https://example.com/img/share.jpg;相对路径(/img/xxx.jpg)或协议相对地址(//xxx.jpg)会被直接忽略 - 必须返回
Content-Type: image/jpeg或image/png;WebP 在微信 iOS 和 LinkedIn 旧版中兼容性差,建议不用 - 推荐尺寸 1200×630 像素(宽高比 1.91:1),同时加
<meta property="og:image:width" content="1200">和<meta property="og:image:height" content="630"> - 图片服务器不能返回
403(防盗链拦截)、404或重定向;Nginx/Apache 需确认未屏蔽facebookexternalhit/1.1等 UA - 微信 X5 内核抓图时不带 Referer,若启用了 Referer 防盗链,会直接失败
必须写全的四个核心 OG 标签
缺一不可。少一个,平台就可能退回到“自动抓取第一个 <h1></h1> 或 <img>”的不可控逻辑。
-
og:url:必须与用户实际分享的 URL 完全一致(含协议、大小写、尾部斜杠),否则平台视为不同页面并缓存错误卡片 -
og:title:社交场景专用标题,建议 ≤ 60 字符;不是网站名,而是本页内容的真实概括 -
og:description:一句话钩子式描述,建议 80–155 字符;微信倾向显示前 50–80 字,关键信息前置 -
og:image:HTTPS 绝对 URL,尺寸达标,可公开访问;仅 JPG/PNG,无重定向,无防盗链
补充建议:og:type(填 article 或 website)、og:locale(中文站设 zh_CN)、og:site_name(增强品牌识别)。
怎么验证 og 标签是否生效
不能靠刷新页面看效果——微信、Facebook 等平台缓存卡片元数据长达 24–72 小时。改完 HTML 后必须强制刷新缓存。
- Facebook:用 Sharing Debugger,输入 URL 后点
Scrape Again;重点看Redirect Path和Response Code - LinkedIn:用 Post Inspector,它会明确标出缺失字段或无效图片 HTTP 状态码
- 微信:没有官方调试器,可在 iOS 微信中长按链接 → “在 Safari 中打开” → 查看源码确认标签存在;也可用 opengraph.xyz(仅检测 HTML,不模拟微信抓取)
- 注意:
og:image:secure_url不被任何平台支持;如果用了,必须和og:image指向同一张图,否则部分平台会拒绝加载
真正容易被忽略的点是:图片响应头里不能有 Transfer-Encoding: chunked(QQ 分享会拒收),CDN 必须放行来自 facebook.com、twitter.com 的请求,且图片服务器要返回 Content-Length。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











