Favicon02

為什麼 robots.txt 與 noindex 不能同時使用?

先看結論:不希望被索引,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。

Frank Chiu
Frank Chiu

SEO 顧問、行銷顧問。協助本地企業與跨國企業導入 SEO 跟行銷方案,包括:雀巢、凱基銀行、大人學、居家先生、IKEA、Vocus 等。