如果你打開 Google Search Console(GSC),看到「網頁未編入索引:由於禁止存取 (403) 而遭到封鎖」,或是 Sitemap 狀態卡在紅色的「無法讀取」,先深呼吸,你不是一個人。更讓人焦慮的是:在 AI 搜尋(ChatGPT、Claude、Perplexity)崛起的時代,如果連 Googlebot 都被擋在門外,各大 AI 爬蟲也絕對進不來,等於直接在 GEO(生成式引擎優化)的新戰場出局。
網路上大部分教學會叫你檢查 robots.txt、.htaccess 或 WordPress 設定。我們照做了一輪、跟主機客服來回拉扯了五天,最後才發現真正的兇手根本不在這些地方。這篇文章把完整排查流程、判讀方法、客服話術一次整理給你,讓你不用重走我們的冤枉路。
📌 本文重點
- 真人瀏覽正常、Googlebot 卻吃 403,兇手通常在「防護層」,不在 WordPress
- GSC 即時測試通過不代表已修復,兩者看的是不同時間點的資料
- Bluehost 內建代管版 Cloudflare 的機器人防護,是最常見卻最少人提的元兇
- 終極解法:轉移到自建免費版 Cloudflare,放行 Verified Bots 與 AI 爬蟲
- 附 Bluehost 客服英文話術範本,直接複製貼上就能用
🔍 先確認症狀:你是不是也中了「隱形防火牆」?
如果你的網站用瀏覽器打開一切正常,只有 Googlebot 被回 403,問題幾乎可以確定出在伺服器前面的防護層,而不是網站內容本身。
先對照下表,確認你的症狀組合。全部命中的話,直接照本文流程走即可:
| 你觀察到的現象 | 代表意義 |
|---|---|
| 瀏覽器打開網站完全正常 | 網站本體沒壞,是「針對特定訪客」的阻擋 |
| GSC 索引報告顯示 Page fetch:Failed (403) | 真實 Googlebot 爬取時被伺服器拒絕 |
| GSC 顯示 Crawl allowed:Yes | robots.txt 沒有擋,不用再糾結它 |
| Sitemap 顯示「無法讀取:HTTP 錯誤 403」 | 連 Sitemap 都被擋,確定是伺服器層級問題 |
| 即時測試有時通過、真實爬取卻失敗 | 防護機制對不同爬蟲差別待遇,典型 WAF 誤擋 |
🚨 兩個「假警報」先排除,別浪費時間
GSC 裡有兩種訊息看起來很嚇人,但其實完全正常,不需要處理。
假警報一:網頁資源載入失敗(Blocked Resources)
在 GSC 測試網址時,常會看到「有 X 個資源無法載入」並伴隨 403 或「Googlebot blocked by robots.txt」。點開一看,被擋的全是 DoubleClick、googlesyndication 這類 Google 自家的廣告資源,或 YouTube 內嵌影片的請求。這是因為 Google 自己的 robots.txt 不允許 Googlebot 抓取廣告網址,所有裝 AdSense 的網站都會看到,完全不影響你的網頁索引與排名。
假警報二:瘋狂點擊「重新提交 Sitemap」
看到 Sitemap 紅字,人類的本能是不斷重新提交。但 GSC 的資料更新有延遲,即使問題已經修好,紅字也可能再掛一兩天。
⚠️ 更嚴重的是:如果主機防護有「請求頻率限制」,你短時間內反覆提交與測試,反而會被防火牆判定為異常流量而鎖得更死。每個修改動作之後,測一次就好,然後給它時間。
🧭 四步驟排查流程,揪出真正兇手
排查的核心邏輯是「隔離測試」:由內而外逐層排除,每改一個變因就驗證一次,不要同時動好幾個設定。
步驟一:用「即時測試」確認阻擋是現在進行式
在 GSC 上方搜尋列貼上出問題的網址(文章頁或 Sitemap 網址都可以),點「網址檢查」,再點右上角的「即時測試」。
這裡有一個非常多人誤解的重點:索引報告顯示的是「上一次真實爬取」的歷史快照,即時測試才是當下發出的請求,兩者本來就可能不一致。即時測試通過但報告仍顯示 403,代表要嘛問題剛好間歇性發作,要嘛 Google 還沒重爬。如果即時測試本身就 403,代表阻擋是現在進行式,繼續往下走。
步驟二:花十分鐘排除 WordPress 層
這一層通常不是兇手,但排除它只要十分鐘,而且之後跟客服交涉時,「我已經確認過這些都正常」會讓你的話語權完全不同:
- robots.txt:GSC 報告若顯示 Crawl allowed:Yes,就代表沒擋,直接跳過
- .htaccess:如果有裝 Rank Math,從「General Settings → Edit .htaccess」就能直接檢視,找有沒有包含
HTTP_USER_AGENT、Googlebot、deny from的可疑規則。只有快取外掛、WordPress 標準區塊、cPanel PHP 設定的話就是乾淨的 - 安全外掛:有裝 Wordfence 之類的話,看封鎖紀錄裡有沒有 Googlebot 被擋
💡 小提醒:如果要動手修改 .htaccess,改之前先複製一份備份。這個檔案寫錯一行,整個網站會直接 500 錯誤。
步驟三:暫時關閉 Bluehost 內建的 Cloudflare
重點來了。Bluehost 的方案通常會自動幫網站掛上「內建代管版」Cloudflare,很多站長根本不知道它的存在。因為是代管版,你無法進入 Cloudflare 後台調整細部設定,而它內建的機器人防護(Bot Fight Mode)經常無差別阻擋包含 Googlebot 在內的爬蟲。
- 登入 Bluehost 後台,前往 Security(安全)或 Performance(效能)區
- 將 Cloudflare 的開關切換為關閉(Disable)
- 等待 2 到 4 小時,讓 DNS 生效
- 回到 GSC 對 Sitemap 做一次「即時測試」(一次就好)
步驟四:判讀測試結果
| 關閉後的測試結果 | 結論與下一步 |
|---|---|
| ✅ 即時測試成功 | 兇手確定是代管版 Cloudflare。直接跳到「終極解法」一節 |
| ❌ 依然 403 | 阻擋在 Bluehost 伺服器本體(ModSecurity 防火牆),需要客服處理。看下一節話術 |
💬 聯絡 Bluehost 客服的英文話術範本
跟客服交涉最重要的原則:明確說出你要的動作(查日誌、加白名單、升級技術團隊),並附上具體的失敗時間戳,不要只描述症狀。
Bluehost 主要靠 Live Chat 溝通。以下話術直接複製貼上即可,記得把網域和時間換成你自己的:
開場白:
Hi, I need help with a server-level issue: my site yourdomain.com is returning HTTP 403 errors to Googlebot, which is blocking Google from indexing my pages. Regular visitors are NOT affected. I believe this is caused by ModSecurity or the server firewall. I need this escalated to your technical team to review the logs.
客服要細節時:
Google Search Console shows “Blocked due to access forbidden (403)” for multiple pages, and my sitemap also fails with HTTP 403. Last failed Googlebot crawl: [日期時間] for [網址]. I have already verified: robots.txt allows Googlebot, .htaccess has no blocking rules, and no security plugin is blocking crawlers. Please check the ModSecurity/WAF logs for 403 responses to Googlebot IP ranges and whitelist Google’s official crawler IPs.
遇到「我們看網站正常」的罐頭回覆時:
The site works for browsers. The block only affects Googlebot’s user-agent and IP ranges. That’s exactly why I need the ModSecurity logs checked, not a browser test. Please escalate to your server team.
結束對話前務必要到案件編號(Case number),之後追蹤才有依據。48 到 72 小時沒下文,就帶著編號回去追。Googlebot 官方 IP 範圍公布在 Google 官方文件,必要時直接丟給客服。
☁️ 終極解法:轉移到自建免費版 Cloudflare
確認兇手是代管版 Cloudflare 之後,不要選擇永久關閉,正確做法是自己註冊免費帳號、把網域接管過來,同時保住 CDN 加速、DDoS 防護與設定控制權。
永久關閉的代價是:台灣讀者連到美國主機的速度變慢、失去 DDoS 防護、主機 IP 直接曝光。自建免費版三個都能保住,而且防護設定從此由你掌控。
1. 註冊並匯入 DNS 紀錄
前往 Cloudflare 官網註冊免費帳號,輸入你的網域,Cloudflare 會自動掃描並匯入現有的 DNS 紀錄。
2. 修正 Proxy 狀態(很重要)
在 DNS 紀錄頁面,只有網頁流量(主網域的 A 紀錄、www 的 CNAME 紀錄)需要開啟橘色雲朵(Proxied)。
⚠️ 注意:ftp、ssh、mail、imap、pop、smtp 這些非網頁服務的紀錄,請手動切換為灰色雲朵(DNS only),否則你的電子信箱和 FTP 連線會直接失效。
3. 到 Bluehost 修改 Nameservers
- 在 Cloudflare 取得兩組專屬的名稱伺服器(例如 xxx.ns.cloudflare.com)
- 登入 Bluehost 後台 → Domains → 點選你的網域
- 找到 Nameservers 區塊,把 Setup type 改為 Custom
- 填入 Cloudflare 給的兩組 Nameservers 並儲存,等待生效(通常數小時內)
🤖 GEO 關鍵設定:放行 Googlebot 與 AI 爬蟲
接管 Cloudflare 之後,完成以下三個設定,就能確保搜尋引擎和 AI 爬蟲都暢行無阻,從此不再出現 403 誤擋。
設定一:關閉 Bot Fight Mode
- 左側選單點「Security(安全性)」→「Bots(機器人)」
- 找到「Bot Fight Mode(機器人戰鬥模式)」
- 切換為「Off(關閉)」
這個功能正是這次事件的元兇類型:它會用挑戰機制無差別攔截機器人,而且經常誤殺驗證過的搜尋引擎爬蟲。
設定二:建立 WAF 規則,讓 Verified Bots 絕對放行
- 「Security」→「WAF」→「Custom rules」分頁 → 點「Create rule」
- Rule name 輸入:Allow Verified Bots
- Field 選「Verified Bots」、Operator 選「equals」、Value 選「On」
- Choose action 選「Skip」
- 要跳過的 WAF 元件:勾選「All remaining custom rules」以及下方所有安全檢查項目
- 點「Deploy」部署
這條規則生效後,Google、Bing 等官方驗證過的爬蟲會直接跳過所有安全檢查,不會再被誤擋。
設定三:允許混合用途 AI 爬蟲,搶佔生成式搜尋紅利
- 「Security」→「Bots」
- 找到 AI 爬蟲相關設定(Block AI bots)
- 選擇允許「Mixed purpose crawlers(混合用途爬蟲)」繼續存取
為什麼這樣選?像 Applebot 這種爬蟲,既幫搜尋引擎建立索引,也幫 AI 模型訓練。如果全部封鎖,你會連帶失去在特定平台的搜尋排名;選擇允許,既保住 SEO,又讓優質內容有機會被 AI 引擎讀取並在回答中引用,帶來 GEO 時代的新流量。
✅ 修復後收尾:加速索引恢復
防火牆修好只是完成一半,主動通知 Google 重爬,才能把這段時間掉的索引盡快補回來。
- 重新提交 Sitemap:在 GSC 的 Sitemaps 頁面重新提交,等狀態轉綠(可能需要一兩天,紅字殘留是正常延遲)
- 分批要求建立索引:把受影響的文章逐一用「網址檢查 → 要求建立索引」送出,一天不要超過十幾篇,分批處理
- 持續觀察一到兩週:每隔幾天看「網頁索引」報告,確認 403 數量歸零、已索引數量回升
- 建立肌肉記憶:以後 GSC 再出現大批 403,第一反應直接查 Cloudflare 和主機防火牆,不用再從 robots.txt 排查一輪
🔐 加碼:順手做網站安全健康檢查
排查 403 的過程正好是幫網站做安全體檢的機會,特別是檢查有沒有來源不明的腳本,但下結論前記得先查證,不要看到陌生網域就恐慌。
檢查不明腳本:用 String Locator 全站搜尋
檢視網頁原始碼時,如果發現載入了你不認識的網域的 .js 檔案(尤其是被插入多次、掛著 data-cfasync 之類屬性的),先別急著判定是惡意注入。安裝 String Locator 外掛,用「工具 → String Locator」搜尋該網域關鍵字,它會直接告訴你這段程式碼藏在哪個檔案的第幾行。
我們自己就遇過一個經典案例:原始碼裡有個陌生網域的腳本被插入兩次,看起來極度可疑,結果用 String Locator 一查,發現它藏在某個聯盟行銷外掛的快取檔裡,是該平台官方的追蹤腳本。聯盟平台常用「非品牌名的中性網域」載入腳本來避開廣告攔截器,所以長得特別像惡意程式。查證後確認來源正當,就不需要刪除,刪了反而會影響聯盟連結的成效追蹤。
反過來說,如果搜尋結果指向佈景主題的 header.php 或你不認識的外掛,那就要當入侵事件處理:刪除程式碼、更改 WordPress 與主機密碼、檢查使用者清單有沒有陌生管理員,並用 Sucuri SiteCheck 或 Wordfence 做完整掃描。
修正 Mixed Content 警告
檢查頁尾或佈景主題有沒有 http:// 開頭的舊連結(常見於主題商的版權連結),改成 https:// 或直接移除,能消除瀏覽器的混合內容警告。
❓ 常見問題 FAQ
為什麼即時測試通過,文章卻還是顯示未編入索引?
因為兩者看的是不同時間點的資料:索引報告顯示的是上一次真實 Googlebot 爬取的歷史快照,即時測試是你按下當下才發出的請求。即時測試通過後按「要求建立索引」,Google 會排程重爬,報告通常需要幾天到一兩週才會更新,期間不需要重複操作。
GSC 顯示廣告資源被 robots.txt 封鎖,需要處理嗎?
不需要。被擋的是 DoubleClick、googlesyndication 這些 Google 自家的廣告網址,是 Google 自己的 robots.txt 不允許 Googlebot 抓取廣告資源,所有裝 AdSense 的網站都會看到這個訊息,完全不影響網頁索引與 SEO。
永久關閉 Cloudflare 會有資安風險嗎?
會失去 DDoS 防護、機器人過濾、IP 隱藏和 CDN 加速,但對個人部落格來說風險可控。比較好的做法是:短期先關閉救回索引,之後轉移到自建免費版 Cloudflare 把防護接回來;過渡期間安裝 Wordfence、開啟登入保護與兩步驟驗證、保持外掛即時更新,安全水位就不會有明顯落差。
修好之後多久索引會恢復正常?
Sitemap 狀態通常一到兩天內轉綠,個別文章的重新收錄依網站權重從幾天到兩週不等。只要「網頁索引」報告裡的 403 數量歸零、已索引數量開始回升,就代表已經走在恢復的路上,剩下交給時間即可。
如果想第一時間收到我們追劇、手作、學習紀錄、旅遊推薦,歡迎點擊訂閱我們的電子報,精選文章每週會直接寄到你的信箱~
📮 訂閱電子報

