Slack 链接预览无法正常工作或未更新

Slack 通过机器人读取 oEmbed、Open Graph 和 Twitter Card 标签来展开链接预览。抓取结果会在 Slack 中缓存约 30 分钟。

最后更新

快速修复


  1. 使用元标签检查工具检查该页面。

  2. 确保这些标签位于 Slackbot 下载的 HTML 中,且靠近 head 的顶部。

  3. 允许 Slackbot-LinkExpanding 通过您的防火墙或机器人防护系统。

  4. 等待大约 30 分钟,或者在发布 URL 时加上 ?v=2。


为什么 Slack 预览缺失或内容陈旧

  • Slack 缓存了上一次的结果。响应结果会在全局缓存约 30 分钟。

  • Slackbot 仅获取页面的部分内容。它使用 HTTP Range 请求头尽可能少地抓取内容,因此页面靠后位置的标签可能会被遗漏。

  • Bot 防护阻止了抓取。Slack 使用 User-Agent Slackbot-LinkExpanding 1.0 进行抓取;如果遇到质询验证页面或 403 错误,则意味着无法获取标签。

  • 图片未通过 Slack 的检查。Slack 会下载图片进行检查,因此失效或受阻的图片 URL 会导致图片无法显示。

  • 链接缺少协议。只有当 URL 包含 http 或 https 且为完整格式时,链接才会展开预览。

如何解决

  1. 在 Meta 标签检查器中打开页面以查看 Open Graph 和 Twitter 标签。

  2. 将 og:title、og:description 和 og:image 尽早放置在 head 标签中。

  3. 在您的 CDN 或防火墙规则中允许 Slackbot-LinkExpanding User-Agent。

  4. 检查图片 URL 是否可以在无需 Cookie 或登录的情况下加载。

  5. 等待 30 分钟后重新发送链接,或者附加 ?v=2 立即进行测试。

Slack 读取的标签

  • oEmbed(当页面链接到 oEmbed 端点时)

  • og:title、og:description、og:image

  • twitter:title、twitter:description、twitter:image。使用 Twitter 卡片验证器 进行检查

图片尺寸规则

未经验证:Slack 未公开预览图片的尺寸或文件大小限制。1200 x 630 像素的 JPG 或 PNG 格式图片适用于 Slack 以及此处介绍的所有其他平台。

如何强制刷新

Slack 没有刷新工具。请等待约 30 分钟,或者附带查询字符串分享该 URL。已发送的消息将保留其原有的预览卡片。刷新工具显示了每个应用的操作步骤。

Slack 在展开链接预览时不会遵循 robots.txt,因此 Disallow 规则既不能阻止展开,也无法用来解释预览缺失的原因。

来源

常见问题

Slack 会将链接预览缓存多长时间?

根据 Slack 的 robots 页面,在整个 Slack 全局范围内大约需要 30 分钟。

robots.txt 会阻止 Slack 链接预览(unfurl)吗?

不。Slack 表示它在展开链接时不会遵循 robots.txt 规则,因为它是代表用户进行操作的。

为什么 Slack 只显示标题而不显示图片?

Slack 会下载该图片进行检查。如果该请求失败或被拦截,展开的链接预览将不会显示该图片。

检查您的页面,然后刷新预览

将您的网址粘贴到免费检查器中,查看各个应用程序读取的具体标签。标签确认无误后,使用刷新工具清除旧的预览。