robots.txt 是放在網站根目錄的純文字檔,用來告訴搜尋引擎的檢索器「哪些網址不要抓」。一般中小企業網站只需要三行:User-agent: *、視需要加上幾行 Disallow:、最後一行 Sitemap: 指向網站地圖。要記住兩個原則:robots.txt 管的是「抓取」不是「收錄」,想讓網頁不出現在搜尋結果要用 noindex;寫錯一行 Disallow: / 就會讓整站消失在 Google,所以改完一定要用 Search Console 的 robots.txt 報表驗證。
本篇屬於本站〈技術性 SEO 入門〉叢集。如果您還不清楚搜尋引擎的抓取與索引是兩件事,建議先看〈搜尋引擎如何運作〉,再回來看這篇的實作。
robots.txt 能做什麼、不能做什麼
robots.txt 只能建議檢索器「不要抓取」某些網址,不能保證網頁不被收錄、不能隱藏內容,也不是所有檢索器都會遵守。
Google 官方文件對 robots.txt 的定義很直接:這個檔案「告訴搜尋引擎檢索器可以存取網站上的哪些網址」,主要用途是管理檢索流量、避免伺服器被過多請求拖垮。Google 同時明確寫著:robots.txt「不是讓網頁不出現在 Google 的機制」。
這句話在實務上有三個後果,我們替客戶健檢時最常需要解釋的就是這三件事:
- 被 Disallow 的網頁仍可能被收錄。如果其他網站連向那個網址,Google 可能在沒有抓取內容的情況下把網址列入索引,搜尋結果裡會出現一條沒有描述文字的結果。
- robots.txt 是公開檔案。任何人打開
您的網域/robots.txt都看得到。把後台路徑、未公開的活動頁寫進去,等於把地圖交給不該看的人。 - 不是每個檢索器都遵守。Google、Bing 等主流搜尋引擎會遵守,但惡意爬蟲不會;要真正擋住存取,得靠伺服器層的密碼保護或 IP 限制。
想讓某個網頁「不要出現在搜尋結果」,正確工具是 noindex(寫在網頁的 robots meta 標籤或 HTTP 標頭),而且要讓 Google 抓得到那一頁才讀得到 noindex。這是本文後面「常見錯誤」的第一條,先記起來。
robots.txt 的四種指令與寫法規則
Google 支援的 robots.txt 指令只有四種:User-agent 指定對象、Disallow 禁止路徑、Allow 開放例外、Sitemap 標示網站地圖位置;其他寫法(例如 Crawl-delay)Google 一律忽略。
1. 檔案位置與格式
- 檔名固定是
robots.txt,放在網站根目錄,例如https://www.example.com/robots.txt。放在子目錄無效。 - 一個主機只有一份,而且只對同一個「協定+主機+連接埠」生效:
https://www.example.com/robots.txt管不到https://shop.example.com/,也管不到http://版本。 - 純文字、UTF-8 編碼。Google 會忽略檔頭的 BOM 與無法解析的行。
- 檔案上限 500 KiB,超過的部分 Google 直接忽略。一般網站不會碰到,但用外掛自動產生規則的電商站要留意。
2. 四種指令
| 指令 | 作用 | 寫法要點 |
|---|---|---|
| User-agent | 指定這一組規則對哪個檢索器生效 | 每組第一行;* 代表所有檢索器(AdsBot 例外,必須點名);不分大小寫 |
| Disallow | 禁止抓取的路徑 | 以 / 開頭;指目錄時結尾也要 /;路徑區分大小寫 |
| Allow | 在被禁止的目錄裡開放特定子目錄或檔案 | 以 / 開頭;用來對 Disallow 開例外 |
| Sitemap | 告訴檢索器網站地圖在哪裡 | 必須是完整網址(含 https://);可以寫多行;不屬於任何 User-agent 組 |
3. 三條語法規則
- 路徑區分大小寫。
Disallow: /file.asp擋的是/file.asp,擋不到/FILE.asp。 - 萬用字元。除了 Sitemap 之外的指令都支援
*(任意字串);$代表網址結尾,例如Disallow: /*.pdf$擋所有 PDF。 - 註解用
#。該符號之後到行尾的內容會被忽略,適合寫「這條規則誰加的、為什麼」,半年後回頭看才知道能不能拿掉。
可直接套用的 robots.txt 範例
大多數中小企業網站的 robots.txt 只需要「全部開放+擋掉站內搜尋與後台+標示 Sitemap」三段;規則越少,出錯的機會越小。
範例 1:一般企業形象網站(最常用)
User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /*?s=
Sitemap: https://www.example.com/sitemap.xml
這份檔案的意思是:所有檢索器都可以抓整個網站,只有後台目錄、站內搜尋結果頁(路徑版與帶 ?s= 參數的版本)不要抓;網站地圖在根目錄。沒有列出的路徑一律視為可以抓,這是 Google 的預設假設。
範例 2:WordPress 網站
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.example.com/wp-sitemap.xml
這是 WordPress 核心預設產生的內容,多數情況下不必改。注意兩點:第一,admin-ajax.php 要用 Allow 開回來,因為不少外掛的前台功能會透過它載入內容;第二,Sitemap 那行請改成您實際使用的網址,裝了 Yoast SEO 或 Rank Math 的網站通常是 /sitemap_index.xml,未裝 SEO 外掛則是核心的 /wp-sitemap.xml。
不要擋 /wp-content/ 或 /wp-includes/。這是十年前教學留下的習慣,現在 Googlebot 需要讀取 CSS 與 JavaScript 才能正確渲染網頁;把這兩個目錄擋掉,Search Console 會回報資源被封鎖,行動裝置相容性與 Core Web Vitals 判讀都會受影響。
範例 3:針對特定檢索器另外設定
User-agent: Googlebot
Disallow: /promo-draft/
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xml
這份檔案有三組規則:Googlebot 不抓草稿目錄、GPTBot 完全不抓、其他檢索器全部開放。這裡有一個很多人踩到的規則:一個檢索器只會套用一組規則,也就是第一個最符合它名稱的那組。Googlebot 讀到自己的那組之後,就不會再看 User-agent: * 底下的內容,所以要給 Googlebot 的規則必須完整寫在它自己那組裡。
Google 怎麼判讀 robots.txt:您該知道的六條規則
Google 對 robots.txt 的處理有明確規格:規則衝突時取最長路徑、平手時取寬鬆那條、檔案快取最長 24 小時、找不到檔案視為全站開放、伺服器錯誤則暫停抓取。
以下六條全部來自 Google 的 robots.txt 規格文件(2026-08 查證)。這些不是 SEO 技巧,而是 Google 實際的運作方式,弄懂之後大部分「為什麼 Google 沒照我的 robots.txt 做」的問題都有答案。
- 最具體的路徑優先
Allow 與 Disallow 衝突時,Google 採用「符合字元最多」的那條規則。
Disallow: /blog/加Allow: /blog/seo/的結果是/blog/seo/底下可以抓,其餘/blog/不抓。 - 平手時採最寬鬆的規則 兩條規則長度相同時,Google 選擇限制較少的那條,也就是 Allow 勝出。
- 快取最長 24 小時 Google 通常把 robots.txt 內容快取最多 24 小時;改完檔案後 Googlebot 不一定馬上讀到新版,這段時間內的抓取仍依舊規則。急著生效可以在 Search Console 的 robots.txt 報表按「要求重新檢索」。
- 4xx 視為沒有限制 robots.txt 回應 404、403 等 4xx 狀態(429 除外)時,Google 當作這個網站沒有 robots.txt,整站可以抓。所以「沒有 robots.txt」本身不是問題,很多小型網站根本不需要這個檔案。
- 5xx 會讓 Google 暫停抓取 robots.txt 回應伺服器錯誤時,Google 前 12 小時會停止抓取整個網站並持續重試;之後若還抓不到,會沿用先前快取的版本最多 30 天;再之後才視為沒有限制。這是「網站明明正常,收錄卻突然停住」的隱藏原因之一,排查時要先確認 robots.txt 本身的 HTTP 狀態碼。
- Crawl-delay 無效
Google 不支援
Crawl-delay,Search Console 過去的「檢索頻率限制」設定也已於 2024 年 1 月移除。想讓 Googlebot 抓慢一點,現行做法是讓伺服器在負載過高時回應 503 或 429,Googlebot 會自動降低頻率;寫在 robots.txt 裡沒有作用。
AI 檢索器該不該擋?GPTBot、OAI-SearchBot、Google-Extended 怎麼設
想被 ChatGPT 搜尋引用就不要擋 OAI-SearchBot;擋 GPTBot 只影響模型訓練、不影響引用;Google-Extended 只管 Gemini 的訓練與資料佐證,Google 官方明示它不影響 Google 搜尋的收錄與排名。
2026 年的 robots.txt 多了一個新任務:管理 AI 公司的檢索器。這一段是我們替客戶做 GEO(Generative Engine Optimization,生成式引擎優化)健檢時的固定項目,因為不少網站在 2023 年跟風把所有 AI 檢索器全擋掉,到現在都不知道自己為什麼從來不會被 ChatGPT 引用。
| User-agent | 所屬 | 用途 | 擋掉之後 |
|---|---|---|---|
| OAI-SearchBot | OpenAI | ChatGPT 搜尋功能的檢索與索引 | 網站不會出現在 ChatGPT 搜尋結果與引用來源中 |
| GPTBot | OpenAI | 蒐集內容供模型訓練 | 內容不用於訓練;OpenAI 明示這與 ChatGPT 搜尋引用互不影響 |
| ChatGPT-User | OpenAI | 使用者在對話中要求讀取某網頁時的即時抓取 | 屬使用者觸發的請求,OpenAI 說明不一定遵守 robots.txt |
| Google-Extended | 控制內容是否用於 Gemini 模型訓練與 Gemini/Vertex AI 的資料佐證(grounding) | 官方文件:不影響網站在 Google 搜尋的收錄,也不是排名訊號 | |
| Googlebot | Google 搜尋的主要檢索器,AI Overviews 與 AI 模式的引用來源也取自它抓取的索引 | 整站從 Google 搜尋與 AI 功能消失,任何情況都不要擋 |
依此表,我們給客戶的預設建議是:不擋 OAI-SearchBot、不擋 Googlebot;GPTBot 與 Google-Extended 依公司對「內容被用於訓練」的立場決定,這是著作權與商業判斷,不是 SEO 問題。要注意的是,擋 Google 的 AI 功能(AI Overviews、AI 模式)不能靠 Google-Extended,那要用 nosnippet 或 max-snippet 等 robots meta 指令,細節可看本站〈AI 摘要(AI Overviews)是什麼?網站怎麼被選進去〉。
另外常被問到的 llms.txt 與 robots.txt 是兩回事:llms.txt 是給大型語言模型看的內容導覽提案,目前沒有主要引擎確認採用;robots.txt 才是所有檢索器實際遵循的標準。兩者的差別本站另有〈llms.txt 是什麼?該不該做?〉專文。
robots.txt 常見錯誤與排除
robots.txt 出事的原因九成集中在五種:用它來做 noindex、上線後忘了拿掉測試站的 Disallow: /、擋住 CSS 與 JavaScript、規則分組寫錯、Sitemap 寫成相對路徑。
以下五種是我們在網站健檢與改版承接案中實際反覆看到的狀況,依出現頻率排列。
錯誤 1:用 Disallow 當 noindex 用
想讓某頁不出現在搜尋結果,卻把它寫進 Disallow。結果是 Google 抓不到那一頁,也讀不到頁面上的 noindex 標記,網址反而以「沒有內容的結果」殘留在索引裡。正確做法是讓 Google 抓得到那一頁,並在頁面加上 <meta name="robots" content="noindex">;確認已從索引移除後,才考慮是否要再用 Disallow 節省抓取。
錯誤 2:測試站的 Disallow: / 跟著上線
網站改版時,開發環境通常會放一份 Disallow: / 避免測試站被收錄;正式上線時整個目錄複製過去,這一行也跟著上線。整站收錄會在幾天到幾週內逐步消失,流量圖看起來像被演算法懲罰。我們處理〈網站改版不掉排名的檢查清單〉時,上線當天的第一項就是打開正式站的 robots.txt 確認這一行不在。
錯誤 3:擋住 CSS、JavaScript 或圖片目錄
Googlebot 需要載入 CSS 與 JavaScript 才能像瀏覽器一樣渲染網頁。擋掉 /css/、/js/、/wp-includes/ 之類的目錄,Google 看到的是一個排版錯亂、內容不完整的頁面,行動裝置相容性與網頁體驗的判讀都會失真。Search Console 的「網址審查」工具可以看「已檢索的網頁」與「其他資訊」中被封鎖的資源清單,健檢時務必看一眼。
錯誤 4:規則分組寫錯
最常見的形式是:先寫了 User-agent: * 底下一堆 Disallow,後面又加一組 User-agent: Googlebot 只寫一行。結果 Googlebot 只套用自己那一組,前面對所有檢索器的限制對它完全無效。原則是:每一組都要自己完整,不要假設會「繼承」* 那組。
錯誤 5:Sitemap 寫成相對路徑或指向舊網址
Sitemap: /sitemap.xml 不符合規格,必須寫完整網址。另一個常見狀況是網站已改成 https 或換了網域,robots.txt 裡的 Sitemap 還指向舊網址,檢索器會拿到 301 或 404。改網址時,robots.txt 的 Sitemap 行要一起改,這與〈301 轉址怎麼做〉一文中的改網址檢核是同一件事。
改完 robots.txt 之後的檢核清單
每次修改 robots.txt 後要做四件事:用無痕視窗打開檔案確認內容、在 Search Console 的 robots.txt 報表看 Google 抓到的版本、用網址審查工具測試關鍵網頁是否可抓、七天後回頭看網頁索引報表有沒有「遭到 robots.txt 封鎖」暴增。
- 用無痕視窗開啟
您的網域/robots.txt。確認回應 200、內容是最新版、沒有多餘的 HTML 或 BOM 造成解析錯誤。 - Search Console → 設定 → robots.txt 報表。這份報表在 2023 年底取代舊的 robots.txt 測試工具,會列出 Google 最近抓到的版本、抓取時間、HTTP 狀態與解析出的規則數;若顯示的內容跟您線上的不同,按「要求重新檢索」。
- 網址審查工具測三個網址:首頁、一個主要產品或服務頁、一個您刻意要擋的網址。前兩個應顯示「可以檢索」,第三個應顯示「遭到 robots.txt 封鎖」。
- 七天後看網頁索引報表。「遭到 robots.txt 封鎖」這個原因的網址數量若明顯增加,且裡面有您想要收錄的頁面,立刻回頭修規則。
- 把這次修改記在 robots.txt 的
#註解裡。寫日期與原因,日後接手的人才知道哪些規則還需要。
常見問題 FAQ
網站一定要有 robots.txt 嗎?
不一定。Google 找不到 robots.txt(回應 404)時,會視為整站都可以抓取,網站照常收錄。小型形象網站沒有需要擋的路徑,可以不放;但放一份只寫 Sitemap 位置的 robots.txt 通常有利無害。
robots.txt 和 noindex 有什麼不同?
robots.txt 管「能不能抓取」,noindex 管「能不能出現在搜尋結果」。想移除某頁的收錄用 noindex,而且不能同時用 robots.txt 擋住那一頁,否則 Google 讀不到 noindex 指令。
改了 robots.txt,多久會生效?
Google 通常在 24 小時內重新讀取。這是 Google 快取 robots.txt 的上限;想加速可在 Search Console 的 robots.txt 報表按「要求重新檢索」。至於被封鎖的網頁從搜尋結果消失或恢復,要等 Google 重新抓取那些網頁,時間從幾天到幾週不等。
WordPress 的 robots.txt 在哪裡改?
WordPress 預設產生的是「虛擬」robots.txt,主機上沒有實體檔案。要修改可以透過 Yoast SEO 或 Rank Math 的檔案編輯功能,或在網站根目錄自行建立實體的 robots.txt(實體檔案會覆蓋虛擬版本)。
要擋 AI 檢索器嗎?
看目的。想被 ChatGPT 搜尋引用就不要擋 OAI-SearchBot;不希望內容用於模型訓練可以擋 GPTBot 與 Google-Extended,這兩者依官方說明都不影響搜尋引用與 Google 排名。Googlebot 在任何情況下都不要擋。
robots.txt 可以擋圖片被 Google 圖片搜尋收錄嗎?
可以,用 Googlebot-Image 這個 User-agent。例如 User-agent: Googlebot-Image 加 Disallow: / 會讓 Google 圖片搜尋不再抓取您的圖片,但一般網頁搜尋不受影響。要注意已收錄的圖片需要一段時間才會從結果移除。
更新紀錄
- 2026 年 8 月 28 日:初版發布。指令規則、狀態碼處理與 500 KiB 上限依 Google robots.txt 規格文件(2025-12 更新版)查證;AI 檢索器名稱與用途依 OpenAI 與 Google 官方檢索器文件查證。
- 下次檢視:AI 檢索器清單變動快,本文預計每半年重新查證一次並更新本欄。
結論:robots.txt 寫得少比寫得多安全
robots.txt 是整個技術 SEO 裡最短的一份檔案,卻是殺傷力最大的一份:寫對了幾乎沒有加分,寫錯一行可以讓整站從 Google 消失。對大多數中小企業網站來說,最好的 robots.txt 就是「全部開放、擋掉後台與站內搜尋、寫上 Sitemap」三段,然後把 noindex 的工作交給網頁本身。
2026 年多出來的功課是 AI 檢索器:先決定公司對「內容被拿去訓練」的立場,再對應到 GPTBot 與 Google-Extended;至於 OAI-SearchBot 與 Googlebot,只要您還希望被搜尋引擎和 AI 引用,就不要擋。
不確定您的 robots.txt 有沒有擋錯?我們提供免費搜尋健檢,會實際讀取您網站的 robots.txt 與 Search Console 的 robots.txt 報表,列出被封鎖的重要網址與資源,並告訴您哪幾條規則可以直接拿掉。
robots.txt 只是抓取控制的第一步;接下來請看〈sitemap.xml 是什麼?怎麼產生、怎麼提交〉,把「不要抓什麼」與「要抓什麼」兩邊都設定完整。
參考來源
- Google,〈Introduction to robots.txt(robots.txt 簡介)〉,Google Search Central,最後更新 2025-12,2026-08-28 查證。
- Google,〈How to write and submit a robots.txt file(如何撰寫與提交 robots.txt)〉,Google Search Central,2026-08-28 查證。
- Google,〈How Google interprets the robots.txt specification(Google 如何解讀 robots.txt 規格)〉,Google Search Central,2026-08-28 查證。
- Google,〈Google's common crawlers(Google 常用檢索器,含 Google-Extended 說明)〉,Google Search Central,2026-08-28 查證。
- OpenAI,〈Overview of OpenAI Crawlers(OpenAI 檢索器總覽)〉,OpenAI Developers,2026-08-28 查證。
- 轉角網路SEO行銷,〈搜尋引擎如何運作〉,corners.com.tw,本站自有內容。