robots.txt 是站点里最不起眼的文件之一,通常只有几行,改一次几秒钟。但正因為改起来太容易,它也很容易變成抓取問题的源头:上一任运营留下的舊規則、測試时忘了删的一行 Disallow、複製模板时没改的目錄名,都可能让蜘蛛在门外轉一圈就走。
這份自查不用寫代碼,從浏览器和几份抓取日誌就能做完。
第一步:確認文件本身能被讀到
- 在浏览器直接打開 https://你的域名/robots.txt,看是否返回 200 和纯文本内容。返回 404 意味着没有規則,蜘蛛按預設方式抓取;返回 403、500 或跳到首頁,才是真問题。
- 確認 www 與非 www、HTTP 與 HTTPS 各版本都能訪問到同一份文件,避免蜘蛛從一個入口拿到 404、從另一個入口拿到規則。
- 注意路径区分大小寫,/News/ 和 /news/ 不是一回事,規則里寫错一個字母就會失效。
第二步:逐條看規則指向哪里
打開文件,從第一行往下讀,重点看這几類容易寫错的寫法:
- 誤伤整站:Disallow: / 會挡住所有蜘蛛,通常只该出現在測試环境,上线前必须删掉。
- 路径寫偏:本想屏蔽搜尋參數頁,结果寫成 Disallow: /s,把 /search、/sitemap 一起挡了。屏蔽目錄时记得补上结尾斜杠。
- 通配符與结尾符:* 匹配任意字符,$ 表示结尾。規則越宽,誤伤面越大,能用具体路径就別用通配符。
- 屏蔽了静態资源:把 /js/、/css/、/images/ 整目錄挡住,蜘蛛拿不到样式和脚本,對頁面渲染的判断會失真。
- 規則冲突:同一個 User-agent 段落里既有 Allow 又有 Disallow 时按最長匹配優先,讀的时候不妨按路径長度排一下。
robots.txt 是一種约定,不是訪問控制。它约束的是合規蜘蛛的抓取行為,挡不住直接請求。不想让頁面出現在结果里,應该用 noindex 或權限控制,而不是只寫 Disallow。
第三步:和站点地图、noindex 對齐
常见的一種別扭组合是:robots.txt 里 Disallow 了某個栏目,站点地图里却還列着這個栏目的 URL,頁面本身又没有 noindex。這样處理结果往往不确定,也浪費提交配額。建议按下面顺序理一遍:
- 頁面要保留、也要被抓:不要出現在 Disallow 里,正常寫進站点地图。
- 頁面要保留、但不想被索引:允许抓取,在頁面加 noindex,站点地图里可以不列。
- 頁面不要了:直接 301 或 410,比用規則挡住更干净。
第四步:改完規則怎么驗證
改完不要只看文件本身,隔几天從抓取日誌里抽几個被影响的 URL,看蜘蛛是否還在訪問、訪問频率有没有變化。也可以在搜尋引擎提供的抓取測試工具里對具体 URL 做一次判定,確認结果符合预期。規則改動属于全局設定,一次只調一類,改動前後留個记錄,出問题时能快速回滚。
robots.txt 不需要复杂,需要的是准确和稳定。把它当成一份長期有效的清單,每次改版、加新栏目、起測試环境时顺手看一眼,能省掉很多“為什么蜘蛛不来了”的排查時間。