链接分享出去为什么没有封面图?
抓取是平台服务端做的,不执行页面脚本;图必须是绝对地址、尺寸达标、能被公开抓到。
先理解抓取发生在哪一端:是平台的服务端爬虫来读你的页面源码,它不执行 JavaScript。所以用脚本在浏览器里动态写入标签的做法,抓取时看到的往往是空的,卡片就退回默认样式。
再看规范要求。图片地址必须是包含协议与域名的绝对地址,相对路径爬虫无法补全;尺寸上通常建议至少一千二乘六百三十像素、比例约一点九一比一,微信的下限更低但低于六百见方容易被压糊;格式只吃常见位图,动图只取静态帧,矢量与新一代格式多数平台不认;体积过大也会被放弃。
剩下两种是「能写对但抓不到」与「写了但没生效」:前者是防盗链、跨域策略、页面用加密而图片用明文、重定向过长;后者是平台强缓存,必须用官方调试工具强制刷新,否则可能几天后才自然更新。
分享卡片看着像个前端问题,其实它完全发生在服务端:内容由平台的爬虫读取,图片由平台抓取并缓存。理解这一点,排查方向就完全不同了。
所以「本地预览一切正常」并不能说明什么——浏览器能显示的图,爬虫可能因为防盗链、跨域策略或明文传输而拿不到。
这一篇把五类原因、对应的验证动作,以及微信特有的坑排开。
1五类原因与验证动作
按这个顺序查,基本一轮定位。
| 原因 | 典型表现 | 怎么验证 |
|---|---|---|
| 地址不是绝对路径 | 卡片只有文字,没有图 | 看源码里图片地址是否以协议开头 |
| 尺寸或比例不合规 | 有图但被裁掉关键信息,或直接不展示 | 量一下实际宽高与比例 |
| 格式或体积不支持 | 部分平台有图、部分没有 | 确认是常见位图格式且体积不过大 |
| 被拦住抓不到 | 图地址在浏览器能开,爬虫拿不到 | 用爬虫的标识去请求一次,看响应码 |
| 平台缓存旧结果 | 改了没生效,过几天又好了 | 用平台的调试工具强制刷新 |
微信内的浏览器对这套协议解析较弱,常退回到页面里的第一张图片,因此要强控就得补充它自己的私有标签。
2硬性规格
这些数字是各平台文档里反复出现的底线。
| 项目 | 建议值 | 说明 |
|---|---|---|
| 尺寸 | 至少一千二乘六百三十像素 | 比例约一点九一比一 |
| 微信下限 | 不低于三百见方 | 低于六百见方容易模糊 |
| 格式 | 常见位图 | 动图只取静态帧,矢量与新一代格式多数不认 |
| 体积 | 控制在一到五兆以内 | 过大时多数平台直接放弃 |
| 数量 | 只留一张最优的 | 允许写多张,平台取第一张 |
换图时改文件名(带版本号)比覆盖原图更可靠,因为部分平台会按地址去重或长期缓存。
3用户看不到的那些拦路虎
这几种最容易被忽略,因为浏览器里一切正常。
- 防盗链与来源校验
- 图片服务器按来源头或签名放行,爬虫的请求头不同就被拒
- 跨域策略
- 缺少跨域放行头时,某些平台的抓取会失败
- 混合内容
- 页面走加密而图片走明文,现代平台会直接拒绝加载
- 重定向过长
- 抓取方对跳转次数有上限,超过就中止并报错
- 被爬虫规则挡住
- 图片路径恰好落在禁止抓取的规则里
统一的处理方式是把分享图放到稳定路径(例如专门的分享图目录),配好跨域与缓存头,并避免带动态参数。
4动态站点的额外注意
页面多起来之后,这一条最容易漏。
- 每页都要输出自己的标签
- 只配首页会导致内页分享出去全是首页封面
- 在服务端渲染时注入
- 抓取不执行脚本,所以标签必须在返回的源码里
- 地址要与实际页面一致
- 避免被抓取方判定为跳转,从而取到别处的内容
- 改版后回归一次
- 模板层改动最容易把标签弄丢,用调试工具复测几页
一句话总结:抓取在服务端、看的是源码、图要能被公开抓到——按这三条查,八成问题当场定位。
顺着这个问题往下用
全部工具总览 →相关疑问
为什么我在后台改了封面,微信里还是旧的?
平台对这套标签有强缓存。用官方调试工具触发一次重新抓取即可,否则要等缓存自然过期。改文件名比改内容更省事。
用新一代图片格式能更清晰更小,为什么平台不显示?
部分平台尚未支持这类格式,会当作不认识的类型忽略。分享图建议用最通用的位图格式,体积用压缩控制,不要用格式赌兼容性。
需要同时写多套社交平台的标签吗?
基础协议被多数平台识别,但个别平台有自己的扩展。稳妥做法是基础协议写全,再按目标平台补它的私有标签,并用各平台调试工具各验一次。
为什么有些页面有图,有些没有?
多半是模板不一致:内页模板少写了标签,或者内页的图地址是相对路径。逐页抽查源码是最快的定位方式。
继续看:相关问题与资料
全部问题解答 →内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-09。若发现错误,欢迎通过页脚反馈入口告知。
速查在线工具箱