robots.txt 完整指南,從基本語法到 AI 爬蟲時代的新挑戰
4 個 robots.txt 核心語法與 3 種網站應用情境解析。設定 Disallow 僅能阻擋抓取,無法防止頁面被索引,必須搭配 noindex 標籤。面對 GPTBot 與 ClaudeBot 等 AI 爬蟲,管理者需權衡封鎖模型訓練與放行 AI 搜尋曝光的利弊,精準管控抓取預算。
本文重點
- robots.txt 僅阻擋抓取無法防索引,頁面絕對隱藏需搭配 noindex 標籤。
- Disallow 與 Allow 衝突時,Googlebot 採最長字元比對,規則越明確者優先勝出。
- Google 已廢除 Crawl-delay;務必封鎖站內搜尋與購物車等動態路徑,防止預算遭消耗。
- GPTBot 屬模型訓練爬蟲,封鎖雖能保護版權,卻也會喪失在 AI 搜尋中的曝光紅利。
在進行技術 SEO 優化時,robots.txt 永遠是網站與搜尋引擎溝通的第一步。這份純文字檔案決定了哪些頁面可以被抓取、哪些應該被阻擋,寫錯一個字元就可能讓全站從搜尋結果中消失。本文將帶你掌握標準的 robots.txt 寫法與常見範例,並解析在 GPTBot、ClaudeBot 等 AI 爬蟲崛起的時代,網站管理者該如何制定全新的防護與曝光策略。
一、robots.txt 是什麼與為何每個網站根目錄都要有一份
robots.txt 遵循機器人排除標準(Robots Exclusion Protocol),是一個放置於網站根目錄的純文字檔案,用來指示搜尋引擎爬蟲哪些路徑允許抓取、哪些路徑禁止抓取。
(一)爬蟲到網站的第一站就是 robots.txt
當 Googlebot 或其他搜尋引擎爬蟲抵達任何網站時,第一個動作永遠是尋找 https://example.com/robots.txt。如果檔案存在,爬蟲會先下載並解析其中的規則,再依照規則決定後續的抓取路徑;如果檔案不存在(回傳 404),爬蟲就會預設全站皆可自由抓取。這確保了網站管理者擁有第一層次的流量與抓取控制權。
(二)為何 robots.txt 不是 SEO 必殺技卻不能沒有
設定 robots.txt 並不會直接提升關鍵字排名,但它是管理**抓取預算(Crawl Budget)**的核心工具。大型網站如果任由爬蟲抓取無限生成的動態網址、站內搜尋結果頁或無效的標籤頁,會浪費爬蟲資源,導致真正重要的新文章無法被即時收錄。透過 robots.txt 封鎖低價值頁面,能引導爬蟲將資源集中在核心內容上,這也是落實技術 SEO基礎優化的重要環節。
(三)robots.txt 與 noindex meta 的差別
根據 Google 官方 Search Central 文件,robots.txt 的 Disallow 指令僅能阻止「抓取(Crawl)」,無法完全阻止「索引(Index)」。如果一個被 Disallow 的頁面從外部網站獲得了反向連結,Google 依然可能將該網址編入索引(在搜尋結果中顯示「已建立索引,但遭到 robots.txt 封鎖」)。若要確保頁面絕對不被索引,必須允許爬蟲抓取該頁面,並在頁面 HTML 中加上 <meta name="robots" content="noindex"> 標籤。
二、robots.txt 基本語法與常見指令寫法
一份標準的 robots.txt 主要由 User-agent、Disallow、Allow 與 Sitemap 組成,透過這四個指令即可涵蓋 99% 的網站控制需求。
(一)用 User-agent 指定爬蟲身份與星號用法
User-agent 用來宣告接下來的規則是寫給哪一隻爬蟲看的。使用星號 * 代表套用到所有未被明確指定的爬蟲;若要針對特定爬蟲(如 Googlebot)設定專屬規則,則需明確寫出其名稱。
User-agent: *
Disallow: /admin/
User-agent: Googlebot
Disallow: /private/
(二)Disallow 與 Allow 的優先順序及路徑比對規則
Disallow 用於禁止抓取,Allow 則用於在被禁止的目錄中「開例外」允許抓取。當 disallow allow 規則發生衝突時,Googlebot 會採用最長字元比對原則(最明確的規則勝出)。
User-agent: *
Disallow: /blog/
Allow: /blog/seo/
在上述 robots.txt 寫法中,爬蟲會被禁止抓取 /blog/ 目錄下的所有內容,但 /blog/seo/ 路徑因為字元更長、規則更具體,因此會被破例允許抓取。
(三)Sitemap 指令位置與多 Sitemap 寫法
Sitemap 指令用來告訴爬蟲網站的 XML 網站地圖位置,幫助爬蟲更快發現所有網頁。這個指令不受 User-agent 區塊限制,通常放置於檔案的最下方。若網站有多個 Sitemap(例如文章與商品分開),可以直接換行並列,詳見 Sitemap 實作與 GSC 提交。
Sitemap: https://example.com/sitemap-articles.xml
Sitemap: https://example.com/sitemap-products.xml
(四)Crawl-delay 的作用與 Google 不支援的原因
Crawl-delay 指令用來限制爬蟲每次抓取的秒數間隔,以減輕伺服器負載。目前 Bingbot 與 Yandex 仍支援此指令,但 Google 已經全面廢棄對 Crawl-delay 的支援。若需調整 Googlebot 的抓取頻率,必須直接前往 Google Search Console 的「抓取頻率」設定頁面進行手動調整。
三、常見網站的 robots.txt 實戰範例結構對照
不同類型的網站有各自需要保護的系統路徑與動態參數,以下提供三種常見情境的 robots.txt 範例。
(一)部落格網站阻擋後台與搜尋結果頁
以 WordPress 為主的部落格網站,最需要阻擋的是登入後台路徑以及站內搜尋產生的動態網址,避免這些無意義的頁面消耗抓取預算。
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /*?s=*
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xml
(二)電商網站阻擋購物車與結帳流程
電商網站除了後台,還包含購物車、結帳流程、會員中心,以及商品列表頁無窮無盡的篩選參數(如價格排序、尺寸篩選),這些都必須嚴格封鎖。
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /*?*sort=*
Disallow: /*?*filter=*
Sitemap: https://example.com/sitemap.xml
(三)多語系網站阻擋特定語言版本
當多語系網站的某個語言版本(例如法文版 /fr/)尚在建置中,或不希望被特定地區搜尋引擎抓取時,可以針對該目錄進行封鎖。
User-agent: *
Disallow: /fr/
Disallow: /de/
Sitemap: https://example.com/en/sitemap.xml
四、AI 爬蟲時代的新挑戰與 GPTBot 等爬蟲的阻擋策略
隨著生成式 AI 爆發,各大 AI 公司紛紛派出爬蟲抓取全網資料以訓練模型或提供即時問答。網站管理者現在必須面對「是否該讓 AI 抓取內容」的全新決策。
(一)三大 AI 爬蟲的實際行為差異
市場上主流的 AI 爬蟲目的各有不同:OpenAI 的 GPTBot 專門抓取網頁資料用於訓練未來的 GPT 模型;Anthropic 的 ClaudeBot 也是以模型訓練與資料分析為主;而 PerplexityBot 以及 OpenAI 近期推出的 OAI-SearchBot,則是為了提供 AI 搜尋引擎(RAG)的即時引用與摘要。區分「訓練用」與「即時搜尋用」爬蟲,是制定阻擋策略的前提。
(二)保護內容與失去 AI 曝光的權衡
全面封鎖 AI 爬蟲雖然能保護網站的智慧財產權,避免內容被免費拿去訓練模型,但也意味著主動放棄了在 AI 搜尋引擎中曝光的機會。根據 GEO(生成式引擎優化) 的策略,若封鎖了 OAI-SearchBot 或 PerplexityBot,當使用者在 ChatGPT 或 Perplexity 搜尋相關問題時,你的網站將無法作為來源被引用,這在 AI 搜尋市佔率攀升的現今,可能造成可觀的流量損失。
(三)部分阻擋與部分開放的折衷寫法
現階段多數大型媒體與企業網站採取的折衷策略是:阻擋純訓練用的爬蟲,但放行用於即時搜尋與引用的爬蟲。
## 阻擋用於模型訓練的爬蟲
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
## 允許用於即時 AI 搜尋的爬蟲
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
五、robots.txt 與 llms.txt 的職責邊界及互補關係
在 AI 時代,除了傳統的 robots.txt,社群也開始推廣 llms.txt 這個新標準,兩者在網站架構中扮演著截然不同但互補的角色。
(一)robots.txt 管理抓取權限而 llms.txt 提供內容使用指引
探討 robots.txt vs llms.txt 的核心差異在於:robots.txt 是強制性的「權限控制」,告訴爬蟲哪裡可以去、哪裡不能去;而 llms.txt 則是一份 Markdown 格式的「內容指引」,專門設計給大語言模型閱讀,提供網站核心架構、重點內容摘要與背景知識。robots.txt 決定了門有沒有上鎖,llms.txt 則是進門後遞上的一份導覽手冊,詳見 llms.txt 完整指南。
(二)兩者並存的實作建議
最佳實作方式是讓兩者並存於根目錄。透過 robots.txt 設定好 AI 爬蟲的抓取底線後,在根目錄放置 llms.txt,將網站最精華、最希望被 AI 模型正確理解的內容結構化地整理在其中。這樣既能防止後台機密被 AI 抓走,又能確保 AI 在生成摘要時能依據你提供的精確資訊。
六、寫錯 robots.txt 導致全站消失或機密外洩的常見錯誤
robots.txt 的語法雖然簡單,但一個斜線的失誤就可能引發嚴重的 SEO 災難。
(一)Disallow 根目錄導致全站從 Google 消失的案例
最致命的錯誤是在網站上線時,忘記移除測試環境的防護指令。只要寫下 Disallow: /,等同於拒絕爬蟲進入網站的任何一個角落。這會導致 Google 在幾天內將網站從搜尋結果中大規模剔除,直到指令被修正且爬蟲重新造訪為止。
(二)想隱藏的後台路徑反而透過 robots.txt 公告天下
許多開發者會把不想被人發現的機密路徑(如 /secret-admin-login-2024/)寫進 robots.txt 的 Disallow 規則中。然而,robots.txt 是一個完全公開的檔案,任何人只要在瀏覽器網址列輸入就能查看。把機密路徑寫在裡面,反而等於向駭客提供了攻擊目標清單。正確的做法是不在 robots.txt 中提及該路徑,並透過伺服器端的帳號密碼驗證來保護。
(三)修改 robots.txt 後 Google 不更新的處理方式
Googlebot 對 robots.txt 的快取時間大約為 24 小時。如果你修正了錯誤的規則,Google 不會立刻知道。此時必須進入 Google Search Console,透過網址審查工具請求重新建立索引,或者在 GSC 的 robots.txt 報表中主動提交更新,強制 Google 抓取最新版本的檔案。
七、測試與驗證 robots.txt 設定的方法
在上線任何 robots.txt 變更前,務必透過客觀工具進行驗證,確保規則如預期般運作。
(一)使用 GSC 的 robots.txt 測試工具
Google Search Console 內建了 robots.txt 報表與測試工具。你可以在工具中輸入特定的網址,並選擇不同的 User-agent(如 Googlebot 智慧型手機版),系統會直接告訴你該網址是呈現「允許」還是「遭到封鎖」,以及是觸發了哪一行規則。
(二)透過 curl 指令與線上測試器驗證
對於進階技術人員,可以使用終端機的 curl -O https://example.com/robots.txt 指令快速檢查伺服器回傳的檔案狀態碼是否為 200。此外,也可利用 Merkle 等第三方技術 SEO 網站提供的線上 robots.txt 測試器,快速模擬多種不同搜尋引擎爬蟲的抓取結果。
(三)robots.txt 變更後的快取與索引期影響
當你解除某個頁面的封鎖後,該頁面不會立刻出現在搜尋結果中。爬蟲需要先更新對 robots.txt 的快取,接著將解封的網址排入抓取佇列,最後進行渲染與索引。整個過程根據網站權重不同,可能需要數天到數週的時間。
八、FAQ
(一)Q1: robots.txt 必要嗎?沒有的話會怎樣
即使沒有 robots.txt,網站依然能正常運作且被搜尋引擎收錄。當伺服器針對 robots.txt 請求回傳 404 狀態碼時,Googlebot 會將其視為「全站皆可抓取」。但對於有後台管理系統、會員中心或大量動態參數的網站來說,缺少 robots.txt 會導致抓取預算嚴重浪費。
(二)Q2: 擋了 GPTBot 會影響到 Google 排名嗎
完全不會。Google 的搜尋排名演算法只依賴 Googlebot 的抓取結果。阻擋 OpenAI 的 GPTBot 或 Anthropic 的 ClaudeBot 僅會影響你的內容是否被用於訓練第三方 AI 模型,與 Google 搜尋引擎的 SEO 表現毫無關聯。
(三)Q3: robots.txt 寫錯了多久會被 Google 重新抓取
Google 通常每天會自動重新抓取一次 robots.txt 檔案。如果發現寫錯導致嚴重問題,修正後應立即前往 Google Search Console 的設定區塊,主動要求 Google 重新擷取 robots.txt,通常在數小時內就能更新快取。
(四)Q4: 動態網站要怎麼產 robots.txt
現代框架(如 Next.js、Nuxt3)或 CMS 系統通常支援動態生成 robots.txt。你可以透過編寫伺服器端腳本(例如在 Next.js 中建立 robots.ts),根據當下環境變數(測試站或正式站)自動輸出對應的 Disallow 與 Allow 規則,避免測試站內容意外被索引。
(五)Q5: 內容被 AI 爬走了,現在擋還來得及嗎
如果你現在才在 robots.txt 中加入阻擋 GPTBot 的規則,只能防止未來的內容被抓取。對於過去已經被爬蟲抓走並進入訓練資料庫的內容,robots.txt 無法產生溯及既往的刪除效果。
張家偉 Albert Chang
行銷領域工作五年,其中四年幾乎每天都在想 SEO 的事。這裡寫我的筆記——不追流量、不堆關鍵字,只寫自己想讀的文章。
- JUL 20, 2026
SEO 健檢完整流程,用 GSC 和 Screaming Frog 免費做完網站體檢
三層健檢架構加 20 項檢查清單,從抓取索引、站內結構到內容成效,一套可重複執行的 SEO 健檢 SOP。全程只用 GSC、Screaming Frog 免費版與 PageSpeed Insights,不用付費工具。附本站實際健檢案例:孤兒站權重斷鏈、177 個薄弱標籤頁、AI 爬蟲誤封——三個問題都是照這套流程抓出來的。
- JUL 20, 2026
子網域還是子目錄,用我自己網站的三個月教訓給你答案
子網域與子目錄的 SEO 差異拆解加一份完整的第一手案例:本站選了子網域,三個月後確診孤兒站——零跨域連結、舊文章 404、權重從零累積。整理 Google 官方立場、業界遷移數據、決策框架,以及已經選了子網域的四步補救清單。想省三個月學費,看這篇就好。
- JUL 20, 2026
網站速度優化實戰,拿自己 LCP 11.5 秒的網站開刀
寫這篇之前先用 Lighthouse 測了本站:行動版效能 64 分、LCP 11.5 秒——靜態網站不等於快。用這份真實診斷示範網站速度優化的完整流程:從指標判讀、抓出三大元凶(中文字型多字重全載、肥大 CSS、第三方腳本),到 LCP、INP、CLS 各自的修法與中文網站專屬的字型策略。