noindex 與 robots.txt 差在哪?別再擋錯頁面

一句話總結:Robots.txt 管的是「爬不爬」,Noindex 管的是「收不收進搜尋結果」。這是兩件事。搞混了,你想藏的頁面反而會被 Google 攤在搜尋結果上。

你有幾個頁面不想被搜到,該怎麼做?

網站裡總有些頁面你不想它出現在搜尋結果,像是後台、感謝頁、內部測試頁。要處理,先記住這兩個原則,它們對應兩件完全不同的事:

  • 在網頁上設定 Noindex,意思是「不要把這頁收進索引」。
  • 在 Robots.txt 檔案裡設定 Disallow,意思是「不要爬這個網頁」。

先看懂 Robots.txt 長怎樣

你可以看一下 Google Store 的 robots.txt。裡面:

  • User-agent 是指定哪一隻爬蟲。可以針對 Google、Bing、百度。寫 User-agent: AdsBot-Google 就是專門講給 Google 的廣告爬蟲聽。
  • User-agent: * 是針對「所有爬蟲」。
  • Disallow: /某路徑 是不允許爬這個路徑;Allow: / 是允許爬。
  • 最後通常還會有 Sitemap: 告訴爬蟲網站地圖在哪。

但要提醒你:這都只是「參考」,各家搜尋引擎不一定百分之百照你設定的做。

「不要被爬」跟「不要被收錄」差在哪?用圖書館比喻

這是最多人搞錯的地方,用圖書館講最清楚:

  • Robots.txt:你在圖書館門口貼一張「今日盤點,閒人勿進」。管理員(爬蟲)很守規矩,看到公告連門都不推就回家了。他根本不知道裡面有什麼書。
  • Noindex:你讓管理員進來看書了,但在某一本書上貼張黃色便條紙:「此書僅供館內閱讀,請勿建檔上架」。

看出差別了嗎?一個是「不讓你進門」,一個是「進來了但不准上架」。

SEO 界的經典烏龍:兩個一起用

那我雙管齊下,門口貼公告不讓你進(Robots.txt),書裡又貼「不要上架」的紙條(Noindex),是不是最保險?

錯,這正是經典烏龍。因為管理員被你擋在門口,他根本沒進來,也就沒看到那張黃色紙條。

更慘的是,這時候隔壁鄰居(別的網站)跟路人說:「嘿,那間房間裡有寶藏喔!」(一條超連結指向你這頁),Google 會因為外界的推薦,直接把這間「連管理員都沒進去過的房間」列在搜尋結果上,還只能顯示一個沒有描述的醜連結。你想藏的,反而被攤出來了。

正確做法:想關頁,就讓 Googlebot 進來

結論很簡單:如果你要讓一頁「不被索引」,請務必讓路給 Googlebot 進來,不要在 Robots.txt 裡擋它。要讓它進來看到 Noindex 標籤,它才會把這頁從資料庫裡劃掉。

順帶一提,Robots.txt 真正的用途,是「管抓取預算」。Google 給每個網站的爬取資源有限,你用 Disallow 把那些沒價值的頁面(後台、無限參數頁)擋掉,是為了讓爬蟲把力氣花在重要頁面上,不是拿來當「隱藏頁面」的工具。藏頁面是 Noindex 的工作。

最後一句話

一句話幫你記:要「不被爬」用 Robots.txt,要「不被收錄」用 Noindex,而且這兩個不要疊在同一頁上。想關一頁,反而要開門讓爬蟲進來,它才看得到你叫它別上架。

可參考 Google 官方「noindex 禁止 Google 搜尋建立索引」的說明。要深入了解 SEO,請參考我們的詳細指南:SEO 是什麼?就是一套方法,向 Google 證明:我的內容,就是這個問題的最好答案。

幾個容易被忽略的實務重點

  • 匹配規則:robots.txt 採「最明確(路徑最長)」的指令;若 Allow 與 Disallow 長度相同又衝突,Google 會採限制最少的那個(也就是 Allow)。
  • nofollow 的家族:除了 rel=”nofollow”,Google 後來又出了 rel=”sponsored”(付費廣告連結用)和 rel=”ugc”(使用者留言用),該標哪個就標哪個。
  • 再強調那個 1+1=0 的致命錯誤:robots.txt Disallow 封了網址,爬蟲根本進不去、讀不到 noindex;只要有外部連結指向它,它照樣被索引,還在 SERP 顯示一個沒標題沒摘要的醜連結。想關頁,就得放爬蟲進來看到 noindex。

延伸閱讀

返回頂端