作者|瞻新資訊 陳俊鳴顧問(資深SEO顧問・搜尋流量與銷售漏斗規劃)
網站做好之後,多數人會關心「怎麼被 Google 收錄」,卻很少認真想過「哪些頁面不該被收錄」。robots.txt 和 meta robots,就是專門處理這件事的兩個機制,也是網站 SEO 優化裡容易被忽略的一塊基本功。它們名字聽起來很像,運作方式卻完全不同——搞混這兩個東西,是不少網站在 SEO 上吃悶虧、卻始終找不到原因的常見起點。
這篇文章把 robots.txt、meta robots,還有比較少人知道的 X-Robots-Tag 與 AI 訓練爬蟲控制,一次整理清楚:它們各自負責什麼、常見誤解出在哪裡,以及一個實際會發生的設定失誤,是怎麼一步步造成的。
Robots.txt 是什麼?它在網站裡負責什麼工作
robots.txt 是一個放在網站根目錄的純文字檔案(網址通常是「你的網域/robots.txt」),作用是告訴搜尋引擎的爬蟲:這個網站裡,哪些路徑可以抓、哪些不要抓。
可以把它想成大樓一樓櫃檯貼的公告牌:訪客(爬蟲)進大樓前,會先看一眼公告牌上寫的「幾樓開放參觀、幾樓謝絕進入」,再照著規則行動。公告牌管的是「能不能上樓」,不是「上樓之後看到什麼」。
robots.txt 的基本語法只有幾個關鍵欄位:
- User-agent:這條規則要套用在哪一種爬蟲上,星號「*」代表所有爬蟲。
- Disallow:不希望被抓取的路徑。
- Allow:允許被抓取的路徑(通常用在「大範圍擋住、但裡面某個小路徑例外」的情境)。
- Sitemap:告訴爬蟲網站地圖放在哪裡,讓它更有效率找到重要頁面。
一份簡單的 robots.txt 可能長這樣:
- `User-agent: *`
- `Disallow: /wp-admin/`
- `Allow: /wp-admin/admin-ajax.php`
- `Sitemap: https://example.com/sitemap.xml`
有一件事得先說清楚:robots.txt 是一種「協議」,不是強制的安全機制。正規搜尋引擎(Google、Bing)會遵守它,但惡意爬蟲、資料抓取工具不一定理會。網站裡如果有真正機敏的內容,靠 robots.txt「藏起來」是沒有用的——那是權限控管該處理的事,不是這個檔案的工作。
Meta Robots 又是什麼?跟 Robots.txt 有什麼不一樣
如果 robots.txt 是大樓公告牌,管的是整棟樓或整個樓層,那 meta robots 就是貼在「每一扇門」上的告示,只管這一個房間,也就是這一個網頁。

meta robots 是寫在網頁 HTML 原始碼 `<head>` 區塊裡的一段標籤,用來告訴搜尋引擎:這個頁面該不該被收錄進索引、頁面上的連結該不該被繼續追蹤。常見寫法像這樣:`<meta name=”robots” content=”noindex, nofollow”>`。
index/noindex、follow/nofollow 分別是什麼意思
這四個詞是 meta robots 最核心的組合,拆開來看其實不難懂:
- index:允許這個頁面出現在搜尋結果裡(大部分頁面預設都是這個狀態,不特別寫也一樣)。
- noindex:不要把這個頁面放進搜尋結果,常用在會員頁、感謝頁、內部搜尋結果頁這類不希望被搜到的頁面。
- follow:允許爬蟲繼續追蹤這個頁面上的連結,前往下一個頁面。
- nofollow:不要追蹤這個頁面上的連結。
例如常見的「感謝頁」(使用者填完表單後看到的頁面),適合用「noindex, follow」:不希望這頁出現在搜尋結果裡,但頁面上如果有其他站內連結,仍然可以讓爬蟲繼續探索。
多數人搞混的地方:Disallow 不等於 Noindex
這是全文最重要的一個觀念,也是最多人搞錯的地方:robots.txt 的 Disallow,管的是「爬不爬」;meta robots 的 noindex,管的是「收不收錄」。這是兩件不同的事,不能互相替代。
很多人直覺以為,只要在 robots.txt 裡把某個頁面 Disallow 掉,這個頁面就不會出現在 Google 搜尋結果裡。實際上未必如此——如果網路上其他地方(例如別的網站、社群分享)有連結指向這個被 Disallow 的頁面,Google 仍然可能把這個網址收錄進索引,只是因為爬蟲被擋住、抓不到頁面內容,搜尋結果通常只會顯示網址,看不到標題和描述摘要。
換句話說,Disallow 只能阻止爬蟲「抓取」網頁內容,不保證頁面不會出現在 Google 的索引結果裡;真的要避免頁面被收錄,必須使用 noindex。
這裡還有一個更容易踩的陷阱:如果一個頁面已經被 robots.txt 的 Disallow 規則擋住,爬蟲根本讀不到頁面裡的 meta robots 標籤,這時候就算頁面裡寫了 noindex,這個指令也不會生效,因為爬蟲從一開始就沒機會進去讀取頁面內容。想用 noindex 讓頁面下架,前提是這個頁面不能同時被 robots.txt 擋住,兩個機制用反了會互相打架。

兩個常見設定失誤是怎麼發生的
這種設定混亂,通常不是憑空發生的,而是在網站維護的某個環節被忽略掉。
第一種情況:換版或搬家時,測試站的設定被原封不動搬到正式站。有些企業在做網站改版或更換架站系統時,工程團隊會先在「測試站」上把新網站做好;測試站為了避免被搜尋引擎誤收錄、干擾正式站排名,通常會整個網站設成「Disallow: /」,擋掉所有路徑。等到測試沒問題、正式上線時,如果有人忘記把這條規則拿掉,正式站上線之後,其實整個網站都被搜尋引擎擋在外面——網站看起來一切正常,訪客也能正常瀏覽,只有搜尋引擎的收錄量會不動聲色地掉下去。
麻煩的是,這種錯誤通常不會立刻被發現。網站流量本來就有自然波動,等到真的注意到「怎麼流量掉這麼多」,回頭檢查才發現是 robots.txt 設定沒改回來,可能已經是好幾週、甚至一兩個月之後的事了。從發現問題、修正設定,到 Google 重新完整抓取並恢復排名,中間往往還要再等上一段時間。這也是為什麼網站上線前的檢查清單裡,robots.txt 的狀態值得特別列一項確認——這種問題發現得晚,付出的時間成本通常比設定本身花的時間高出好幾倍。
第二種情況:直接複製別人網站的 robots.txt 拿來用。這個做法看起來省事,實際上風險不小。每個網站的目錄結構、使用的 CMS、安裝的外掛都不一樣,別人網站需要擋的路徑,可能正好是你網站最重要的頁面;別人網站不需要擋的路徑,也可能是你這邊真正該保護的地方。整組規則複製過來,很可能在不知不覺間擋掉了不該擋的內容,或是根本沒擋到真正該擋的路徑,而且同樣要等到收錄或流量出現異常時才會被注意到。
三者比較一次看懂:Robots.txt、Meta Robots、X-Robots-Tag
除了前面提到的兩個機制,還有一個知名度較低、但同樣重要的工具:X-Robots-Tag。它的功能跟 meta robots 幾乎一樣,一樣可以下 noindex、nofollow 這類指令,差別在於它是寫在伺服器的 HTTP 回應標頭(Header)裡,而不是寫在網頁的 HTML 原始碼裡。
這個差異帶來一個實用的好處:meta robots 標籤只對 HTML 頁面有效;要控制 PDF、圖片這類非 HTML 檔案的索引狀態,必須改用伺服器端的 X-Robots-Tag,因為 PDF、圖片檔案根本沒有 `<head>` 區塊可以放標籤。

三者的差異整理成一張表會更清楚:
| 項目 | Robots.txt | Meta Robots | X-Robots-Tag |
|---|---|---|---|
| 作用範圍 | 整個網站或指定路徑 | 單一頁面 | 單一資源,也可依規則批次套用 |
| 控制層級 | 只能阻止「爬取」,不保證不被收錄 | 直接控制「索引」與「連結追蹤」 | 效果同 meta robots |
| 適用檔案類型 | 所有路徑 | 僅 HTML 頁面 | HTML 以外的檔案(PDF、圖片、影片等)也適用 |
| 實作位置 | 網站根目錄的純文字檔 | 頁面 `<head>` 內的 HTML 標籤 | 伺服器端的 HTTP 回應標頭 |
| 適合場景 | 大範圍管理爬蟲資源、指向網站地圖 | 個別頁面的收錄與連結追蹤控制 | 非 HTML 檔案,或需要批次套用規則的情境 |
簡單記法:robots.txt 決定「能不能進門」,meta robots 和 X-Robots-Tag 決定「這個房間該不該被記錄下來」,只是後兩者用在不同類型的房間——網頁和檔案。
規則互相衝突時,搜尋引擎聽誰的?
如果 robots.txt 裡同時有 Allow 和 Disallow 規則,剛好都符合同一個網址,該聽哪一條?Google 官方文件說明,判斷原則是「最具體的規則優先」——路徑寫得越長、越明確的那一條規則會勝出,跟兩條規則在檔案裡誰先誰後無關;如果兩條規則的路徑長度完全相同,Google 會採取「限制較寬鬆」的那一條,也就是傾向允許存取。
這個規則在使用萬用字元「*」寫比較複雜的路徑條件時特別容易搞錯。不確定實際效果的話,建議透過 Google Search Console 提供的檢測工具實際測試該網址的判定結果,比憑印象猜測可靠得多。
AI 爬蟲要不要擋?GPTBot、Google-Extended 是什麼
除了傳統的搜尋引擎爬蟲,近幾年 robots.txt 多了一個新的應用情境:控制 AI 公司要不要把網站內容拿去訓練模型。這跟前面談的「搜尋收錄」是兩件不同的事,但同樣透過 robots.txt 設定,屬於中文網路上目前討論還不多、但重要性正在上升的一塊。

GPTBot 是 OpenAI 用來蒐集網路上公開內容、作為模型訓練資料的爬蟲,2023 年上線至今持續在抓取資料。如果不希望網站內容被用於訓練,可以在 robots.txt 加入以下兩行:
- `User-agent: GPTBot`
- `Disallow: /`
OpenAI 官方文件明確說明會遵守這項設定。要注意的是,OpenAI 另外還有 OAI-SearchBot(用於 ChatGPT 的即時搜尋功能)與 ChatGPT-User(使用者在 ChatGPT 裡直接請求存取網頁時使用),三者用途不同,只擋 GPTBot 不會影響網站在 ChatGPT 搜尋功能裡被引用的機會。
Google-Extended 則是 Google 提供的另一種控制項,嚴格來說它不是一個真的會發送請求的爬蟲,而是一個「政策訊號」,讓網站擁有者決定公開內容是否可以被用來訓練 Gemini、Vertex AI 這類生成式 AI 模型。
這裡有一個很多人會誤會的地方:封鎖 Google-Extended 不會影響網站在 Google 搜尋的排名、一般網頁爬取或收錄——這是兩個彼此獨立的機制,一個管的是「內容能不能被拿去訓練 AI 模型」,一個管的是「網站在搜尋結果裡的表現」,擋掉前者不會連動影響後者。
要不要擋這些 AI 訓練用途的爬蟲,比較像是一個商業判斷,而不是純技術或 SEO 問題,牽涉到網站經營者對「內容授權」的態度,沒有標準答案。中小企業可以依自己對這件事的立場決定,跟前面談的收錄控制分開思考即可。
WordPress 網站的 Robots.txt 要怎麼處理
台灣中小企業的官網有相當高的比例是用 WordPress 架設,這裡特別說明幾個實務上常遇到的狀況。
WordPress 本身會自動產生一份「虛擬 robots.txt」,不需要手動上傳檔案,系統會依照後台「網站是否要被搜尋引擎索引」這個設定,動態產生內容。這也是為什麼有些網站主換了主機或搬家之後,會發現 robots.txt 讀取不到、出現 404 錯誤——常見原因是永久連結(permalink)設定被改回預設值,或是 WordPress 安裝的路徑不在網站根目錄下。
如果需要自訂規則(例如擋掉外掛產生的特定路徑),大多數 SEO 外掛(如 RankMath、Yoast)都提供介面可以直接編輯 robots.txt 內容,不必透過 FTP 手動改檔案,對非技術背景的網站管理者來說相對安全,也比較不容易誤刪到系統原本需要的規則。
設定完怎麼確認有沒有生效
改完設定之後,不建議只憑感覺判斷「應該有生效吧」,比較保險的做法是實際檢查:
- 直接在瀏覽器輸入「你的網域/robots.txt」,確認內容跟預期一致。
- 使用 Google Search Console 提供的相關檢測工具,貼上網址檢查該頁面目前是否可以被檢索、有沒有被 noindex 或 robots.txt 擋住。
- 大規模調整後(例如網站改版、更換 CMS),過一段時間回頭用 Search Console 的「涵蓋範圍」報表,確認收錄數量的變化跟預期相符,及早發現異常。
養成上線前檢查、上線後追蹤的習慣,能大幅降低「設定錯誤好幾週後才發現」這種情況發生的機率。
網站的爬蟲與收錄設定,是建站過程裡容易被忽略、卻會實際影響 SEO 表現的一個環節。如果不確定現有網站的設定是否正確,或是在規劃新網站、需要有人一併處理這類技術細節,瞻新資訊的團隊在網站開發時會把這些設定納入檢查項目,有需要的話歡迎聊聊你的網站現況。
FAQ
robots.txt 是什麼?一定要設定嗎?
robots.txt 是放在網站根目錄、用來告訴搜尋引擎爬蟲「哪些路徑可以抓、哪些不要抓」的純文字檔案。不是每個網站都「必須」手動設定——WordPress 等 CMS 會自動產生基本版本——但如果網站有後台、測試路徑等不希望被爬取的區域,建議確認過內容是否符合需求。
Disallow 之後,為什麼 Google 還是把頁面收錄了?
因為 Disallow 只能阻止爬蟲抓取頁面「內容」,不能阻止該網址本身被索引。如果網路上有其他地方連結到這個頁面,Google 仍可能把網址收進索引裡,只是通常不會顯示完整的標題與描述。真的要避免頁面出現在搜尋結果,需要改用 noindex。
noindex 和 disallow 有什麼不同?該用哪一個?
disallow 管的是「能不能爬」,noindex 管的是「收不收錄」。如果目標是完全不讓頁面出現在搜尋結果裡,應該用 noindex,而且要注意,noindex 必須寫在「沒有被 robots.txt 擋住」的頁面裡才會生效,兩者用反了會互相打架。
robots.txt 檔案要放在網站的哪裡?
必須放在網站的根目錄下,網址格式是「你的網域/robots.txt」,放在子目錄裡搜尋引擎不會讀取。
WordPress 網站需要自己寫 robots.txt 嗎?
不一定。WordPress 系統本身會依照後台設定自動產生一份虛擬 robots.txt。如果有特殊需求,例如擋掉某個外掛產生的路徑,可以透過 SEO 外掛的介面調整,通常不需要手動上傳檔案。
robots.txt 設定錯誤會有什麼後果?
如果誤將重要頁面、甚至整個網站設成 Disallow,會導致搜尋引擎無法正常抓取,收錄量可能明顯下滑,而且這類問題通常要一段時間後才會被發現,恢復也需要時間,是建站與改版時容易被忽略、但影響不小的一個環節。
要怎麼確認 robots.txt 或 meta robots 有沒有正常生效?
可以直接瀏覽「你的網域/robots.txt」確認內容,或使用 Google Search Console 的檢測工具查詢特定網址目前的索引狀態,改版或大規模調整後,建議持續觀察一段時間的收錄數量變化。
可以擋掉 AI 爬蟲(例如 GPTBot)嗎?會不會影響 SEO?
可以。GPTBot、Google-Extended 這類 AI 訓練用途的爬蟲,跟一般搜尋引擎的收錄爬蟲是分開的機制,在 robots.txt 裡個別下 Disallow 規則即可擋掉,不會影響網站在 Google 搜尋或 ChatGPT 搜尋功能裡的收錄與排名表現。要不要擋,取決於網站經營者對內容被用於 AI 訓練這件事的態度。
關於作者|陳俊鳴顧問
資深SEO顧問,操盤搜尋引擎優化與網路行銷實戰逾15年,曾獲頒亞洲十大卓越名師金像獎。長期擔任多家企業的常年行銷顧問,瞻新資訊是其中之一。專長是把網站的自然搜尋流量做起來,再用銷售漏斗與商業模式,把流量變成實際的詢問與訂單。曾是馬來西亞象棋、圍棋國手,拿過亞洲盃第二名。


