robots.txt 是挂在站点根目錄下的一份纯文本协议,它表達的是“希望爬虫不要訪問哪些路径”,並不是强制訪問控制。很多站点在改版、上线測試目錄、封禁後台之後,顺手往里面加了一行規則,之後忘了删,结果正常栏目被挡在门外很久都没人發現。這篇清單,就是把這份文件從头到尾過一遍。
一、先確認文件本身能被正常訪問
直接打開 https://你的域名/robots.txt,確認返回 200、内容是纯文本,並且没有被 CDN、WAF 或登入跳轉拦截。如果返回 404,多數爬虫會按“没有限制”處理,但诊断工具通常會给出提示;如果返回 5xx 或跳到登入頁,爬虫讀不到規則,實际行為就變得不可预期。
另外要记住子域名是各自獨立的:m 站、blog 子域、測試域名的 robots.txt 互不影响,別以為在主站寫一條就能覆盖全部。
二、常见誤屏蔽场景
- 本意是屏蔽某個目錄,结果寫成了屏蔽整站的規則,全站被挡。
- 通配符用得過大,比如想挡 /search,寫成 /s*,顺带把 /shop、/service 也覆盖了。
- 測試目錄、备份目錄临时屏蔽後忘了刪除,規則一直留在文件里。
- 參數屏蔽寫得過宽,把带分頁參數的正常列表頁一並干掉。
- 大小寫、末尾斜杠與實际路径不一致,導致该挡的没挡住、不该挡的被誤伤。
三、逐條核對規則
- 確認通用爬虫段落只有一個,特定爬虫的段落單獨寫,不要交叉混排。
- 检查每條屏蔽路径是否與线上真實 URL 一致,注意前缀匹配是“包含”關系,而不是“等于”。
- 如果用到了放行規則,注意主流爬虫按最長匹配優先,而不是按书寫顺序,所以更具体的路径要寫得更長。
- 確認没有誤屏蔽样式表和脚本目錄,否則會直接影响頁面渲染效果。
- 核對文件末尾的站点地图声明,地址必须是完整的绝對 URL,並且能正常打開。
- 把 robots.txt 與頁面里的 meta robots、响應头中的 X-Robots-Tag 放在一起看,三者不要互相打架。
四、改完之後的驗證
不要改完就放着。可以用搜尋平台提供的 robots.txt 測試工具,輸入几條典型 URL,看判定结果是允许還是被屏蔽;再结合服務端訪問日誌,观察目标目錄在接下来几天的抓取變化。改動建议保留一份歷史版本,出現異常时可以快速回滚。
提醒:robots.txt 只是“請求”,並不能阻止頁面被抓取或被引用。真正需要保密的目錄,應该靠權限控制,而不是靠一行規則;把已经收錄的 URL 屏蔽掉,也不會让它立刻從索引里消失。
五、把它纳入例行巡检
建议把 robots.txt 加進上线检查單:新增栏目、調整 URL 结构、關閉測試环境时都過一眼。最好由不同的人复核一次,避免“本意是屏蔽一個目錄,實际屏蔽了半個站”這類低級但代價不小的問题。文件本身保持简短、注释清晰,比堆满規則更容易長期维護。