noindex、robots.txt 封鎖與密碼保護怎麼選:三種擋頁面方式的比較
noindex、robots.txt 封鎖、密碼保護,該用哪一個
看你要擋的是什麼。只想讓頁面不出現在搜尋結果,用 noindex。想讓爬蟲不要浪費時間抓某一類網址,用 robots.txt 封鎖。內容本身不能被外人看到,就用密碼或登入保護。三者作用在不同階段,不能互相替代。
先把三個名詞講清楚。noindex 是寫在頁面裡的一道指令,要求搜尋引擎不要把這一頁放進搜尋結果。robots.txt 是放在網站根目錄的文字檔,列出不希望爬蟲抓取的路徑。密碼保護則是伺服器在給出內容之前,先要求對方證明身分。
搜尋引擎處理一個頁面分成三步:先發現網址,再抓取內容,最後決定要不要收進索引。爬蟲是負責抓取的自動程式,索引是搜尋引擎存放可供搜尋頁面的資料庫。三種工具各自卡在不同的步驟上,這是整篇文章的關鍵。
工程師的觀點:哪一種最省事、最不容易出錯
工程師通常偏好 robots.txt。改一個檔案,寫一行規則,就能涵蓋整個目錄。不用動到版型,也不用逐頁設定。對要趕上線的專案來說,這是最快的做法。
它的風險也在這裡。一行規則寫得太寬,會把不該擋的路徑一起擋掉。測試站的封鎖規則跟著程式碼一起上線到正式站,是我們在交接時最常抓到的事故。
工程師的第二個選擇是密碼保護。測試站與後台用這個最乾淨,沒通過驗證的人與爬蟲都拿不到內容。缺點是每個需要看的人都要有帳號,行銷部門常嫌麻煩。
noindex 在工程師眼中反而最瑣碎。它要寫進每一頁的輸出,或設定在伺服器的回應標頭裡。內容管理系統若沒有現成的開關,就得改版型。
行銷主管的觀點:我只是不想讓客人搜到這頁
行銷主管在意的是結果。活動結束的頁面、給特定客戶的方案頁、內容重複的列印版,他只希望這些不要出現在搜尋結果。他不關心爬蟲有沒有來過。
從這個需求出發,正確答案幾乎都是 noindex。問題是行銷主管往往不知道三者的差別,開需求時只寫「請擋掉這頁」。工程師收到後選了自己最順手的 robots.txt。
結果是幾週後主管去搜尋,那一頁還在。搜尋結果顯示網址,下方寫著沒有這個網頁的相關資訊。主管認為工程師沒做,工程師說規則明明生效了。兩邊都沒錯,工具選錯了。
搜尋引擎的觀點:它實際上怎麼解讀這三種訊號
站在搜尋引擎這邊看,三種訊號的意思差很多。
- 看到 robots.txt 的封鎖規則:我不抓這個網址的內容。但別的網站若連到它,我仍然知道它存在,有可能只憑網址與連結文字把它列進結果
- 看到 noindex:我抓了這一頁,讀到指令,把它從索引拿掉。之後我會越來越少回來
- 遇到密碼保護:我拿不到內容,也無從評估,這個網址對我沒有意義
第一點是最多人誤會的地方。robots.txt 管的是抓取,不管收錄。被封鎖的網址只要有外部連結,還是可能出現在搜尋結果裡,只是沒有摘要。
第二點藏著一個前提:搜尋引擎必須先抓到頁面,才讀得到 noindex。這個前提直接導出下面最重要的一條規則。
最常見的錯誤組合:同時封鎖又加 noindex
很多人為了保險,兩個一起用。在 robots.txt 封鎖路徑,又在頁面加上 noindex。這兩個動作會互相抵銷。
爬蟲被 robots.txt 擋在門外,進不去頁面,就永遠讀不到裡面的 noindex。原本已經被收錄的頁面,會一直留在索引裡。想把頁面從搜尋結果移除時,必須先放行抓取,讓搜尋引擎讀到 noindex,等頁面確實消失之後,再考慮要不要封鎖。
這個順序在會議上最難說服人。老闆聽到「要先打開讓 Google 進來,才能請它離開」,直覺會反對。我們通常畫一張三步驟的流程圖,把發現、抓取、收錄排成一列,標出每種工具卡在哪一格,對方就懂了。
一張可以直接對照的選擇規則
下面七種情境,是中小企業網站最常遇到的。每一種只給一個建議做法。
- 測試站與開發環境:用密碼保護。不要只靠 robots.txt,以免規則被帶到正式站
- 會員專區、訂單頁、後台:用登入保護。這些本來就不該被任何外人讀取
- 感謝頁、站內搜尋結果、列印版頁面:用 noindex,並保持可抓取
- 過期活動頁且沒有替代內容:直接移除,回應已移除的狀態碼,比 noindex 更乾淨
- 大量由篩選與排序產生、沒有搜尋價值的網址:用 robots.txt 封鎖,目的是節省抓取資源
- 給特定客戶的報價或提案頁:用密碼保護。noindex 無法阻止拿到網址的人轉傳
- 不想讓圖片或文件檔被搜到:文件檔可用伺服器回應標頭設定 noindex,敏感檔案則放到需要登入的位置
第五種要補一句。用 robots.txt 封鎖大量參數網址,適合在這些網址還沒被大量收錄之前做。若已經收錄了一大批,先用 noindex 清掉,再封鎖。
交付給工程師的需求單該怎麼寫
溝通出錯多半源自需求單寫得太短。我們協助客戶把「請擋掉這頁」改寫成四個欄位,工程師一看就知道該用哪一種工具。
- 網址或網址規則:完整寫出,並附上三個實際範例
- 目的:不出現在搜尋結果、不要被抓取、或不能被未授權的人看到,三選一
- 目前狀態:是否已被收錄,在 Google Search Console 的網址審查結果是什麼
- 驗收方式:多久後用什麼方法確認
目的那一欄只能單選。有人想同時勾三個,就請他排優先順序。這個小限制省掉很多來回。
設定之後要怎麼確認真的生效
noindex 的確認方式是用 Google Search Console 的網址審查工具測試線上網址。結果會寫明是否允許建立索引,以及偵測到的指令來源。接著等待,頁面通常在下次被抓取後才會從索引消失,時間從幾天到數週不等。
robots.txt 的確認方式是查看 Google Search Console 設定裡的 robots.txt 報表,確認 Google 讀到的是最新版本。再用網址審查工具輸入一個應該被擋的網址與一個不該被擋的網址,兩邊的結果都要符合預期。只測被擋的那一邊,會漏掉規則寫太寬的錯誤。
密碼保護的確認最簡單。開一個無痕視窗,直接輸入網址,看到的應該是登入畫面或拒絕存取的訊息。
急著讓頁面從搜尋結果消失時,Google Search Console 有移除工具,可以暫時隱藏網址。它的效果有期限。期限內仍要完成 noindex 或移除,否則頁面會回來。
這套選擇規則管不到的地方
robots.txt 與 noindex 都是請求,守規矩的搜尋引擎會遵守,惡意的爬蟲與資料蒐集程式不會理會。任何有資安或隱私顧慮的內容,只能靠權限控管。涉及個人資料保護的法律責任,請交由持牌的法律專業人士確認。
另外,這裡談的是讓頁面不被收錄。若目的是合併重複內容、把評價集中到一個網址,該用的是標準網址宣告或轉址,不在這三種工具的範圍內。
常見問題
robots.txt 封鎖的頁面為什麼還會出現在 Google
robots.txt 只阻止抓取,不阻止收錄。只要有其他網站連到該網址,Google 仍可能列出它,只是不顯示摘要。要移除請改用 noindex。
noindex 和 robots.txt 可以一起用嗎
不建議同時使用在同一個網址。爬蟲被 robots.txt 擋住後讀不到 noindex,已收錄的頁面反而會一直留在搜尋結果裡。
加了 noindex 多久會從搜尋結果消失
要等 Google 下一次抓取該頁並讀到指令,通常是數天到數週。可在 Google Search Console 用網址審查工具要求重新抓取來加快。
測試站要怎麼避免被 Google 收錄
最穩妥的做法是加上密碼保護,讓未授權的人與爬蟲都無法讀取。只用 robots.txt 封鎖,容易在上線時把規則帶到正式站。
延伸閱讀:SEO 技術優化主題文章、最新新知、行銷案例
