有沒有遇過這種狀況:圖片換了 ✔、標題改了 ✔、說明也改了 ✔,但 Facebook 分享出來的預覽,卻死守著舊資料不放? ❌
這不是你的錯,也不是網站壞掉,其實只是 —— Facebook 的快取機制在「固執」。
💡 為什麼會這樣?搞懂 FB 快取機制
Facebook 為了讀取速度,會把每個網址的資料「快取(Cache)」起來。當它第一次爬取你的網址時,會自動把 og:title、og:description、og:image 存進系統。
之後只要網址(URL)不變,FB 就懶得重新抓取。結果就是:你的網站已經更新了,Facebook 還活在舊世界。
✅ 第一步:所有人都適用的通用解法
遇到預覽不更新,請先做這兩件事:
1. 使用 Facebook Debugger 強制重新抓取
前往 Facebook 偵錯工具 (Sharing Debugger),貼上你的文章網址後點擊「偵錯」。
祕訣: 記得點擊「再次抓取 (Scrape Again)」,通常需要按 2~3 次才會見效。
2. 終極手段:網址參數大法 (Cache Busting)
如果怎麼按都沒反應,可以在網址後面隨便加一個參數,例如:?v=1。這會讓 FB 視為全新網頁並重新抓取。
🚨 第二步:Ghost 用戶的隱藏地雷
如果你試了以上方法,發現預覽圖換了,但「標題」永遠顯示網站首頁名稱,那就是 Ghost 的設定衝突 了。
我遇到的真正原因:
我在 Ghost 的 「Settings > Code Injection」 裡,手動寫了一整組網站預設的 OG 標籤:
<meta property="og:title" content="Pinkjhs|數位生活的 AI 策展筆記"> <meta property="og:description" content="結合 ChatGPT...">
Facebook 會讀取 HTML 原始碼中「第一組出現」的標籤。因為 Code Injection 位在最上方,導致它永遠抓到這組預設值,完全忽略了文章個別的標題。
✅ 解決方法其實很簡單
- 刪掉 Code Injection 裡手動寫的 OG: Ghost 會自動產生正確標籤,不需要自己寫。
- 去 Debugger 再次抓取: 重複前面的動作,預覽就會恢復正常!
🩷 結論:問 AI 就對了。