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 封鎖低價值頁面,能引導爬蟲將資源集中在核心內容上,這也是落實 what-is-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-implementation-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 搜尋引擎中曝光的機會。根據 what-is-geo-ai-overviews 的策略,若封鎖了 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-complete-guide。
(二)兩者並存的實作建議
最佳實作方式是讓兩者並存於根目錄。透過 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 的事。這裡寫我的筆記——不追流量、不堆關鍵字,只寫自己想讀的文章。
- JUN 15, 2026
Crawl Budget 是什麼,大型網站才需要在意的爬取預算管理
用白話拆解 Crawl Budget(爬取預算)的兩個構成因素,告訴你網站到底多大才需要在意爬取效率,並提供診斷與優化的實作清單,避免小站被嚇到亂優化。
- JUN 15, 2026
狀態碼與 SEO,200、301、404、410、503 各自送出什麼訊號
一次看懂 HTTP 狀態碼怎麼影響爬取與索引。200 與 Soft 404 的陷阱、301 與 302 差別、404 該不該換成 410、503 維護模式怎麼設,附整站批次檢查與修復優先順序。
- JUN 15, 2026
網站搬家、改網址、換網域,不掉排名的遷移檢查清單
網站遷移最怕一上線就掉排名。這份檢查清單帶你從遷移前盤點、建立網址對應表、設定 301 轉址,到上線當天逐項驗證與遷移後監控,完整走一遍流程,把換網域、改版、HTTPS 升級的排名風險降到最低,並教你排名掉了怎麼診斷與回補。