默认的 robots.txt 阻止了 Twitter 卡片图片

默认情况下,robots.txt 文件包含以下条目:

User-agent: *
# ...
Disallow: /u

此配置会阻止 Twitter 卡片中的图片。在 Twitter 验证器 上检查多个论坛的卡片时,无法显示徽标,并出现以下警告:

由 ‘twitter:image’ 元标签指定的图片 URL forum.[…].org/uploads/[…].png 可能受到站点 robots.txt 文件的限制,这将阻止 Twitter 获取该图片。

问题在于路径 /uploads 同样以 u 开头,因此会被 robots.txt 规则匹配。

我知道可以覆盖 robots.txt 文件,但认为修改默认设置会更好。遗憾的是,我对代码的理解尚不足以提交拉取请求(pull request)。

在覆盖时请注意,Twitter 检查 robots.txt 文件的频率低于检查页面实际 HTML 的频率,因此可能需要数小时才能生效。

1 个赞

遇到了同样的问题,并在此发布:https://meta.discourse.org/t/metatag-may-be-restricted-twitter-card-validator/181169

有没有什么快速的解决方法可以尝试?谢谢!

是的,至少这能让 Twitter 卡片正常工作。希望不会产生意外的副作用。

您可以打开“允许在 robots.txt 中索引”设置,然后点击“覆盖 robots.txt"。接着找到 Disallow: /u 这一行,在末尾添加一个斜杠,使其变为 Disallow: /u/。Twitter 需要几个小时才能检测到这一更改。

2 个赞

不确定我链接的帖子为何被删除。我会尝试一下。感谢提示!

2 个赞

看来这曾是一个问题(参见 此讨论),随后又被重新引入。

此提交 中,带斜杠的 robots 规则被移除了,因为当时认为它们不再需要。后来,在 此提交 中,这些规则被重新引入,但末尾缺少了斜杠。

我整理了一个快速但粗糙的拉取请求,旨在修复默认的 robots.txt 文件:FIX: Do not block `uploads` path in robots.txt by ByteHamster · Pull Request #12349 · discourse/discourse · GitHub

1 个赞

你觉得怎么样,@sam

1 个赞

没有 CLA 我确实无法查看该 PR,但将 /u 锚定并改为 /u/ 听起来合理且安全。

2 个赞

抱歉——CLA 现已签署 :slight_smile:

我已经合并了。让我们试试看。

4 个赞