Noindex 是一個你可以放進網頁的指令,用來告訴 Google 這類搜尋引擎:「這一頁請不要收進搜尋結果裡。」簡單說,它的工作就是讓某一頁「存在、打得開,但不出現在 Google 搜尋上」。
重點速覽
- 只能放在 HTML 的
<meta>標記或 HTTP 的X-Robots-Tag,寫進 robots.txt 是無效的。 - 最大的雷是「robots.txt 擋住」和「noindex」並用:爬蟲進不來就讀不到 noindex,反而可能照樣被收錄。
- noindex 跟 nofollow、canonical 都不一樣,想藏頁面用 noindex,想集中重複內容用 canonical。
Noindex 標籤是什麼?
依 Google 官方說明,noindex 是一條「規則」,你可以用兩種方式設定:一種是 HTML 裡的 <meta> 標記,另一種是伺服器回傳的 HTTP 標頭(X-Robots-Tag)。
只要是支援這條規則的搜尋引擎(例如 Google),當它的爬蟲 Googlebot 抓到這一頁、讀到 noindex,就會把整頁從搜尋結果裡拿掉——即使有別的網站連結到它,也一樣不會出現。
最常見的寫法,是在網頁的 <head> 區塊裡加一行:
<meta name="robots" content="noindex">
這裡的 robots 代表「對所有讀得懂這規則的爬蟲」都生效;如果你只想針對 Google,可以把 robots 換成 googlebot。
另一種方式是 X-Robots-Tag,它寫在 HTTP 回應標頭裡,例如 X-Robots-Tag: noindex。它的效果和 <meta> 標記一樣,但有一個 meta 做不到的優勢:可以套用在「不是 HTML」的檔案上,例如 PDF、圖片、影片,這也是它最常見的用途。
要特別強調一個 Google 白紙黑字寫明、新手最該先記住的前提:noindex 要生效,這一頁就「不能被 robots.txt 擋住」,而且要讓爬蟲進得來。如果頁面被 robots.txt 擋住,爬蟲根本看不到裡面的 noindex,這一頁反而可能繼續留在搜尋結果裡。
用白話文怎麼說?
你可以把 noindex 想成貼在店門口的一張「本日不對外」的小牌子。
店還在、燈還亮著、門也打得開(網址照樣能連),只是你掛了一張牌子告訴「帶客人來逛的導覽員」(搜尋引擎):這間店不要收進你的推薦名單,請別帶人進來。導覽員看到牌子,就會把這間店從它給客人的清單裡劃掉。
但這裡有個關鍵:導覽員必須「走到門口、看得到那張牌子」才算數。
如果你在巷子口就拉了一條封鎖線,不讓導覽員走進這條巷子(這就是 robots.txt 的「不准爬」),那他根本到不了門口,也就看不到「本日不對外」的牌子——結果反而可能憑著「聽說這裡有間店」,把它掛進清單裡。
你可以這樣記:noindex 是「請別把我列進搜尋」的牌子,但前提是搜尋引擎得先進得來、看得到這張牌子。
Noindex 標籤實際上要做什麼?
noindex 的用途很單純:把「你不想被搜尋到、但又得保留」的頁面,藏起來不進搜尋結果。
常見情境包括:感謝頁、結帳完成頁(像「訂閱成功」「表單已送出」這種只給特定使用者看、沒必要被搜尋的頁);站內搜尋結果頁(內容雜、價值低,通常不希望被 Google 收錄);後台、登入、測試頁;以及重複或單薄的彙整頁(某些標籤頁、篩選頁,當內容太薄或太重複時)。
實際操作上,多數新手其實不用自己手寫程式碼:WordPress 搭配 Yoast、Rank Math 等 SEO 外掛,每篇文章或頁面都有一個開關(類似「是否允許搜尋引擎顯示這篇?」),選「否」就會自動幫你加上 noindex;非 HTML 檔案(PDF、圖片)想擋,就請工程師在伺服器設定 X-Robots-Tag 標頭。
如果你的目標是「把一個已經被收錄的頁面,從搜尋裡拿掉」,Google 建議的標準流程是:
- 第一步,在那一頁加上 noindex。
- 第二步,確認這一頁「沒有」被 robots.txt 擋住,讓 Googlebot 能再次抓到它。
- 第三步,等 Google 重新爬過、讀到 noindex,才會把它移除——這需要時間,不是立刻發生。
如果你需要很急地把某個網址從搜尋拿掉,可以搭配 Google Search Console 的「移除工具」做暫時性隱藏,但那只是暫時的;要真正、長期移除,還是得靠頁面上的 noindex。
關於 Noindex 標籤的常見迷思
迷思一:用 robots.txt 擋住,再加 noindex,最保險
剛好相反,這是最經典的錯誤。robots.txt 的 Disallow 是叫爬蟲「不要爬這頁」;可是 noindex 是寫在「頁面裡面」的,爬蟲得進到頁面才讀得到。
你一邊不讓它進、一邊又把「請別收錄」的紙條藏在門裡,它永遠看不到那張紙條。
結果這頁可能變成 Google Search Console 裡那個有名的狀態:「已建立索引,但遭 robots.txt 封鎖」。
正解是:想 noindex,就「不要」用 robots.txt 擋它,讓爬蟲進得來、讀得到 noindex。
迷思二:noindex 和 nofollow 是同一件事
不是。noindex 管的是「這一頁要不要出現在搜尋結果」;nofollow 管的是「要不要追蹤這一頁上的連結」。兩者各管各的,也可以一起寫成 noindex, nofollow。
如果只想把頁面藏起來、但仍讓 Google 順著頁內連結去爬其他頁,用 noindex(預設等於 noindex, follow)即可。
迷思三:把 noindex 寫進 robots.txt 就行了
行不通。早年確實有人在 robots.txt 裡寫 noindex,但那從來不是正式規範,Google 已在 2019 年 9 月 1 日正式停止支援這種寫法。
換句話說,今天把 noindex 放進 robots.txt 是無效的。正確位置只有兩個:HTML 的 <meta> 標記,或 HTTP 的 X-Robots-Tag 標頭。
迷思四:noindex 等於 canonical 標籤
不一樣。canonical 是處理「重複內容」,把好幾個相似網址的功勞集中到一個主網址,那些頁面通常還是想被搜尋到的;noindex 則是直接讓一頁「從搜尋消失」。
Google 也明講:不要用 noindex 來做網址標準化,因為那會把頁面整個移出搜尋,過頭了。想集中重複內容用 canonical,想徹底藏起來才用 noindex。
迷思五:加了 noindex,頁面馬上就會不見
不會立刻。Google 必須「重新爬到」這一頁、讀到 noindex,才會把它從索引移除,這通常要等上一段時間。也因此,前提永遠是讓頁面保持可被抓取——如果你急著加 noindex 又馬上用 robots.txt 擋住,反而會讓 Google 一直看不到 noindex,弄巧成拙。
總結
如果只記一句話:noindex 是一張「請不要把這頁收進搜尋結果」的指令,頁面照樣存在、打得開,只是不出現在 Google 上。
新手可以記住三件事。
- 第一,它只放在兩個地方——HTML 的
<meta name="robots" content="noindex">,或 HTTP 的X-Robots-Tag,寫進 robots.txt 是無效的。 - 第二,最大的雷是「robots.txt 擋住」和「noindex」並用:爬蟲進不來就讀不到 noindex,反而可能照樣被收錄。
- 第三,noindex 跟 nofollow、canonical 都不一樣,別混用;想藏頁面用 noindex,想集中重複內容用 canonical。



