robots.txt 是站点上最容易寫错、又最难立刻發現的文件之一。它不參與頁面渲染,出問题时頁面照样能打開,用戶毫無感觉,但蜘蛛可能已经按你的規則停止抓取某個目錄,甚至整站。尤其是接手他人站点、或者刚做完目錄調整之後,建议把這個文件排進例行自查。
一、確認文件位置與可訪問性
robots.txt 只對根域生效,必须放在站点根目錄,例如 https://example.com/robots.txt。放在子目錄里(如 /blog/robots.txt)不會被当作規則文件讀取。用浏览器或命令行直接訪問一次,確認返回 200,内容類型是纯文本,而不是被框架路由接管後返回首頁 HTML,也不是被安全策略拦截成 403。
如果站点有多個域名、多個环境(正式、预發、測試),要逐一確認:预發环境通常整体禁止抓取,正式环境才放開。把這條当成固定检查項,可以避免測試規則随手發布到线上。
二、常见的誤寫與風險
- 整站誤封:Disallow: / 没有被注释掉,也没有做环境判断,直接留在了线上。
- 路径寫得太宽:想挡 /search,结果寫成 Disallow: /s,顺带把 /service、/shop 等目錄一起挡住了。
- 挡住静態资源:屏蔽 CSS、JS、图片目錄,蜘蛛拿不到渲染所需资源,對頁面内容的判断會受影响。
- 規則分散冲突:同一個 User-agent 分成多段,或在多個位置各寫一份,维護时只改了其中一處。
- 把 robots.txt 当權限工具:它只能表達“不希望被抓取”,不能阻止訪問,敏感内容應靠登入與鉴權處理。
三、逐項自查清單
- 訪問根目錄 robots.txt,確認狀態碼與内容正确,没有落到 CDN 上的舊版本。
- 检查是否存在 Disallow: / 或等價的全站禁止規則,已注释的除外。
- 逐條讀 Disallow 路径,確認没有意外覆盖正常栏目目錄。
- 確認 CSS、JS、字体、图片等资源目錄未被整体屏蔽。
- 同一 User-agent 的規則是否集中在同一段,是否存在重复段落。
- Sitemap 指令指向的地址可訪問,且與目前 sitemap 版本一致。
- User-agent 名稱拼寫與大小寫正确,寫错的名字不會命中任何蜘蛛。
- 如果設定了 Crawl-delay,確認數值合理,過大會明顯拖慢抓取节奏。
四、改動流程與驗證
robots.txt 的改動影响面大,建议走和代碼一样的流程:改動前记錄目前版本,改動後先在预發或小范围环境驗證,再發布上线。發布後观察几天訪問日誌,看目标蜘蛛的抓取频次與路径是否朝预期方向變化;如果某個栏目抓取量骤降,先回滚再排查原因。
robots.txt 是建议,不是闸门。它影响蜘蛛“愿不愿意”抓,而不是“能不能”抓。真正需要保護的内容,請用登入、權限與服務器层規則處理。
五、與其他配置保持一致
robots.txt、sitemap、canonical、站内連結共同决定了蜘蛛看到的站点范围。如果 sitemap 里提交了某個目錄,而 robots.txt 又把它挡住,两邊就互相矛盾;同理,栏目下线後除了加規則,也要把 sitemap 中的地址同步清理。定期把這几份配置放在一起對照一遍,比單獨检查某一個文件更容易發現不一致。