- 登入
- 註冊
為什麼 robots.txt 與 noindex 不能同時使用?

為什麼 robots.txt 與 noindex 不能同時使用?
在網頁設定上,同時使用 robots.txt 與 noindex 這兩種指令,往往會導致搜尋引擎無法正確執行「不收錄」的需求。
先看結論:不希望被索引,robots.txt 與 noindex 只能選擇其中一個使用。
請見以下說明。
robots.txt 是「針對爬蟲(Crawler)的爬取行為限制」
當你在 robots.txt 檔案中設定「Disallow: /somepage」時,搜尋引擎的爬蟲理論上就不會爬取該頁面的內容(或檔案)。
因此,搜尋引擎就「看不到」該頁面的原始碼,也看不到其中所設定的指令,無法執行 noindex。
noindex 是「告訴搜尋引擎不要將此頁收錄」
搜尋引擎必須能夠爬取(crawl)到頁面內容才會讀取到(或 HTTP Header 中的 x-robots-tag: noindex),進而決定不將該頁面收錄到索引中。
工商時間
如果你想要更系統化、更輕鬆的學好 SEO,推薦你參考我與知識衛星合作的 SEO 線上課程《SEO 排名攻略學:從產業分析到落地實戰,創造翻倍流量》。
這是我的 SEO 集大成之作,讓你從入門到精通,附贈實戰模板跟檢核表,讓你真正學好 SEO。
結果會如何?
一旦在 robots.txt 阻擋了該頁面,搜尋引擎根本不會去爬內容,自然無法讀到裡面設定的 noindex。
如果該頁面透過別的網站連結、或其他線索被搜尋引擎發現(雖然抓不到內容),它仍有可能出現在搜尋結果中,僅以 URL 或簡短資訊的形式顯示,甚至顯示「沒有可用的描述,因為此網站的 robots.txt 進行了限制」之類的訊息。
舉例說明
想像你有一間書店。
你在門口(robots.txt)貼了一張「禁止巡邏員進入」的告示,目的是不讓巡邏員(搜尋引擎爬蟲)進來查看書店。
同時你在店裡(HTML 原始碼)又掛了另一個告示(noindex),說:「如果巡邏員進來了,請不要把店內資訊登記在官方資料庫上。」
結果因為巡邏員在門口就被擋住,根本看不到店內的告示,所以不會理會「請不要登記」的要求。
反而只憑外面聽說的資訊(例如別人提過這家店),在官方地圖或資料庫上還是會顯示這間書店的地址,但沒有更多詳細資料。
結論:如果你真正想讓巡邏員看到「請不要登記」,其實不該在門口禁止他們進入;你應該先讓他們能夠進到店裡,再在店裡貼上「請不要登記」的告示,才能達到真正的「不收錄」效果。
正確做法:該如何移除或避免被收錄?
1. 只使用 noindex,並允許搜尋引擎爬蟲
如果你的目的是「讓搜尋引擎能看到此頁,但不想被索引」,就應該不要在 robots.txt 中阻擋,而是在頁面中加入(或 HTTP Header 加上 x-robots-tag: noindex)。
如此一來,搜尋引擎能讀到指令,並將其排除在搜尋結果之外。
2. 需要隱藏內容?考慮權限或密碼保護
若你想完全不讓外人存取(或擔心內容被爬到),可以使用會員登入、密碼保護或其他認證方式;對搜尋引擎與一般訪客來說都不曝光。
3. 若只想阻擋爬取,但不擔心出現在搜尋結果
才會使用 robots.txt 進行「Disallow」。可能是為了避免搜尋引擎抓取大量檔案(如系統檔、動態篩選參數頁)或減少伺服器負擔。
總結
- 單純使用 robots.txt:搜尋引擎無法爬取內容,可能仍會索引該 URL,顯示有限的資訊。
- 單純使用 noindex(並允許爬取):搜尋引擎能讀取到 noindex,並確實不會收錄該頁面。
- 同時使用 robots.txt + noindex:noindex 指令形同「無效」,因為搜尋引擎看不到該頁面內容,自然無法讀取 noindex。
因此,如果真正的目的是「不要出現在搜尋結果」,建議不要在 robots.txt 阻擋該 URL,而應允許該頁被爬取,並在內容中加上 noindex。
工商時間
如果你想要更系統化、更輕鬆的學好 SEO,推薦你參考我與知識衛星合作的 SEO 線上課程《SEO 排名攻略學:從產業分析到落地實戰,創造翻倍流量》。
這是我的 SEO 集大成之作,讓你從入門到精通,附贈實戰模板跟檢核表,讓你真正學好 SEO。