Cloudflare WAF 擋住 LINE 與 Facebook 分享預覽
整理日期:2026-09-22
網站在一般瀏覽器可以正常開啟,但網址貼到 LINE 或 Facebook 時,分享預覽沒有顯示標題、描述或縮圖。
這類問題和 Cloudflare WAF 擋到 Googlebot 很像。前台能開,不代表外部爬蟲沒有被 WAF 擋住。
先拆成幾層看
Section titled “先拆成幾層看”- 頁面來源:Open Graph 標題、描述與圖片是否真的存在。
- HTTP 回應:社群爬蟲拿到的是正常頁面、Block,還是 Challenge。
- WAF 條件:規則是否直接比對特定 User-Agent,或用
bot、crawl、spider等廣泛字串。 - Cloudflare 判定:該次請求是否被標記為 verified bot,以及實際命中哪一個分支。
- 平台快取:修正後是否仍在讀取先前失敗的分享預覽。
規則裡若直接阻擋 facebookexternalhit,Facebook 與相關平台的分享預覽工具就會命中規則。
LINE 的預覽 User-Agent 包含 Linespider。如果規則阻擋所有包含 spider、同時又不是 cf.client.bot 的請求,LINE 沒被 Cloudflare 識別為 verified bot 時也會遭到誤擋。
一長串以 or 連接的規則中,每個分支都能獨立造成命中。後面另一個分支排除 Page Preview,不會抵銷前面已經直接命中的 User-Agent 條件。
1. 移除 Facebook 的直接阻擋分支
Section titled “1. 移除 Facebook 的直接阻擋分支”如果網站需要正常產生 Facebook 分享預覽,就不要在 Block 或 Challenge 規則中保留這個獨立分支:
(http.user_agent contains "facebookexternalhit")移除前先確認它不是其他必要安全規則的一部分,修改時不要順便放寬無關條件。
2. 在 spider 分支排除 LINE
Section titled “2. 在 spider 分支排除 LINE”原本的廣泛條件:
(http.user_agent contains "spider" and not cf.client.bot)可縮小為:
(http.user_agent contains "spider" and not http.user_agent contains "Linespider" and not cf.client.bot)這個例外要放在原本會命中的 spider 分支內,不能只在另一個 or 分支加白名單。
3. 用新網址驗收,不沿用失敗快取
Section titled “3. 用新網址驗收,不沿用失敗快取”儲存並部署規則後,可在測試網址加上新的查詢參數,例如:
https://example.com/?preview_test=20260922接著確認:
- Cloudflare Security Events 裡的新請求沒有再命中 Block 或 Challenge。
- LINE 能取得標題、描述與縮圖。
- Facebook 的重新抓取結果能讀到 Open Graph 資料。
- 原本要阻擋的掃描器仍會命中規則,避免修正變成整條防護失效。
目前這份筆記記錄的是根因與修改方式。若還沒有 WAF 部署紀錄、Security Events 與成功預覽畫面,就不能把狀態寫成已修復。
不建議先做的事
Section titled “不建議先做的事”- 看到分享縮圖消失,就先改 WordPress 文章、特色圖片或 SEO 外掛。
- 只用一般瀏覽器測試,沒有查看 Cloudflare Security Events。
- 為了讓預覽恢復,直接放行所有名稱含
bot或spider的請求。 - 把例外寫在另一個無關的
or分支,誤以為能抵銷前面的命中。 - 一直重貼同一個網址,忽略 LINE 或 Facebook 已保存失敗預覽。
- 沒有正式環境證據,就把修改方案記錄成已驗收完成。
下次遇到可以先整理什麼
Section titled “下次遇到可以先整理什麼”- 分享失敗的時間、網址與平台。
- 頁面實際輸出的 Open Graph 標籤。
- Cloudflare Security Events 裡的規則名稱、動作、User-Agent、IP 與 ASN。
- 完整 User-Agent 是否包含
facebookexternalhit、Linespider或其他廣泛關鍵字。 - 規則中每一個
or分支,以及例外是否寫在真正會命中的分支內。 - 修改後的測試參數、回應狀態與成功預覽證據。
CloudflareWAFLINEFacebookOpen Graph社群預覽User-Agent