Facebook喜欢 - 显示缓存版本og:图像,刷新或重新索引的方式?

FHM*_*FHM 53 facebook facebook-like facebook-opengraph

有像Facebook和缓存og:图像的问题.

长话短说:Facebook已经缓存了我们喜欢的图像的旧版本.元内容网址无法更改.有什么我可以做的刷新吗?

长话:我正在研究的网站上有一个og:meta图像,Facebook在页面被喜欢时使用.此元标记在整个网站的所有网页上使用相同的图片网址.图像只是网站的品牌形象.

问题是该网站最近更新了他们的品牌,我们无法让Facebook像图像更新.当用户点击类似链接时,生成的Facebook帖子仍会显示旧的品牌形象.

元标记类似于:

<meta property="og:image" content="http://[domain].com/images/bookmark/apple-touch-icon.png"/>
Run Code Online (Sandbox Code Playgroud)

每当一个人进入Facebook时,图像的URL就会变为缓存的Facebook URL,类似于:

http://external.ak.fbcdn.net/safe_image.php?d=AQDajxm-qgVNdfEL&w=90&h=90&url=http%3A%2F%2F[domain].com%2Fimages%2Fbookmark%2Fapple-touch-icon.png
Run Code Online (Sandbox Code Playgroud)

此URL显示网站品牌的旧版本.它已经过了一个多星期,还没有更新.

有没有办法强迫Facebook重新索引图像/清除它的缓存?或者,Facebook会定期自动执行此操作吗?我找不到任何相关的信息.

我知道更改元标记中的URL可以解决问题,但元标记是由跨多个网站使用的代码生成的,无法更改.我也尝试过其他人建议的delinter工具.没运气.

gen*_*sis 75

将您的URL插入其linter,它应重新加载其缓存

  • 试过已经,没有用.生成的调试器页面上的og:image仍显示缓存版本.我猜og:image是独立于输入调试器的URL而缓存的. (16认同)
  • 这很有效,但我首先必须更改og:image URL(在服务器和标签中)以使其获取更改.然后,您可以将其更改回原始URL,然后它将再次获取更改(如果您遇到OP无法永久更改它的问题).另外,我不认为这个问题应该被关闭; 这是一个与链接问题不同的问题. (10认同)
  • 要更改 og:image URL,只需在图像路径中添加“?v=1”。无需重命名文件。 (2认同)

Ara*_*ran 21

您可以使用Facebook的对象调试器,它允许您输入页面URL,然后在下一页上,您可以在"获取新的刮擦信息"请求中重新提交它.这将清除Facebook给定URL的缓存 - 并不是说​​它可能需要一些时间来传播所有缓存节点.

Facebook的对象调试器可以在这里找到:https: //developers.facebook.com/tools/debug/

我们最近发现Facebook使用针对相对URL的查询字符串来缓存URL,并且忽略了查询字符串,这弄乱了我们纯粹基于查询字符串提供的一些动态图像.

事实证明,您可以指定上次修改的时间戳(采用unix时间戳格式),以帮助确保FB抓取您的网站时,始终获得正确的图像.

这可以通过包含以下OG元标记来完成:

对于动态站点,您需要生成内容值 - 使用PHP可以插入当前的unix时间戳,如下所示:

<meta property="og:updated_time" content="<?=time()?>" />
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 最佳答案和0票?让我们改变这一点 (2认同)
  • 如果 og:image url 没有改变,它会使用旧的(缓存的)版本吗? (2认同)

Mat*_*yr' 8

我认为可能的解决方案......如果你在URL的末尾添加一个随机字符串怎么办?

喜欢www.server.com/something.php?v=<?php echo rand() ?>www.server.com/something.jpg?v=<?php echo rand() ?>

我想facebook cahce对象取决于网址...随机改变它...可以帮助.

  • 这很适合我!我只是做了.png =?v = 2 (3认同)

Chr*_*kas 8

这篇文章发布 7 年后,这仍然是一个问题,但它不是 Facebook 的缓存:这是人为错误(请允许我详细说明)

OG:TYPE 影响您的图像抓取:

  1. https://ogp.me/#type_article与 https://ogp.me/#type_website不同

请注意 og:type=website 将导致该 url 的任何 /sub-pages/ 成为“规范”。这意味着无论您做什么,都很难使用抓取工具更新图像。

考虑这个“假设和常见错误”

- <meta property="og:type" content="website" />=> https://www.example.org (父)
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/child -2/
- 因此:/sub-page/并将/child-2/继承og:image父级的

那些不是“所有网站”,1是网站,其他是文章。

如果你这样做,Facebook 会认为所有这些都是规范的,并且会将第一个 og:image 放入所有这些中。(尝试一下,您就会发现) - 如果您将 og:url 设置为您的根域或父域,您就已经告诉 facebook 它们都是规范的。(这是有充分理由的,但这是题外话)

考虑这个解决方案(这是大多数人“真正想要的”)

- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/child-2/

如果你现在就这样做,Facebook 会给你带来更少的抓取新图片的问题。

最后,是的,缓存破坏者、随机变量、更改网址和建议都可以工作,但如果未正确指定,它们将看起来像“间歇性巫毒” 。og:type

PS:请记住,即使您“认为”可以看到最新版本,CDN 或服务器端缓存也将为 Facebook 的抓取工具提供服务。(我不会花任何时间在这上面,只是指出如果不仔细检查的话会浪费你大量的时间。)