每次把新文章貼到 Facebook 时,最让人崩潰的莫過於:明明网站上的图片已经換了,貼出来的预览縮图卻還是那張舊图,甚至是一張完全不相关的图。很多人以为是 Facebook 出問题,其实这背後是一套「缓存(Cache)」机制在作祟。这篇文章就来談談 Facebook 预览縮图是怎麼產生的,以及該如何正确地更新它。

Facebook 预览縮图是怎麼来的?

當你把一个网址貼进 Facebook 的貼文框时,Facebook 的爬蟲(Crawler)会立刻去拜訪那个网頁,並从 HTML 的 <head> 区段中讀取一组稱为 Open Graph(OG) 的 meta 标签。这些标签決定了预览卡片要顯示什麼:

  • og:title:预览标题
  • og:description:预览描述文字
  • og:image:预览縮图
  • og:url:这个网址的正式版本

如果网頁沒有设定 Open Graph 标签,Facebook 就会自己「猜」——它会抓取頁面的 <title>、第一段文字,以及頁面上第一張夠大的图片。这也是为什麼有时候縮图会抓到側邊欄的广告图或 Logo,看起来莫名其妙。

为什麼縮图不会即时更新?

关鍵在於 缓存。Facebook 为了效能,不会每次有人分享链接就重新去抓一次网頁,而是把第一次抓到的結果存起来,之後重複使用。这个缓存可能維持数天甚至数週。

所以當你做了以下任何一件事,縮图就可能「来不及更新」:

  • 換掉了文章的主視覺图片
  • 修改了 og:image 的网址
  • 修正了标题或描述文字
  • 网站剛从 HTTP 換成 HTTPS

Facebook 並不知道你改了東西,它只会繼續拿缓存裡的舊資料来用。

第一步:确认网頁的 Open Graph 标签

在怪 Facebook 之前,先确认自己的网頁有沒有正确设定 OG 标签。以 Astro 这类靜态网站来说,通常会在 SEO 元件或版型中輸出。一个标準的设定長这样:

<meta property="og:title" content="文章标题" />
<meta property="og:description" content="文章描述" />
<meta property="og:image" content="https://example.com/images/cover.jpg" />
<meta property="og:url" content="https://example.com/article/" />
<meta property="og:type" content="article" />

幾个常見的设定錯誤:

  • 图片网址用相对路徑:og:image 必須是完整的絕对网址(含 https://),Facebook 的爬蟲無法解析相对路徑。
  • 图片尺寸太小:Facebook 建議縮图至少 1200 × 630 像素,比例约 1.91:1。太小的图可能不会被採用。
  • 图片無法公开存取:如果图片需要登入才能看到,或 robots.txt 擋掉了爬蟲,Facebook 就抓不到。
  • 缺少 og:image:那就只能任由 Facebook 自己亂猜了。

第二步:用分享偵錯工具強制重新抓取

确认 OG 标签沒問题後,接著要做的就是「叫 Facebook 重新抓一次」。Facebook 提供了官方的 分享偵錯工具(Sharing Debugger):

  1. 前往 Facebook 分享偵錯工具頁面(https://developers.facebook.com/tools/debug/og/object/)。
  2. 在輸入框中貼上你要更新的完整网址,按下「偵錯」。
  3. 工具会顯示 Facebook 目前缓存的內容,包含它抓到的标题、描述与縮图。
  4. 点击 「再次抓取(Scrape Again)」 按鈕,強制 Facebook 重新拜訪你的网頁。
  5. 重新抓取後,縮图就会更新成最新的版本。

这个「再次抓取」的动作可以重複点击,每次都会強制刷新缓存。如果第一次沒更新,等个幾秒再点一次通常就会成功。

第三步:如果還是沒更新怎麼辦?

有时候按了好幾次「再次抓取」,縮图依然不动如山。这时可以依序检查以下幾点:

  • 图片本身有缓存:如果你是把新图覆蓋舊图的同一个檔名,Facebook 或 CDN 可能仍拿到舊图。解法是換一个新的檔名(例如加上版本號 cover-v2.jpg),並同步更新 og:image。
  • CDN 缓存:若网站前面有 Cloudflare 等 CDN,記得也清一下 CDN 缓存。
  • 网址不一致:https://example.com/article 和 https://example.com/article/(結尾有無斜线)在 Facebook 眼中是兩个不同网址,缓存也是分开的。務必用对外正式的那个网址去偵錯。
  • 等待一段时间:Facebook 的缓存有时就是需要时间,隔幾个小时再试也是辦法。

小結

Facebook 预览縮图不更新,九成以上的原因都是「缓存」而非设定錯誤。处理流程其实很单純:

  1. 先确认网頁的 Open Graph 标签正确(尤其是 og:image 要用絕对网址、尺寸足夠)。
  2. 用 Facebook 分享偵錯工具貼上网址,按「再次抓取」強制刷新。
  3. 若仍無效,改用新檔名的图片、清 CDN 缓存,並确认网址格式一致。

只要掌握这套流程,之後不管換了幾次主視覺,都能让 Facebook 乖乖顯示你想要的縮图。

✦ 独立报道 · 读者支持 ✦

以实际行动支持独立观点,与我们一同走得更远

每一篇条理清晰的分析、每一次不随波逐流的观察,背后都是对真实与品质的坚持。我们拒绝内容农场与算法流量绑架,坚持自由独立的客观发声。

维持高品质的原创写作与独立运营,需要持续的实质力量。您可以选择一次性赞助或每月定期支持,通过 Google 安全结账,与我们一同守护这份深刻与清醒。

由 Google 安全处理付款 · 可随时在 Google 账户管理或取消

标签FacebookOpen GraphSEO社群行銷网站经營