站点运营

站点运营:robots.txt 自查,一行寫错可能挡住半個站

robots.txt 是站点與爬虫之間的第一道约定。改版、上线測試目錄、封禁後台时随手加的一行規則,如果忘了清理,可能让正常栏目長期不被訪問。本文梳理文件的訪問狀態、常见誤屏蔽场景、逐條核對方法,以及修改後的驗證與巡检方式。

站点运营

站点运营:robots.txt 自查,一行寫错可能挡住半個站

robots.txt 是挂在站点根目錄下的一份纯文本协议,它表達的是“希望爬虫不要訪問哪些路径”,並不是强制訪問控制。很多站点在改版、上线測試目錄、封禁後台之後,顺手往里面加了一行規則,之後忘了删,结果正常栏目被挡在门外很久都没人發現。這篇清單,就是把這份文件從头到尾過一遍。

一、先確認文件本身能被正常訪問

直接打開 https://你的域名/robots.txt,確認返回 200、内容是纯文本,並且没有被 CDN、WAF 或登入跳轉拦截。如果返回 404,多數爬虫會按“没有限制”處理,但诊断工具通常會给出提示;如果返回 5xx 或跳到登入頁,爬虫讀不到規則,實际行為就變得不可预期。

另外要记住子域名是各自獨立的:m 站、blog 子域、測試域名的 robots.txt 互不影响,別以為在主站寫一條就能覆盖全部。

二、常见誤屏蔽场景

  • 本意是屏蔽某個目錄,结果寫成了屏蔽整站的規則,全站被挡。
  • 通配符用得過大,比如想挡 /search,寫成 /s*,顺带把 /shop、/service 也覆盖了。
  • 測試目錄、备份目錄临时屏蔽後忘了刪除,規則一直留在文件里。
  • 參數屏蔽寫得過宽,把带分頁參數的正常列表頁一並干掉。
  • 大小寫、末尾斜杠與實际路径不一致,導致该挡的没挡住、不该挡的被誤伤。

三、逐條核對規則

  1. 確認通用爬虫段落只有一個,特定爬虫的段落單獨寫,不要交叉混排。
  2. 检查每條屏蔽路径是否與线上真實 URL 一致,注意前缀匹配是“包含”關系,而不是“等于”。
  3. 如果用到了放行規則,注意主流爬虫按最長匹配優先,而不是按书寫顺序,所以更具体的路径要寫得更長。
  4. 確認没有誤屏蔽样式表和脚本目錄,否則會直接影响頁面渲染效果。
  5. 核對文件末尾的站点地图声明,地址必须是完整的绝對 URL,並且能正常打開。
  6. 把 robots.txt 與頁面里的 meta robots、响應头中的 X-Robots-Tag 放在一起看,三者不要互相打架。

四、改完之後的驗證

不要改完就放着。可以用搜尋平台提供的 robots.txt 測試工具,輸入几條典型 URL,看判定结果是允许還是被屏蔽;再结合服務端訪問日誌,观察目标目錄在接下来几天的抓取變化。改動建议保留一份歷史版本,出現異常时可以快速回滚。

提醒:robots.txt 只是“請求”,並不能阻止頁面被抓取或被引用。真正需要保密的目錄,應该靠權限控制,而不是靠一行規則;把已经收錄的 URL 屏蔽掉,也不會让它立刻從索引里消失。

五、把它纳入例行巡检

建议把 robots.txt 加進上线检查單:新增栏目、調整 URL 结构、關閉測試环境时都過一眼。最好由不同的人复核一次,避免“本意是屏蔽一個目錄,實际屏蔽了半個站”這類低級但代價不小的問题。文件本身保持简短、注释清晰,比堆满規則更容易長期维護。