站点运营

站点运营:robots.txt 维護自查,別让一條規則挡住整站

robots.txt 看起来简單,實际很容易在多环境、多域名和多人协作里出現誤伤。本文整理常见的規則错誤、上线前的检查步骤和日常维護节奏,帮助站点运营把這道抓取入口守好,同时避免把它当成保密或控制收錄的手段。

站点运营

站点运营:robots.txt 维護自查,別让一條規則挡住整站

robots.txt 放在網站根目錄,内容通常只有几行,但它决定了蜘蛛能走進哪些路径、不能走進哪些路径。正因為简單,很多站点在改版、迁移或多人协作时容易忽略它,等發現抓取量下滑才回头排查。這篇文章把 robots.txt 的常见問题和维護動作整理成一份可执行的自查思路。

為什么一條規則會造成整站影响

robots.txt 的匹配方式不像很多人想象的那样只看目錄名。它按路径前缀匹配,還支持 *$ 通配符,且不同爬虫對規則细节的處理可能存在差异。一旦寫成 Disallow: /,或者把不该屏蔽的目錄寫進規則,蜘蛛可能直接停止訪問大量頁面。更麻烦的是,這類問题往往不會让服務器报错,從监控上看一切正常,只有抓取日誌和收錄資料才會慢慢反映出来。

常见的几類誤伤场景

  • 整站屏蔽:測試环境或维護頁面的規則被誤同步到生产环境,文件里只留了一行 Disallow: /。
  • 路径寫得太宽:想屏蔽某個參數目錄,却寫成了 Disallow: /search,结果把正常的 /search-guide/ 之類的路径一起挡住。
  • 通配符用错位置:想屏蔽带參數的地址,規則寫成 Disallow: /*?,把一些静態路径也牵连進去。
  • 忘记 Allow 回补:大目錄被屏蔽後,其中個別需要抓取的頁面没有用 Allow 單獨放行。
  • Sitemap 地址寫错:文件里声明的 sitemap 地址不是最终可訪問的版本,或者域名寫成了測試域名。
  • 多域名共用一份文件:主站、子站、移動站共用同一份 robots.txt,規則之間互相打架。

上线前的检查清單

每次改動 robots.txt,建议按下面的顺序過一遍,不要只靠记忆。

  1. 用浏览器直接訪問域名根目錄下的 robots.txt,確認返回 200,並且内容是最新版本而不是 CDN 缓存的舊文件。
  2. 全文搜尋 Disallow: /,確認没有整站屏蔽;如果有,確認是否為有意為之。
  3. 逐條核對每條路径,尤其注意目錄名後面有没有多加斜杠、有没有少寫斜杠、大小寫是否和實际 URL 一致。
  4. 检查 Allow 規則,確認需要抓取的目錄没有被上一條 Disallow 誤伤。
  5. 核對 Sitemap 行,確認协议、域名和路径都能正常訪問。
  6. 在搜尋引擎的 robots.txt 測試工具里跑一遍,輸入几個典型 URL,看看结果是否符合预期。
  7. 把改動内容、時間、操作人记在變更记錄里,方便出問题时快速回滚。

维護节奏與协作习惯

robots.txt 不需要频繁調整,但需要有人负责。可以约定一個固定的检查周期,比如每月一次,或者在改版、迁移、新栏目上线前後各看一次。多人协作的团队,最好把根目錄文件的修改權限收拢到少數几個人,其他成員通過工單或需求單提出變更。服務器层面的 301、CDN 回源、測試域名解析這些环节,也可能让 robots.txt 出現和生产环境不一致的版本,部署後顺手訪問一次就能發現。

robots.txt 只表達抓取意愿,不是訪問控制手段。不要把内部文档、後台地址、用戶資料目錄等内容放在公開可訪問的目錄里,再指望用 robots.txt 藏起来。真要限制訪問,應该用登入、權限或網絡层策略。

出問题後的排查顺序

如果怀疑 robots.txt 影响了抓取,可以先看抓取日誌里蜘蛛對根目錄文件的請求频率和返回狀態,再检查文件内容是否被改動。確認規則有誤後,及时修正並提交新版本,同时观察後續几天的抓取量變化。不要因為一次誤伤就频繁調整規則,稳定、可解释的規則比来回试探更有利于長期维護。

把 robots.txt 当成站点结构的一部分来管理,而不是一個寫完就忘的文本文件,能减少很多不必要的抓取波動。