为 WooCommerce 即时更新 WhatsApp 图片
为 WooCommerce 即时更新 WhatsApp 图片,意味着在您保存商品的那一刻,正确的卡片就已经准备就绪——而不是让 WhatsApp 按命令重新读取链接。没有人能让 WhatsApp 重新读取链接:它会在接收方的应用中缓存预览,并且不提供刷新 API。您能控制的是商店端的一切,而这足以让下一个分享该链接的人看到当前的商品、价格和图片。
简答
WhatsApp 预览中有两个时钟,其中只有一个是你能掌控的。
| 时钟 | 由谁掌控 | 能否即时生效? |
|---|---|---|
你的页面所提供的 og:image |
你(商店) | 可以 —— 这正是需要修复的部分 |
| WhatsApp 读取页面并缓存所读内容 | WhatsApp,按收件人分别处理 | 不能 —— 没有 API、没有调试器、没有变通办法 |
任何忽略第二行的“即时更新”说法都是谎言,而任何只修复第一行的产品,只要 WhatsApp 再次查看,仍然会显示正确的图片。这就是全部要点:让商店侧可证明地正确,然后不要再指望 WhatsApp 配合。
为什么你的更新没有显示出来
从“我改了价格”到“预览变了”之间,隔着四个独立的缓存。商家几乎总是怪错了对象。
| # | 缓存 | 以什么为键 | 实际清除它的方式 |
|---|---|---|---|
| 1 | 你店铺的页面缓存 / CDN | 页面 URL | 清除页面缓存 |
| 2 | WhatsApp 的链接预览缓存 | 人们分享的链接 | 无——它会按 WhatsApp 自己的时间表过期 |
| 3 | WhatsApp 保存的图片字节副本 | 图片 URL | 一个新的图片 URL |
| 4 | 你的图片 CDN / 渲染缓存 | 图片 URL | 一个新的图片 URL,或清除它 |
第 1 行是人们最容易忽略的。缓存的 HTML 页面里仍然包含旧的 og:image URL,所以即使卡片重建得完美无缺,也永远不会被发现。请先清除页面缓存,然后再看其余的。
第 3 行和第 4 行正是为什么给图片 URL 追加版本号是唯一可靠的缓存清除手段——新的图片 URL 会在所有地方同时造成缓存未命中。
WooCommerce 部分:您的标签不应过期
在 WooCommerce 上,标签问题通常属于以下两种情况之一,且都不是 WhatsApp 的过错:
- 根本没有
og:image。 WordPress 和 WooCommerce 不会为product、product_cat或商店页面输出任何标签。您的 SEO 插件会提供一个——而对于产品,它会取用静态特色图片。 - 标签存在,但指向一个固定文件。 静态图片 URL 无法随价格变化而改变。编辑后的每次分享都会重新缓存同一张过期的图片。
FastOG 走的是另一条路。封面是一个签名 URL,其查询参数包含生成它时所用的值,这些值在每次请求时从实时目录中读取:产品名称、当前价格(get_price()——折扣产品为促销价)、划线“原价”、促销徽章、评分、库存和产品照片。
这带来一个值得明确说明的后果:价格变化就是 URL 变化。 旧 URL 不再描述该产品,因此 CDN 没有过期内容可供提供,下一次获取时会重新渲染。无需缓存清除技巧,也无需“我是否已清除缓存”的检查清单。
当您在商品上点击保存时会发生什么
对于 Facebook——唯一允许任何人主动请求刷新的平台——FastOG 会替您完成请求:
- WooCommerce 触发其原生的
product.updated/product.createdwebhook(permalink位于 payload 中)。 - FastOG 刷新该店铺的目录记录,以便下一次封面图基于最新数据绘制。
- 系统会为该商品的页面 URL 排队一个
RefreshMetaPreview任务。该任务是排队执行而非内联执行——全目录同步不能为每个条目额外增加一次对 Meta 的阻塞调用——并且会进行去重,因此反复重新保存同一商品不会消耗 Meta 的速率限制。 - 该任务使用应用访问令牌调用 Meta 的抓取端点,Meta 会替换该页面预览的缓存副本。
这是有意设计为尽力而为的。如果 Meta 响应缓慢、拒绝请求或触发速率限制,同步仍会成功:您页面上的标签已经正确,唯一的代价是 Meta 会按其自身的时间表刷新,而不是立即刷新。
它不会刷新 WhatsApp、LinkedIn 或 X,因为这些平台都不提供用于刷新任何内容的 API。这不是 FastOG 的限制——而是对端根本没有这样的端点。
按正确顺序排查
当预览不更新时,请按以下列表逐项排查,而不是靠猜测:
# 1. Does the page still serve the OLD tag? (page cache — cache row 1)
curl -s https://your-store.com/product/example | grep -i 'og:image'
# 2. Is that image URL reachable without credentials? (cache row 3)
curl -I "https://...the-og-image-url-from-step-1..."
# 3. Did the image URL change after the edit? Compare with the URL from before.
如果第 1 步仍然显示编辑前的 URL,那么下游的任何操作都无济于事——请清除页面缓存。如果第 1 步显示的是新 URL,而第 2 步返回带有 image/png 的 200 OK,则说明商店侧是正确的,你面对的是缓存行 2,也就是 WhatsApp 的时钟。
想从外部查看全部四行?请将产品 URL 粘贴到 See Your Links The Way Buyers Do ——它会像爬虫一样抓取页面,读取实时标签,并按 WhatsApp、X 和 Messenger 的展示方式渲染结果,同时展示基于相同产品数据构建的 FastOG 封面。无需注册。
缓存清除插件或 ?v=2 是否有帮助?
它们在一个很窄的范围内有帮助,而且代价是真实存在的。
预览是针对人们分享的链接进行缓存的。一个从未被分享过的 URL 没有缓存预览——这就是为什么附加一个不断变化的查询字符串(?v=2)是如此常见的技巧。它确实有效,但代价是:分享的链接不再是你的规范产品 URL,搜索引擎会看到第二个地址,分析数据也会被拆分。
FastOG 在低一层应用了同样的机制,而在这一层它是免费的。页面 URL 保持规范;只有图片 URL 随内容变化。因此旧的封面不会被再次提供,而你分享的链接仍然是你希望被索引的产品页面。
无人能修复的问题,以及我们为何如实相告
- WhatsApp 会在收件人的应用中缓存预览。没有任何 API、调试器或工具——包括我们的工具——能够触及它。
- LinkedIn 和 X 同样没有公开文档化的程序化失效 API。它们的爬虫会按各自的计划重新读取;请不要将第三方的时机估计视为平台保证。
- Facebook 是例外,也是 FastOG 唯一会为您主动 ping 的平台。相关机制请参阅强制刷新 Facebook Open Graph 缓存。
如果某家厂商告诉您它能刷新 WhatsApp,那它实际上是在描述 Facebook 的行为,并指望您不去核实。我们更愿意交给您一份准确的地图。
常见问题
我能强制 WhatsApp 立即更新链接预览吗?
不能。WhatsApp 没有提供刷新端点或调试工具,缓存的预览保存在收件人的应用中。您只能确保正确的图片已准备好,等待下一次读取。
WhatsApp 会保留链接预览多长时间?
没有公开的数字,也无法查询——它按收件人、按设备各自独立。请将其视为“直到 WhatsApp 另行决定为止”,转而优化您这一侧的存储。
为什么在我这里更新了,但在客户那里没有?
因为您测试时分享的是一个从未从您设备上分享过的链接,或者您把它发送到了一个全新的聊天中。您的客户看到的是缓存的预览。他们的预览和您的预览是相互独立的。
更改商品 URL 会强制更新吗?
一个从未被分享过的 URL 没有缓存预览,所以会——代价是同一商品多了一个地址。更改图片 URL 可以获得同样的效果,而且无需改动您的永久链接,这正是 FastOG 的做法。
我需要插件吗,还是可以自己编辑主题?
在主题中放置一个静态的 og:image 远胜于什么都没有,而且它是免费的。它做不到的是:在不逐个商品手工制作图片的情况下让每个商品各不相同——或者跟踪价格变化。到了这个阶段,动态封面就物有所值了。
我的网站不在 FastOG 上。这些内容还有帮助吗?
有。四个缓存、检查顺序以及平台限制描述的是各平台的行为方式,而不是 FastOG 的行为方式。请用 curl 和调试工具逐项排查这份清单。
有免费方案吗?
有。免费的 Community 层级涵盖最多 100 个项目,覆盖商品、分类、店铺和博客文章页面,包含五个基础模板以及 Black Friday 和 Seasonal Offer 商品模板。其封面干净整洁——任何方案都不带水印,Community 也不例外。Community 在共享的 Community 服务器上渲染,受店铺/IP 速率限制约束,而非受品牌标识约束。付费方案使用独立于 Community 的专用服务器,提高项目配额,并解锁更多模板和功能(Starter 起提供评分徽章,Pro 起提供 metafield 映射,Scale 起提供作用域规则和优先渲染)。付费方案还包含 14 天试用,无需信用卡。