robots.txt 與收錄問題排查:Disallow 會讓 noindex 完全失效
一句話結論:想把一批頁面從索引裡拿掉,最常見的錯誤是同一天做兩件事:頁面加
noindex、robots.txt 加Disallow。這兩個會互相抵銷,因為爬蟲被擋在門外就讀不到門後那張noindex,結果那些網址繼續留在索引裡,只是變成沒有摘要的版本,比原本更差。真正危險的收錄問題有一個共同點:它們全都回 HTTP 200。排查順序固定是先解 robots 與 noindex 的死結,再查軟 404,最後才數孤兒頁。
瀏覽器打得開、build 是綠的、狀態碼是 200,這三件事同時成立,頁面還是可以對爬蟲完全壞掉。
robots.txt 到底控制什麼
robots.txt 控制的是抓取,不是索引。這兩件事被混為一談是所有後續錯誤的源頭。Google 的 robots.txt 說明↗寫得很清楚:被 Disallow 的網址不會被抓取,但如果別的地方連過來,它仍然可能出現在搜尋結果裡,只是沒有描述。而 noindex 的說明↗同樣清楚:那條規則必須從頁面上被讀到才會生效。
兩份文件放在一起看,死結就很明顯了。這個協定本身在 2022 年被寫成 RFC 9309↗,規範層面沒有模糊空間,出錯的一律是使用方式。
正確的移除流程
我們的規則是一次只拉一根槓桿。要移除,就允許抓取並送 noindex,等網址掉出索引之後,如果還想省抓取預算再加 Disallow。順序反過來就是上面那個死結。內容剪枝我們完全不用 Disallow,只用 301 合併與 410 移除。
| 目的 | 正確做法 | 錯誤做法 |
|---|---|---|
| 內容不要出現在搜尋結果 | 允許抓取 + noindex | 只加 Disallow |
| 兩個網址同一份內容 | canonical 或 301 | Disallow 其中一個 |
| 頁面已經不存在 | 410,或 301 到近似頁 | 留著回 200 的「找不到」頁 |
| 省抓取預算 | 對參數網址與無限空間 Disallow | 對正常內容頁 Disallow |
四種回 200 的壞掉
我們把這類技術債分成四種,按「會不會讓後面的量測全部失真」排序。四種都回成功狀態碼、對人類都正常顯示、在部署流程裡不會產生任何錯誤。
- robots 與 noindex 互斥:上面那一節。這個不先解,後面量什麼都不準。
- 軟 404:頁面寫著找不到,狀態碼卻是 200。
- 孤兒頁:站內沒有任何連結指過去,只靠 sitemap 被發現。
- 一份內容多個網址:自己跟自己搶同一個查詢。
主機層級的軟 404
軟 404 大部分人只在應用層檢查。咬到我們的那次是在主機層:一個靜態站部署到會把任何未命中路徑都回傳單頁應用外殼的平台,而該平台沒有設定 404 文件。結果每一個打錯的網址、每一條過期的外部連結、每一次爬蟲的試探,回來的都是 200 加上首頁外殼。從爬蟲的角度看,這個站有無限多個有效頁面,而且長得一模一樣。
檢查只要十秒,而且應該進部署腳本:
curl -o /dev/null -s -w "%{http_code}\n" https://example.com/this-path-does-not-exist
回 200 就是整站級的軟 404,而任何只爬你 sitemap 的稽核工具永遠不會告訴你。
排查順序
順序不能換。我們自家站在 2026 年 8 月做內容盤點時,371 個頁面裡有 94 個從來沒有任何曝光,佔 25.3%,另外有 150 個頁面在 90 天裡合計只拿到 5 次點擊,佔全站 40.4%。如果在解掉 robots 死結之前就去數這份清單,大約有 30% 是雜訊,因為那些頁根本沒被抓過,「沒有曝光」的原因跟內容無關。
- 先解 robots 與 noindex 的衝突。
- 用 curl 打一個不可能存在的路徑,確認主機層沒有軟 404。
- 統一站內連結的尾斜線形式,包含寫在元件裡的那些。
- 最後才數孤兒頁,決定合併或移除。
第三步的坑值得單獨講。我們在 2026 年 8 月合併一批文章之後,把內容檔案裡的連結全部更新、掃描報告全綠,結果還有 4 條指向已移除網址的連結活著,因為它們被寫死在一個 React 元件裡。對內容目錄下 grep 不等於內部連結稽核,一定要爬線上版才會現形。
常見問題
robots.txt 可以把頁面從 Google 拿掉嗎?
不行。它擋的是抓取。要移出索引請用 noindex,而且必須讓爬蟲讀得到。
已經 Disallow 又想移除,怎麼辦?
先把 Disallow 拿掉,讓爬蟲重新抓到 noindex,等網址掉出索引之後再考慮要不要擋。
410 跟 404 有差嗎? 有,410 明確表示「永久不存在」,通常掉出索引比 404 快一點。實務上差異不大,我們觀察到的落差大約在 1 到 2 週。
參數網址要不要擋? 排序、篩選這類會產生無限組合的參數,擋是合理的。一般內容頁不要。
怎麼確認 robots.txt 真的照我想的運作? 用 Search Console↗ 的網址檢查工具,看它回報這個網址是否允許抓取,不要只用肉眼讀規則。
參考來源
- Google Search Central:robots.txt 簡介↗:抓取與索引的分界,死結的根源。
- Google Search Central:用 noindex 阻擋索引↗:規則必須可被讀取這項要求。
- RFC 9309:Robots Exclusion Protocol↗:2022 年正式標準化的協定本文。
- Google Search Console 說明中心↗:網址檢查與索引報表。
本文的主機層軟 404、寫死在元件裡的連結與各項頁面統計,出自我們自家 2026 年的工作紀錄,不在上述來源裡。
延伸閱讀:sitemap 完全指南、結構化資料實作指南。想把整套排查交給別人跑,看服務內容。
相關文章
SEO 優化作業系統:我們每週實際在跑的那一套
把 SEO 從一堆零散技巧變成一套會重複執行的流程。這篇拆解我們自家與客戶站正在跑的五階段作業系統,含每一步會擋人的驗收門檻、實測通過率與分語系點閱率數字。
AI Overviews 優化:先去看你 Search Console 裡的機器人問句
生成式引擎優化不用先買工具。把查詢報表篩出超過十二個字的完整問句讀一遍,那是模型在幫使用者找答案,而它跟點擊是兩種 KPI。附我們自家的分語系實測數字。
結構化資料實作指南:哪些真的長得出結果,哪些會害你被罰
結構化資料不是「標了就有星星」。這篇分開講哪些型別在 2026 年還會產生複合式搜尋結果、哪些已經縮水,以及我們踩過的假評論紅線。