ChatGPT 看得到我的網站嗎?檢查方法
只有在 OpenAI 的搜尋爬蟲 OAI-SearchBot 能夠擷取你的頁面,且拿到與瀏覽器相同的 HTML 時,ChatGPT 才能引用該頁。請檢查三件事:robots.txt 沒有禁止 OAI-SearchBot;防火牆或 CDN 沒有以 403 或驗證挑戰頁回應它;主要文字已包含在初始 HTML 中。
不少網站經營者向 ChatGPT 詢問自家產品,卻看到引用的是競爭對手,於是懷疑 ChatGPT 根本連不上自己的網站。這個問題有具體、可測試的答案。OpenAI 公開了各個爬蟲的名稱與用途,因此你可以逐一檢查整條鏈路:robots.txt 規則、伺服器回傳的回應,以及回應中的內容。
本頁內容
哪些 OpenAI 爬蟲會影響 ChatGPT 的答案?
OpenAI 的文件列出網站經營者通常會遇到的三種代理程式。它們各有用途,封鎖其中一個並不會封鎖其他兩個。OpenAI 表示,每一項 robots.txt 設定都是獨立的。
OAI-SearchBot負責為 ChatGPT 的搜尋功能尋找並索引頁面。OpenAI 表示,已選擇退出此爬蟲的網站不會出現在 ChatGPT 的搜尋答案中。能否被引用,就看這一個。GPTBot收集可能用於訓練 OpenAI 基礎模型的內容。禁止它,等於表示你的內容不應用於訓練,但不會讓你從搜尋答案中消失。ChatGPT-User會在使用者請求 ChatGPT 時造訪頁面,例如貼上連結的時候。OpenAI 表示,robots.txt 規則可能不適用於這類由使用者發起的造訪,而且此代理程式不會用來決定內容是否出現在搜尋中。
簡單來說:OAI-SearchBot 決定引用,GPTBot 決定訓練,ChatGPT-User 負責使用者請求時的即時造訪。
如何檢查 robots.txt 對 ChatGPT 的設定?
在瀏覽器開啟 https://yourdomain.com/robots.txt,找找看有沒有點名 OAI-SearchBot 的群組。如果沒有,爬蟲就會遵循 User-agent: * 群組。只要適用的群組中有 Disallow: /,整個網站就會被封鎖。
也要確認這個檔案本身能正常回應。依據 RFC 9309,如果 robots.txt 回傳伺服器錯誤(5xx)或無法連線,爬蟲必須假設整個網站都被禁止。回傳 404 則沒有問題,代表沒有任何規則。常見的錯誤是 robots.txt 網址回傳狀態碼 200 的 HTML 頁面,這樣爬蟲在裡面找不到有效規則。
想保留 ChatGPT 搜尋、同時退出訓練,設定會像這樣:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
OpenAI 表示,更新 robots.txt 後,搜尋方面的變更大約需要 24 小時才會生效。
即使 robots.txt 允許,防火牆也可能擋掉 ChatGPT 嗎?
可以,而且這是常見原因。robots.txt 只是對守規矩的爬蟲提出的請求,並不是存取控制。實際回傳什麼,取決於你的防火牆、CDN 或機器人防護。如果它把 AI 爬蟲當成不受歡迎的機器人,爬蟲就會收到 403、429,或像 Cloudflare 的「Just a moment...」這類驗證挑戰頁,而用瀏覽器的人看到的卻是正常頁面。
從外部看來,網站似乎對所有人開放。只有表明自己是爬蟲的請求,才看得出差異。這時 robots.txt 說可以,伺服器說不行,而最後算數的是伺服器。
如何測試 OAI-SearchBot 拿到的內容?
對同一個網址送出兩個請求,一個使用瀏覽器的 user agent,一個使用爬蟲的 user agent,再比較狀態碼與大小。OpenAI 為每個爬蟲公布了範例 user agent,其中的版本號碼可能會變動。
# As a browser
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" \
https://example.com/page
# As OAI-SearchBot
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot" \
https://example.com/page
如果瀏覽器得到 200 與完整的內容,而爬蟲得到 403、429、503 或小很多的內容,就表示防火牆對爬蟲另眼相待。有一點限制:你的測試來自自己的 IP 位址,而不是 OpenAI 的位址。若防火牆會依公布的 IP 範圍驗證爬蟲(OpenAI 列在 openai.com/searchbot.json),真正的爬蟲可能順利通過,而你的測試反而被擋。即便如此,測試中被擋仍能說明防火牆如何看待該 user agent,值得修正。
頁面能載入,但 ChatGPT 仍沒有有用的回答,怎麼辦?
能存取只是第一步。如果送達的 HTML 只是一個稍後由 JavaScript 填入內容的空殼,爬蟲可能幾乎拿不到文字。請用 curl 或瀏覽器的檢視原始碼查看原始 HTML:如果主要文字不在裡面,爬蟲多半也看不到。
接下來才是內容訊號:頁面上方清楚的簡短答案、與人們提問方式相符的標題、明確的發布者與作者,以及看得見的日期。這些不保證會被引用,但能讓頁面更容易被正確引述。
AISeeWhy 如何檢查這些項目?
AISeeWhy 會以 OAI-SearchBot、GPTBot、ChatGPT-User 及另外 11 個爬蟲的身分擷取你的頁面,並與一般瀏覽器對照,依 RFC 9309 規則讀取你的 robots.txt,當有防火牆以封鎖或驗證挑戰回應時,還會指出是哪一個。每項發現都附上可直接貼上的修正方式,免費檢查會顯示你的分數與第一項發現。
常見問題
封鎖 GPTBot 會讓我的網站從 ChatGPT 搜尋中消失嗎?
不會。OpenAI 把每個爬蟲的設定視為彼此獨立。GPTBot 與訓練有關,而 OAI-SearchBot 決定頁面能否出現在 ChatGPT 搜尋答案中。你可以禁止其中一個、允許另一個。
ChatGPT-User 會遵守 robots.txt 嗎?
OpenAI 表示,由於這類造訪是由使用者發起的,robots.txt 規則可能不適用。如果你想阻止這些造訪,robots.txt 規則並不是可靠的控制方式。
robots.txt 的變更要多久才會傳到 ChatGPT?
OpenAI 表示,從 robots.txt 更新起,其系統大約需要 24 小時才會針對搜尋完成調整。
能被存取就足以被引用嗎?
不夠。能存取只是讓引用成為可能,並不保證一定會被引用。頁面說了什麼、說得有多清楚,仍然決定它是否會被用在答案中。