Facebook调试器第一次无法抓取开放图谱图片

6
我最近几个月一直面临这个问题。我运行着一个WordPress网站,并安装了Yoast Seo插件。我也启用了该插件中的Facebook开放图谱元标记。现在,每当我尝试在我的Facebook粉丝页面上直接分享任何帖子的URL时,第一次尝试,Facebook会抓取帖子的描述和标题,但不是“og:image”。我必须刷新页面,当我进行第二次尝试时,它才会抓取图片或者个人需要前往Facebook调试器工具 https://developers.facebook.com/tools/debug/ 并调试我的帖子URL,然后再分享到我的粉丝页面上。我也尝试手动放置Facebook开放图谱元标记,以及从其他网站复制的内容。虽然这样做不会出现问题,但我仍然面临同样的问题。我还想在这里提到,我曾经使用过Cloudfare DNS服务器。但我已将DNS服务器直接更改为我的主要Web服务器DNS服务器,但问题仍然存在。
我的一个朋友在他的网站上也遇到了同样的问题。看起来我们漏掉了什么或者我们需要添加任何类型的A或CNAME记录?请帮助我解决这个问题。
谢谢
4个回答

6

以下是来自 Facebook 的问题的答案:

'og:image' 属性提供的图片尚未可用,因为新图片正在异步处理中。为确保新 URL 的共享包括图像,请使用 'og:image:width' 和 'og:image:height' 标签指定图像的尺寸。

因此,首次运行时,Facebook 无法确定图片的尺寸,因此不会显示图片;第二次运行时,图片已经被缓存,因此可以立即检查 'og:image' 属性提供的图片尺寸。

为了确保 Facebook 在第一次运行时显示图片,需要使用 og:image:width 和 og:image:height 属性。


我已经定义了og:image:height和og:image:width标签,但是Facebook仍然出现了相同的问题。 - undefined
可能是你的代码有其他问题,也许你应该检查一下是否允许机器人访问,如果不允许的话,Facebook就无法读取你的图片。另外,请检查一下图片是否符合Facebook的最小高度和宽度要求。 - undefined

2

3
Facebook的建议不可能是认真的事情。我正在一个每天获得150-300篇新文章的项目上工作。想象一下每天手动爬取150-300个URL...... - low_rents

1
我解决了一个类似的问题。我也在使用WordPress和Cloudflare。
我安装了Facebook Open Graph, Google+ and Twitter Card Tags (1.5.2)插件来为我的帖子添加OG标签。我使用了插件更新Facebook Open Graph Tags缓存选项来预热Facebook。
但是,即使是从已经预热的缓存中,Facebook仍然无法从OG标签中抓取图像。(在使用Facebook Debugger工具进行后续测试时,Facebook甚至根本没有抓取OG标签。使用“查看我们的抓取器为您的URL看到的内容”工具时,Facebook只抓取了一些标题中的几行而不是整个标题html)。
出于某种我不太理解的原因,禁用Cloudflare Railgun对我解决了这个问题。
Railgun加速了每个CloudFlare数据中心与源服务器之间的连接,以便无法从CloudFlare缓存中提供服务的请求仍然可以非常快地提供服务。
您可以在您域名的CloudFlare设置页面上找到此设置。
希望这有所帮助。

这指引我朝着正确的方向前进,我去了我的网络主机并使用了他们的缓存清除工具,然后在 FB 调试器上更新了所有内容。 - siaeva

0
如果您正在使用任何类型的预渲染器,Facebook 将不喜欢它。
因此,只需在第 20 行删除此行 facebookexternalhit 即可解决问题。
这是官方文件。

https://gist.github.com/thoop/8165802


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接