「我們幫你做 GEO,讓你的品牌出現在 AI 的回答裡。」
簽下這句話之後,你大概會在第一個月遇到同一個問題:我怎麼知道到底有沒有在動?
傳統 SEO 這一側至少還有排名可以看、有 Search Console 可以開。AI 那一側,如果你收到的只是一份寫著「已完成 AI 爬蟲設定」的進度報告,那你打開自己的網站,畫面會跟上週一模一樣。你既沒辦法反駁,也沒辦法確認。
這篇文章不打算給你一套完整的 GEO 驗收標準——那不是一篇文章做得完的事。它要給你的是一件更基本、而且你今天下午就能自己做完的事:用三行指令,確認 AI 爬蟲到底進不進得來你的網站。
不用工程師、不用登入後台、不用買工具。跑完之後你會拿到兩樣東西:一是你網站第一道門的真實狀態,二是這個檢查測不到什麼——所以你不會誤把它當成「GEO 已經做完了」的證明。
第二樣跟第一樣一樣重要。因為這兩件事很容易被講成同一件:門開著,不等於客人來過。
先把話說在前面:這把尺我們也交給你量我們。 這篇文章教你的每一個動作,都可以原封不動拿來檢驗任何一家跟你談 GEO 的服務商——包括我們。

💡 不確定你的網站現在對 AI 是開還是關?LINE 聊聊,我們陪你跑一次。👉 LINE 免費諮詢
你買的是「被 AI 提到」,但你能自己驗收的只有前兩層
先講一個對決策有用的分界,這個分界一旦畫清楚,很多爭執就不會發生。
當你投錢做 GEO,你心裡買的東西其實是:有人問 AI 相關問題時,我的品牌會被提到。 這是商業目標,沒有問題。
但這個目標是由好幾層條件疊出來的,而這幾層的「可查證程度」天差地遠:
| 層次 | 問題 | 你能不能自己查證 |
|---|---|---|
| 第一層 | AI 爬蟲抓不抓得到你的頁面? | 可以,今天、三分鐘、自己來 |
| 第二層 | 抓到的頁面裡有沒有正文可讀? | 可以,同一次抓取就看得出來 |
| 第三層 | 內容有沒有被收進某個 AI 的索引? | 不能直接看,但有代理指標可量(見本文最後一節) |
| 第四層 | 使用者提問時會不會被拿出來講? | 不能直接看,但有代理指標可量(見本文最後一節) |
這篇文章的主體處理的是第一層跟第二層,最後一節才會談第三、四層該怎麼量。
為什麼值得單獨花一篇文章講前兩層?因為它們是必要條件。第一層沒過,後面幾層就很難靠你自己的內容成立——AI 讀不到你的頁面,它手上就沒有你的內容可以拿出來用。而第一層恰好是整條鏈裡唯一一個你可以在幾分鐘內、用自己的眼睛確認完的環節。
「放行」是你說的話,「被拿去用」是對方的行為
這條界線值得再拆一次,因為接下來所有的判讀都建立在它上面。
「robots.txt 放行」是一份聲明。 它是你放在網站根目錄的一個純文字檔,內容大致等同於「我允許某某爬蟲來抓我的內容」。它是你單方面說的話。
「被 AI 拿去用」是對方的行為。 對方要不要來抓、抓了要不要收進索引、收進去了在什麼情況下拿出來講,全部由對方決定,而且過程不對外公開。
這中間的落差有多大?大到你可以把 robots.txt 寫得完美無瑕,卻一次都沒有被提到過;也大到你的 robots.txt 明明放行,爬蟲卻在更前面的一層就被擋掉了(後面會講這件事)。
所以,一份誠實的檢查報告只能講到這裡:
- ✅ 可以講:「這個時間、這個路徑、從這個來源,AI 爬蟲沒有在第一道門被擋住。」
- ❌ 不能講:「所以你的內容已經被 AI 收錄了。」
- ❌ 不能講:「所以你會出現在 ChatGPT 的回答裡。」
- ❌ 不能講:「三行跑完全綠,GEO 就達標了。」
如果有人拿第一句的檢查結果,講出後面三句的結論,那不是技術問題,是論述被偷換了。你現在知道界線在哪,就有能力當場問一句:「這個數字是怎麼量出來的?」

三行指令:自己驗第一層
方法本身只有三個動作。以下把每一行在做什麼、為什麼非做不可講清楚。
開始之前:這些字要打在哪裡
這三行要打在你電腦的命令列裡,不是瀏覽器的網址列。
- Mac:按
Cmd + 空白鍵,輸入「終端機」(或 Terminal),按 Enter 打開它。 - Windows:按
Win + R,輸入cmd後按 Enter,打開「命令提示字元」。
🔴 Windows 使用者請不要用 PowerShell 跑這幾行。 PowerShell 裡的 curl 並不是真的 curl,它是另一個指令(Invoke-WebRequest)的別名,參數寫法完全不同——你把下面的指令貼進去,會看到類似「找不到符合參數名稱 's' 的參數」的錯誤,那不是你的網站有問題,是工具不對。如果你習慣用 PowerShell,把指令開頭的 curl 改成 curl.exe 就會走到真正的 curl。
另外一個小差異:下面第 2、3 行有一段 -o /dev/null,意思是「回應的內容不用印出來,我只要看統計數字」。那是 Mac/Linux 的寫法,Windows 請改成 -o NUL(一個 N、兩個字母 UL,沒有斜線)。
第 1 行:把 robots.txt 抓下來看
curl -s -A "Mozilla/5.0" https://你的網域.com/robots.txt
這一行把你網站的放行聲明整份印出來。你要看的重點只有兩個:
- 有沒有
Disallow:這個字?擋掉了什麼路徑? - 有沒有針對 AI 爬蟲名稱(例如
GPTBot、OAI-SearchBot)的專屬區塊?那個區塊寫的是Allow還是Disallow?
這一行只花你十秒,卻是最容易被跳過的一行。改版、搬家、或是換一套模板,都可能讓 robots.txt 被整份覆蓋掉,而這件事不會有人主動通知你。
第 2 行:先確認你的站會回真 404
curl -s -o /dev/null -w "%{http_code}\n" https://你的網域.com/blog/this-page-does-not-exist-zzz9
這一行看起來像在做無意義的事——刻意去要一個不存在的網址。但它是整套檢查裡最不能省的一步。
原因是:有些網站不管你要什麼路徑,都會回一個 HTTP 200 加上首頁的內容(俗稱 catch-all)。如果你的站是這種,那麼第 3 行不論怎麼跑都會拿到 200,而那個 200 完全不代表爬蟲讀到了你那篇文章——它讀到的是首頁。
這一行應該印出 404。 如果它印出 200,請先停下來處理這件事,因為在那之前你做的任何爬蟲測試都沒有判讀價值。
🔴 假路徑一定要跟你等一下要測的那篇文章在同一個目錄層級。 catch-all 經常發生在路由層:網站根目錄回 404,不代表 /blog/ 底下也會回 404,反過來也一樣。所以如果你等一下要測的是 https://你的網域.com/blog/某篇文章,假路徑就要寫成 https://你的網域.com/blog/隨便一串不存在的字。我們自己這次要測的是 /blog/llms-txt-setup-guide,所以假路徑也用了同層級的 /blog/this-page-does-not-exist-zzz9。
第 3 行:換上 AI 爬蟲的 UA 抓同一頁
這一行要跑兩次:一次用 AI 爬蟲的身分,一次用一般瀏覽器的身分當對照組。
先跑 AI 爬蟲這次(下面 -A 後面那串已經是 OpenAI 官方文件上 GPTBot 的完整 User-Agent,可以直接複製):
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" https://你的網域.com/你的某一篇文章
再跑對照組這次:
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" -A "Mozilla/5.0" https://你的網域.com/你的某一篇文章
(Windows 記得把兩行裡的 -o /dev/null 都改成 -o NUL。)
-A 後面接的是 User-Agent(UA),也就是「來訪者的自我介紹」。伺服器會依照這個字串決定要不要放行、放行什麼。這兩行的意思就是:先假裝自己是 AI 爬蟲去抓一篇你真正在乎的內容頁,再用一般身分抓同一頁,然後比較兩次拿到的東西一不一樣。
這一步有三個細節,做錯了會白測:
細節一:UA 一定要用官方的完整字串,不能只寫 GPTBot。
封鎖規則多半比對的是完整字串,短字串測不出真實的封鎖行為。上面那串是從 OpenAI 官方文件抄下來的,注意它結尾帶版本號(GPTBot/1.4)——廠商改版時這個號碼會變,過一陣子重跑前,請先回官方文件對一次字串。想測其他家的爬蟲,也請到各家自己的官方文件抄,不要用猜的。
細節二:對照組一定要同時段跑。 沒有對照組,你分不出「網站在擋 AI 爬蟲」跟「網站根本掛了」。這兩件事的處理方式完全不同,錯判的代價很高。
細節三:目標要挑內容頁,不要挑首頁。 你要驗的是「AI 讀不讀得到你的文章」,首頁的結構跟內容頁往往不一樣。
跑完之後,你要比對的是兩個欄位:HTTP 狀態碼跟回應的位元組數。狀態碼相同還不夠,位元組數也要對得起來——因為有些差別對待不會回錯誤碼,而是回一份被減量過的內容。
不過位元組數不必要求分毫不差。網頁裡常有時間戳、隨機排序的推薦區塊這類本來就會浮動的東西,兩次抓取差個幾百位元組是正常的。給你一個判讀尺度:差異在 1% 以內就當作相同;要到 AI 爬蟲拿到的明顯少於一半,才算是被減量了,那種才值得往下查。
實測範例:2026 年 8 月,我們把三行指令跑在自己站上
講方法不如直接看輸出。以下是 2026 年 8 月實測、跑在 ai-seo-hacker.cc 上的原始結果。三項測試全部是唯讀的 HTTP GET,沒有動到任何線上設定。
第 1 行的輸出:robots.txt 全文
User-agent: *
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Applebot-Extended
Allow: /
User-agent: DeepSeekBot
Allow: /
User-agent: DuckAssistBot
Allow: /
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Google-Extended
Allow: /
User-agent: anthropic-ai
Allow: /
User-agent: cohere-ai
Allow: /
Host: https://ai-seo-hacker.cc
Sitemap: https://ai-seo-hacker.cc/sitemap.xml
從這份檔案本身可以直接讀出來的事實:
- 總共 14 個
User-agent區塊:1 個萬用*,加上 13 支具名爬蟲,全部都是Allow: / - 具名的 13 支分別是
OAI-SearchBot、ChatGPT-User、PerplexityBot、Perplexity-User、Claude-SearchBot、Applebot-Extended、DeepSeekBot、DuckAssistBot、GPTBot、ClaudeBot、Google-Extended、anthropic-ai、cohere-ai - 整份檔案沒有任何一行
Disallow - 沒有被具名列出的爬蟲(例如
CCBot、Bytespider、Amazonbot、Meta-ExternalAgent、Claude-User)會落到User-agent: *的Allow: /,因此同樣不會被 robots.txt 擋 - 有宣告
Sitemap:,指向網站地圖位置
這裡要立刻補一句,免得被過度解讀:具名 13 支,不等於「支援 13 種 AI」,更不等於「被 13 個 AI 收錄」。 robots.txt 只是一份放行聲明,跟對方有沒有真的來抓、有沒有收進索引,完全是兩回事。
第 2 行的輸出:假路徑自檢
前面給你的那一行 curl 只會印出一個狀態碼。你要看到的是這個:
404
而我們自己這次跑的是加強版:除了假路徑,另外把文章頁與首頁也各抓一次,順便比對兩者的內容雜湊值,好確認它們真的是不同的頁面。完整輸出如下:
200 189,816b sha=c9232e9f6afd https://ai-seo-hacker.cc/blog/llms-txt-setup-guide
404 (HTTPError) https://ai-seo-hacker.cc/blog/this-page-does-not-exist-zzz9
200 113,080b sha=d732737dae51 https://ai-seo-hacker.cc/
假路徑回真 404,而且文章頁跟首頁的內容雜湊值(sha)不同。這代表本站不是 catch-all,所以下一步拿到的 200 才有判讀價值——那確實是那篇文章本身,不是被導回首頁的假象。
你自己自檢時,只跑那一行、看到 404 就夠了;雜湊值比對是我們為了寫這篇文章多做的一步。
第 3 行的輸出:五種 UA 拿到完全相同的回應
目標頁是站上的一篇文章 /blog/llms-txt-setup-guide。程式輸出逐字如下:
目標:https://ai-seo-hacker.cc/blog/llms-txt-setup-guide
GPTBot HTTP 200 189,816 bytes
OAI-SearchBot HTTP 200 189,816 bytes
ChatGPT-User HTTP 200 189,816 bytes
PerplexityBot HTTP 200 189,816 bytes
一般瀏覽器 HTTP 200 189,816 bytes
四支 AI 爬蟲加一個一般瀏覽器對照組,HTTP 狀態碼與位元組數完全相同(189,816 bytes)。
結論可以講到這裡為止:本站沒有對 AI 爬蟲做 UA 差別對待,AI 爬蟲在這個時間點、從這個來源拿到的內容,與人類讀者一致。
說明一下工具:這次的 UA 差別對待測試是用 Python 的
urllib跑的,上面貼的是程式當時印出來的原始輸出。前面給你的curl寫法是等效的複製貼上版本,兩者測的是同一件事。
加碼一項:爬蟲拿到的 HTML 裡真的有正文嗎
拿到 200 只代表「有東西回來」。回來的如果是一個要靠 JavaScript 才長出內容的空殼,對爬蟲來說跟白紙差不多。所以我們把用 GPTBot 官方完整 UA 取回的那份 HTML 拿去解析:
title: llms.txt 是什麼?2026 年到底該不該設定?官方最新立場與決策指南
h1 count: 1 | h2 count: 10
visible text chars: 8073
JSON-LD blocks: 10
first 200 chars of text: llms.txt 是什麼?2026 年到底該不該設定?官方最新立場與決策指南 AI SEO Hacker 首頁 服務介紹 KPI 承諾 客戶案例 價格方案 知識庫 加入我們 聯絡我們 EN | 中 免費諮詢 首頁 知識庫 GEO生成式引擎優化 GEO生成式引擎優化 llms.txt 是什麼?2026 年到底該不該設定?官方最新立場與決策指南 llms.txt 是什麼、當初為什麼被提出、格式長怎樣?
剝掉所有標籤之後仍有 8,073 個字的可見文字、1 個 h1、10 個 h2、10 段結構化資料。
這說明爬蟲不需要執行 JavaScript 就讀得到正文與結構化資料。這也是第二層檢查的全部意義——它就到這裡為止。這 8,073 個字不能拿去推算任何「AI 讀了多少」或「有沒有被拿去用」,那需要完全不同的證據,本文沒有。

GPTBot 和 OAI-SearchBot 不是同一件事
這是整個題目裡最常見的誤解:把不同爬蟲當成同一隻,於是「擋掉 AI 爬蟲」變成一個沒有後果評估的決定。
以 OpenAI 為例,官方文件上列出的三支爬蟲用途完全不同(2026-08-06 讀取):
| 爬蟲 | 官方定義的用途 | 遵不遵守 robots.txt |
|---|---|---|
GPTBot |
用來抓取「可能被用於訓練生成式 AI 基礎模型」的內容,目的是讓基礎模型更有用、更安全 | 是。官方明講:把 GPTBot 設為 Disallow,代表這個網站的內容不應被用於訓練生成式 AI 基礎模型 |
OAI-SearchBot |
用於搜尋。負責把網站呈現在 ChatGPT 的搜尋功能結果中 | 是。官方明講:選擇退出 OAI-SearchBot 的網站,不會出現在 ChatGPT 搜尋回答裡 |
ChatGPT-User |
用於 ChatGPT 與 Custom GPTs 的特定使用者動作。當使用者向 ChatGPT 提問時,它可能去造訪某個網頁 | 否。官方說明:因為這些動作是由使用者發起的,robots.txt 規則可能不適用 |
同一份官方文件另外還記載了一支 OAI-AdsBot,官方載明的用途是驗證廣告到達頁的安全性,這裡列出來備查。
另外兩支的官方完整 User-Agent 字串如下(GPTBot 那條已經寫在前面第 3 行的指令裡):
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
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
想多測幾支,就把第 3 行指令裡 -A 後面那串換掉,其他都不用動。
這張表對決策者的意義
把它翻成生意話,就是三句:
- 擋
GPTBot,影響的是「我的內容會不會被拿去訓練」。 這是一個關於資產與版權的決定。 - 擋
OAI-SearchBot,影響的是「我會不會出現在 ChatGPT 的搜尋結果」。 這是一個關於曝光與獲客的決定。 - 這兩件事沒有必然關係,可以分開決定。
一家公司完全可能想擋掉訓練、但非常想要曝光。如果負責設定的人把兩者當成同一個開關,就會發生「本來只想保護內容,結果連曝光一起關掉」的事——而且沒有任何錯誤訊息會通知你。
還有一個容易被忽略的細節:ChatGPT-User 官方明說 robots.txt 規則可能不適用,因為那是使用者主動發起的造訪。所以「我用 robots.txt 全部擋光就沒事了」這個假設,本身就不成立。
補一句邊界:以上三支爬蟲的用途與 robots.txt 行為,出自 OpenAI 官方文件。其他家(Anthropic、Perplexity、Google 等)的爬蟲各有各的規則,不能從 OpenAI 的規則類推,要用時請去對應廠商的官方文件查證。
如果你跑出來不是 200:403、429 與「比較小的回應」
我們自己站上這次跑出來是全數 200,所以以下這些狀況本次實測沒有遇到。這一節不是實測結果,是給你的判讀方向——當你的第 3 行印出的不是 200 時,該往哪裡想。
拿到 403:伺服器明確拒絕了這個請求。 重點來了:如果同一時間、同一個網址,一般瀏覽器 UA 拿得到 200,而 AI 爬蟲 UA 拿到 403,那就是針對 UA 的差別對待。這時候你翻 robots.txt 是翻不出東西的——robots.txt 這個機制本身不會產生 403,它只是一份「請求爬蟲自律」的聲明;會回 403 的是更前面的一層。
拿到 429:請求被限流了。 這個狀態碼的意思就是「請求太多」。要注意的是,限流規則有可能是針對特定 UA 設的,也可能只是你短時間打太多次。所以看到 429,先放慢速度重跑一次,確認它是穩定的行為還是一次性的。
狀態碼都是 200,但 AI 爬蟲拿到的位元組數明顯比較小。 這是最容易被漏掉的一種。沒有錯誤碼、沒有警告,只是回給爬蟲的內容被減量了。這裡說的「明顯」是指少掉一半以上那種量級,不是差幾百位元組的正常浮動。這就是為什麼第 3 行一定要比對位元組數,而不是只看狀態碼——只看狀態碼會讓你在這種情況下得到一個假的綠燈。
robots.txt 之外還有哪些層
這是本文希望決策者記住的一個結構性認知:robots.txt 乾淨,不等於爬蟲抓得到你的網站。
robots.txt 之外,至少還有這幾層可能把爬蟲擋在外面:
- CDN 或雲端服務的 bot 管理功能
- 防火牆規則
- 伺服器層的 UA 黑名單
這些層的共同特徵是:它們不寫在 robots.txt 裡,所以你光看 robots.txt 永遠看不到它們。 它們也不一定是誰刻意設定的——主機商或 CDN 的預設保護規則就可能造成同樣的結果,而如果你沒特別去翻那一層,就不會知道它在那裡。
而第 3 行指令的價值就在這裡:它是從外面實際去敲門,敲到的是所有層疊加之後的真實結果,而不是任何一層的設定值。這是它跟「打開 robots.txt 看一眼」最根本的差別。

這個自檢測不到什麼(誠實清單)
一個檢查方法的價值,一半在它測得到什麼,另一半在它明確講出自己測不到什麼。後者才是你判斷一份報告可不可信的依據。
以下是這次實測沒有證明、因此不能寫進任何結論的事:
- ❌ 沒有測到 AI 爬蟲實際來訪的頻率。 那要查伺服器的存取紀錄(access log),是另一件事、另一套方法,本次沒查。
- ❌ 沒有測到內容有沒有被收進任何 AI 的索引、有沒有被拿去用。 放行不等於被索引,被索引也不等於會被拿出來講。
- ❌ 沒有測到其他網路環境會不會被擋。 這次只從一台機器、一個對外 IP 打出去。同一個網站,換一個來源可能得到不同結果。
- ❌ 沒有測到 robots.txt 以外的封鎖層。 全數拿到 200 只能說明「這條路徑、這個時間、這個來源 IP 沒有被擋」。
- ❌ 沒有測到本站以外的任何網站。 這份實測數字只代表
ai-seo-hacker.cc,不能拿去代表任何其他網站的狀況。
還有一個時效性的提醒:上面那些數字綁定 2026 年 8 月 6 日。位元組數會隨著文章改版變動,robots.txt 內容會隨設定變動,連爬蟲的 UA 字串本身都帶版本號、會隨廠商改版而變。其中最容易悄悄過期的就是 UA 字串——版本號一改,你拿舊字串做的測試就可能測不到真實行為。所以重跑的時候,第一件事是先去官方文件對一次 UA 字串,再開始測。
這也是為什麼這是一個「自檢」而不是「一次性認證」。它便宜到你可以每季重跑一次,那才是它該有的用法。
第三步:第三、四層不是黑盒子,只是要換一套方法
看到這裡你可能會有一個很合理的反應:能免費自己驗的那層驗完了,真正想知道的那層還是不知道,那我到底要不要投?
這個反應合理,但前提有點悲觀過頭了。第三、四層確實不能「直接看」——沒有人能打開 ChatGPT 的索引查自己在不在裡面。但不能直接看不等於不能量。你可以用代理指標:不直接測量目標本身,而是測量一個會隨著目標一起變動的東西,然後看它的趨勢。
以下兩個是你自己就能開始做的。
代理指標一:伺服器 access log —— 爬蟲到底有沒有自己來
每一次有人(或機器)造訪你的網站,伺服器都會留下一行紀錄,裡面就包含來訪者的 User-Agent。把這份紀錄裡的 AI 爬蟲 UA 撈出來,你就能看到:它們到底來過沒有、隔多久來一次、抓的是哪些頁。
這件事三行自檢問不到。第 3 行問的是「我主動去敲門,門開不開」;access log 答的是「對方有沒有自己走進來」。前者是能力,後者是行為,兩個問題不一樣。
要注意的前提:這需要你的主機或 CDN 有開放 log 存取(有些便宜的共享主機沒有),而且要持續累積才有判讀價值——看單一天的紀錄,什麼都說明不了。
代理指標二:固定題組定期問 AI —— 品牌被提及的變化
這個方法很土法煉鋼,但它是少數你自己做得起來、又能長期比較的做法:
- 先定一組固定的問題。 挑你的潛在客戶真的會問的那種(不是你希望他們問的那種),數量固定、題目固定、寫下來。
- 每個月拿同一批問題,去問同一批 AI 工具。
- 記錄每一題的回答裡,有沒有出現你的品牌、有沒有引用到你的頁面。
重點全在「固定」兩個字:題目固定、頻率固定、記錄格式固定。單次的結果沒有意義——你要看的是同一組題目在幾個月之間往哪個方向變。
⚠️ 這套方法的限制要先講清楚,免得你拿它去做過度的結論:AI 的回答本身帶有隨機性,同一題問兩次可能得到不一樣的答案;而且它只覆蓋你選的那幾題,不是全貌。所以它是一個趨勢指標,不是精確度量。任何人拿這種資料跟你報一個很漂亮的精確數字,你都該問一句:這個數字是怎麼量出來的、樣本是什麼、抽了幾次。
為什麼這一步跟前面的自檢不是同一類工作
差別在這裡,而且這個差別決定了它該花多少成本:
| 三行自檢 | 代理指標 | |
|---|---|---|
| 做一次要多久 | 幾分鐘 | 每一輪都要重來 |
| 頻率 | 一次性,改版後重跑 | 必須持續、固定週期 |
| 產出 | 一個明確的是/否 | 一條需要判讀的趨勢 |
| 誰做得來 | 你自己 | 要有人固定執行與判讀 |
三行自檢之所以免費,是因為它問的是一個有確定答案的問題。代理指標之所以要花時間(或花錢請人做),是因為它問的是一個只能靠累積才看得出來的問題。
這也是為什麼「第一層驗不過就先別談後面」是對的順序:門是關的時候,你花再多力氣去量趨勢都不會有趨勢。
決策者怎麼用這三行
最後把它收成你實際會用到的場景。
場景一:發包前,先量一次基準。 在任何人開始動你的網站之前,跑一次,把輸出存下來。這份輸出就是你的起始狀態。沒有起始狀態,之後所有的「我們改善了」都無從比較。
場景二:收到「已完成 AI 爬蟲設定」的報告時,自己驗一次。 這不是不信任,而是這件事的驗證成本實在太低了,低到沒有理由不做。三行指令、幾分鐘的事。
場景三:改版、搬家、換主機、換 CDN 之後,一定要重跑。 這幾個動作都可能整份覆蓋掉 robots.txt、或重設外層的防護規則,而且過程中不會有任何人通知你。
場景四:拿它去問一個好問題。 如果對方給你的是「AI 曝光提升」這類說法,你可以問:這個數字是怎麼量出來的?如果對方拿的是爬蟲拿到 200 這種資料,那你已經知道,那只證明了門沒鎖,沒有證明客人走進來過。
這三行指令不會讓你變成 GEO 專家,但它會讓你不容易被含糊的說法帶著走。 對一個要決定錢往哪裡投的人來說,這就夠了。
常見問題 FAQ
三行指令跑完全部是 200,是不是代表 GEO 已經做好了?
不是。全部 200 只代表一件事:你的內容在第一道門沒有被擋住。內容會不會被收進 AI 的索引、會不會在使用者提問時被拿出來講,是後面完全不同的問題,這三行指令沒有能力回答。正確的理解是:這是你自己的內容要被 AI 拿去用的必要條件,不是充分條件。而且嚴格講,它也不是「品牌被 AI 提到」的必要條件——AI 可能是從新聞報導、目錄網站、社群討論裡提到你,那些來源不需要它讀得到你的站;官方文件也載明 ChatGPT-User 這支不受 robots.txt 約束。
我的 robots.txt 明明寫著 Allow,為什麼還要跑第 3 行?
因為 robots.txt 是你單方面的聲明,而不是實際發生的事。爬蟲要真正拿到內容,還得穿過 CDN 的 bot 管理、防火牆規則、伺服器層的 UA 黑名單這些層,而這些層的設定不會寫在 robots.txt 裡,你光看 robots.txt 永遠看不到它們。第 3 行的作用就是從外面實際敲一次門,拿到的是所有層疊加後的真實結果。順帶一提,這一層不一定是誰刻意設定的,主機商或 CDN 的預設值就可能造成同樣結果;除非你特地去翻,否則不會知道它在那裡。
擋掉 GPTBot 就等於不會出現在 ChatGPT 裡嗎?
不等於,這正是最常見的誤解。依 OpenAI 官方文件,GPTBot 負責抓取可能用於訓練生成式 AI 基礎模型的內容,把它設為 Disallow 代表你的內容不應被用於訓練;而負責把網站呈現在 ChatGPT 搜尋功能結果裡的是另一支 OAI-SearchBot,官方明講選擇退出 OAI-SearchBot 的網站不會出現在 ChatGPT 搜尋回答中。兩支爬蟲用途不同、後果不同,可以分開決定。另外還有一支 ChatGPT-User,官方說明因為是使用者主動發起的造訪,robots.txt 規則可能不適用。
我不是工程師,這些指令打在哪裡?會不會改壞我的網站?
Mac 按 Cmd + 空白鍵 搜「終端機」,Windows 按 Win + R 輸入 cmd 打開「命令提示字元」,把指令貼進去按 Enter 就好。Windows 請不要用 PowerShell,那裡的 curl 是別的指令的別名、參數不通,會直接報錯;真要用就把開頭改成 curl.exe。另外 Mac 寫法裡的 -o /dev/null 在 Windows 要改成 -o NUL。至於安全性:這三行做的都是唯讀的讀取動作,跟你用瀏覽器開自己的網頁是同一件事,不會寫入、不會修改任何設定。
為什麼一定要跑那個不存在的假路徑?感覺很多餘
因為它決定了你後面所有結果的判讀價值。有些網站不管收到什麼路徑都回 HTTP 200 加首頁內容,如果你的站是這種,那第 3 行不管怎麼跑都會是 200,而那個 200 完全不代表爬蟲讀到了你那篇文章,它讀到的是首頁。這一行應該印出 404。還有一個容易踩的坑:假路徑要跟你要測的文章在同一個目錄層級,因為 catch-all 常常發生在路由層,網站根目錄回 404 不代表 /blog/ 底下也會回 404。
一把你自己拿得動的尺
整理成三句話:
第一,「AI 爬蟲進不進得來」跟「內容有沒有被 AI 拿去用」是兩層事,前者你今天就能自己驗證,後者不能直接看、但可以用代理指標量趨勢——誰把後者講得像能精確測量,你就問他方法。
第二,驗第一層只需要三行指令:抓 robots.txt、確認同層級的假路徑會回真 404、換上官方完整 UA 抓同一頁比對狀態碼與位元組數,記得帶一組一般瀏覽器對照組。
第三,robots.txt 乾淨不等於爬蟲抓得到。真正會把爬蟲擋在外面的那幾層通常不寫在 robots.txt 裡,只有從外面實際敲門才看得到。
這篇沒有要你相信我們。它要給你的是一把你自己拿得動的尺——量你的網站,也量任何一個跟你談 GEO 的人,包括我們。能被自己驗證的東西,才有資格成為做決定的依據。

🎯 立即行動
如果三行跑出來不是 200:那是第一道門的問題,先解掉它——這件事拖著,後面投再多資源都會打折。
如果三行全綠:恭喜,但故事還沒完。你的下一個問題已經不是「門開不開」,而是「有沒有人走進來」——那要靠上面講的兩個代理指標,固定題組、持續記錄,才看得出方向。
兩種情況我們都可以陪你看一次。而且照這篇文章的邏輯,你也可以拿同一把尺來量我們——開口第一句就問:這個數字是怎麼量出來的?
延伸閱讀
- AI 搜尋爬蟲設定指南:這篇講的是怎麼設定,本文講的是設定完怎麼驗
- llms.txt 設定完整教學:本文拿來當測試標的的就是這一篇
- GEO 生成式引擎優化完整指南:把 AI 可見度放回整體策略裡看
- 內容分塊:讓 AI 讀得懂你的文章:爬蟲進得來之後,內容結構怎麼做
參考資料
- OpenAI 官方爬蟲說明文件(Bots)(2026-08-06 讀取)
- 本文 robots.txt、UA 差別對待、catch-all 自檢三項實測,執行日期 2026-08-06,目標站台為 ai-seo-hacker.cc,全程唯讀 HTTP GET




