robots.txt 回應 403,不代表網站對 AI 開放,只是我們讀不到——這種情況很容易被誤解成 「沒設限、應該算過關」,但讀不到答案跟答案是好的,是兩件不一樣的事。
健檢請求 robots.txt 時,站方前面掛的 WAF(Web Application Firewall)或 CDN 有時候會把我們的請求一起攔下來,回一個 403 或挑戰頁,不是真正的 robots.txt 內容。 如果健檢把這種情況也算「可存取」,等於是給了一個假的綠燈——不確定的事不能寫成通過, 所以這種狀況會被標成 ⚪ 無法判定,跟真正確認過「可存取」或「被擋」的結果分開處理, 不會混在同一個燈號裡。
健檢會讀回應標頭(headers),比對幾家常見 WAF/CDN 廠商的特徵訊號,辨識出可能是誰擋的—— 命中率不是 100%,廠商會變更 headers、也可能被代理層剝掉,辨識不出來就不硬猜, 直接告訴你「讀不到」跟「怎麼自己確認」。目前認得出的廠商包括 Cloudflare、Akamai、 Imperva、Sucuri、AWS CloudFront/WAF、Fastly、F5 BIG-IP。
辨識出的廠商不同,後台設定的位置也不同——Cloudflare 是 Security → Bots,Akamai 是 Bot Manager/Kona Site Defender,Imperva 是 Bot Access Control。健檢給的建議會依實際辨識出的廠商, 直接告訴你去哪個後台開哪個設定,不是「請聯絡你的網站管理員」這種空話。
回到 健檢 重跑一次,這一項應該從 ⚪ 無法判定 變成 可存取。你也可以先自己在瀏覽器打開 https://你的網域/robots.txt人工確認——如果連你自己都打不開或跳出驗證頁,代表擋的範圍比 AI 爬蟲更廣,要先確認網站本身沒有故障。
(放行 AI 爬蟲的 User-Agent,跟允不允許它抓走內容拿去訓練模型是兩回事——想放行讀取但保留其他權利, 可以搭配 Content Signals 表態,見「要讓 AI 引用你的內容,該怎麼表態?」那篇。)