用三個步驟檢查:打開 robots.txt 確認沒有禁止 OAI-SearchBot、Bingbot、Googlebot 等爬蟲;用 curl 模擬爬蟲,確認 CDN 或防火牆沒有擋下、也沒有 noindex;再到 Google Search Console 與 Bing Webmaster Tools 確認頁面已被索引。任何一層擋住,AI 就讀不到你的網站。
- 爬蟲可能在三個地方被擋:robots.txt、CDN/防火牆、noindex 標記。
- robots.txt 的陷阱:爬蟲只遵守最符合自己名稱的那一組規則,不會同時套用 `User-agent: *`。
- 擋掉 GPTBot(訓練用)不會影響 ChatGPT 搜尋引用;擋掉 OAI-SearchBot 才會。
- CDN 的「封鎖 AI 爬蟲」或機器人防護設定,可能在你不知道的情況下擋掉 AI。
- 最後一定要到 Search Console 與 Bing Webmaster Tools 確認頁面真的被索引。
先認識主要的爬蟲
| 爬蟲名稱 | 用途 | 擋掉的影響 |
|---|---|---|
| Googlebot | Google 搜尋,包含 AI Overviews 與 AI 模式 | 從 Google 搜尋與 Google 的 AI 回答中消失 |
| Google-Extended | Google:控制內容是否用於 Gemini 等 AI 模型 | 不影響 Google 搜尋的收錄與排名 |
| Bingbot | Bing 搜尋,以及以 Bing 為基礎的 Microsoft Copilot | 從 Bing 與 Copilot 的網路回答中消失 |
| OAI-SearchBot | ChatGPT 搜尋:發現、引用並連結網站 | ChatGPT 搜尋難以引用你 |
| ChatGPT-User | 使用者在 ChatGPT 中要求讀取某個網頁 | 使用者貼你的網址給 ChatGPT 時讀不到 |
| GPTBot | OpenAI 模型訓練 | 不影響 ChatGPT 搜尋引用 |
| PerplexityBot | Perplexity 搜尋結果 | Perplexity 難以引用你 |
| Claude-SearchBot | Anthropic:提升 Claude 搜尋結果品質 | Claude 搜尋較難找到你 |
| ClaudeBot | Anthropic 模型訓練 | 不影響搜尋引用 |
名稱與用途以各公司官方文件為準(見文末參考資料),新的爬蟲會不斷出現。
步驟一:檢查 robots.txt
在瀏覽器打開 https://你的網域/robots.txt。
1. 找有沒有整站禁止
User-agent: *
Disallow: /
這兩行會擋掉所有遵守 robots.txt 的爬蟲。網站改版或從測試環境搬到正式環境時,這兩行常被忘記刪掉。
2. 找有沒有點名禁止
User-agent: OAI-SearchBot
Disallow: /
逐一確認表格中你想被讀取的爬蟲,沒有被點名禁止。
3. 注意「分組」陷阱
robots.txt 的規則是:爬蟲只遵守最符合自己名稱的那一組,不會再套用 User-agent: * 那一組。
User-agent: *
Disallow: /admin/
User-agent: Googlebot
Allow: /
上面的寫法看起來是「全部爬蟲都不能進 /admin/,Googlebot 什麼都能讀」,但實際上 Googlebot 只會看自己那一組,所以 Googlebot 可以讀 /admin/。反過來,如果你替某個爬蟲單獨寫了一組禁止規則,它也只會遵守那一組。
比較安全的寫法,是把需要相同規則的爬蟲放在同一組:
User-agent: *
User-agent: Googlebot
User-agent: OAI-SearchBot
Allow: /
Disallow: /admin/
數位聖經在建立自己網站的 robots.txt 時,就是在檢查中發現了這個問題,後來改成把所有爬蟲放在同一組規則。
步驟二:用 curl 模擬爬蟲
robots.txt 沒問題,不代表爬蟲進得來。CDN(例如 Cloudflare)與網站防火牆可能把爬蟲當成攻擊擋掉,有些 CDN 也提供「一鍵封鎖 AI 爬蟲」的設定,新網站可能預設就是開啟的。
在終端機執行(把網址換成你的文章頁):
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)" \
https://你的網域/某篇文章/
把 -A 後面換成 Googlebot、bingbot、PerplexityBot 等名稱各測一次。
| 結果 | 代表 |
|---|---|
200 加上正常的檔案大小 |
這一層沒擋 |
403、429、503 |
被 CDN 或防火牆擋下,請檢查機器人防護與 AI 爬蟲設定 |
200 但檔案很小 |
可能收到的是驗證頁(「請確認你是真人」),等於被擋 |
同時檢查有沒有 noindex:
curl -sI https://你的網域/某篇文章/ | grep -i x-robots-tag
如果出現 noindex,或頁面原始碼中有 <meta name="robots" content="noindex">,這一頁就不會被搜尋引擎收錄。測試環境常用 noindex 防止被收錄,搬到正式環境時務必確認已移除。
確認重要內容是文字:用 curl 抓下頁面後,搜尋頁面上一句重要的話(例如公司服務的描述)。如果抓不到,代表這段內容是用 JavaScript 產生、或放在圖片裡,部分爬蟲可能讀不到。
步驟三:確認真的被索引
- Google Search Console:用「網址檢查」輸入重要頁面,確認「網址已在 Google 服務中」
- Bing Webmaster Tools:用「URL 檢查」確認頁面已被索引
兩邊都要做。Bing 的索引會影響 Bing 搜尋與 Microsoft Copilot,很多台灣企業只設定了 Google,忽略了 Bing。
檢查清單
| 項目 | 怎麼確認 |
|---|---|
| robots.txt 沒有整站禁止 | 沒有 User-agent: * 搭配 Disallow: / |
| 想被讀取的爬蟲沒有被點名禁止 | 逐一比對上方爬蟲表 |
| 沒有分組陷阱 | 單獨列出的爬蟲,規則是否完整 |
| CDN/防火牆沒有擋 | curl 各爬蟲名稱都回傳 200 與正常大小;CDN 的 AI 爬蟲設定已確認 |
| 沒有 noindex | 回應標頭與 meta 都沒有 noindex |
| 重要內容是 HTML 文字 | curl 抓得到關鍵句子 |
| 已被 Google 索引 | Search Console 網址檢查 |
| 已被 Bing 索引 | Bing Webmaster Tools URL 檢查 |
這是 GEO 五個支柱中的第一個「可被讀取」,完整方法見 GEO 是什麼?。如果檢查後仍不確定問題在哪裡,數位聖經的 AI 能見度健檢 會逐項檢查技術、Entity 與內容。
常見問題
我不想讓 AI 拿我的內容去訓練模型,但想被 ChatGPT 搜尋引用,可以嗎?
可以。OpenAI 把搜尋用的 OAI-SearchBot 和訓練用的 GPTBot 分開,可以在 robots.txt 禁止 GPTBot、同時允許 OAI-SearchBot。Google 也一樣,禁止 Google-Extended 不影響 Google 搜尋的收錄與排名。
用 curl 測試成功,就代表真的爬蟲也能進來嗎?
不一定。有些 CDN 會用 IP 驗證爬蟲身分:curl 偽裝的 User-Agent 可能被擋,但真正的爬蟲能通過;也可能相反。curl 測試能找出大部分問題,但最後仍要看 CDN 的防火牆紀錄,以及 Search Console、Bing Webmaster Tools 的實際索引結果。
robots.txt 改完多久生效?
爬蟲會定期重新讀取 robots.txt,通常在一天內就會讀到新版本,但重新抓取與索引頁面需要更久。修改後可以在 Search Console 與 Bing Webmaster Tools 對重要頁面要求重新檢查。
參考資料
- OpenAI|Overview of OpenAI Crawlers
- Google Search Central|Overview of Google crawlers and fetchers
- Google Search Central|Introduction to robots.txt
- Bing Webmaster Guidelines