站点运营

站点运营:robots.txt 自查,別让几行規則把蜘蛛挡在门外

robots.txt 通常只有几行,却常常是抓取問题的源头:路径寫错、通配符用偏、誤屏蔽静態资源,都會让蜘蛛進不来或拿不到完整頁面。本文给出一份自查顺序,從確認文件能否訪問、規則指向哪里,到與站点地图、noindex 的配合,帮你把這個小文件管好。

站点运营

站点运营:robots.txt 自查,別让几行規則把蜘蛛挡在门外

robots.txt 是站点里最不起眼的文件之一,通常只有几行,改一次几秒钟。但正因為改起来太容易,它也很容易變成抓取問题的源头:上一任运营留下的舊規則、測試时忘了删的一行 Disallow、複製模板时没改的目錄名,都可能让蜘蛛在门外轉一圈就走。

這份自查不用寫代碼,從浏览器和几份抓取日誌就能做完。

第一步:確認文件本身能被讀到

  • 在浏览器直接打開 https://你的域名/robots.txt,看是否返回 200 和纯文本内容。返回 404 意味着没有規則,蜘蛛按預設方式抓取;返回 403、500 或跳到首頁,才是真問题。
  • 確認 www 與非 www、HTTP 與 HTTPS 各版本都能訪問到同一份文件,避免蜘蛛從一個入口拿到 404、從另一個入口拿到規則。
  • 注意路径区分大小寫,/News/ 和 /news/ 不是一回事,規則里寫错一個字母就會失效。

第二步:逐條看規則指向哪里

打開文件,從第一行往下讀,重点看這几類容易寫错的寫法:

  1. 誤伤整站:Disallow: / 會挡住所有蜘蛛,通常只该出現在測試环境,上线前必须删掉。
  2. 路径寫偏:本想屏蔽搜尋參數頁,结果寫成 Disallow: /s,把 /search、/sitemap 一起挡了。屏蔽目錄时记得补上结尾斜杠。
  3. 通配符與结尾符:* 匹配任意字符,$ 表示结尾。規則越宽,誤伤面越大,能用具体路径就別用通配符。
  4. 屏蔽了静態资源:把 /js/、/css/、/images/ 整目錄挡住,蜘蛛拿不到样式和脚本,對頁面渲染的判断會失真。
  5. 規則冲突:同一個 User-agent 段落里既有 Allow 又有 Disallow 时按最長匹配優先,讀的时候不妨按路径長度排一下。
robots.txt 是一種约定,不是訪問控制。它约束的是合規蜘蛛的抓取行為,挡不住直接請求。不想让頁面出現在结果里,應该用 noindex 或權限控制,而不是只寫 Disallow。

第三步:和站点地图、noindex 對齐

常见的一種別扭组合是:robots.txt 里 Disallow 了某個栏目,站点地图里却還列着這個栏目的 URL,頁面本身又没有 noindex。這样處理结果往往不确定,也浪費提交配額。建议按下面顺序理一遍:

  • 頁面要保留、也要被抓:不要出現在 Disallow 里,正常寫進站点地图。
  • 頁面要保留、但不想被索引:允许抓取,在頁面加 noindex,站点地图里可以不列。
  • 頁面不要了:直接 301 或 410,比用規則挡住更干净。

第四步:改完規則怎么驗證

改完不要只看文件本身,隔几天從抓取日誌里抽几個被影响的 URL,看蜘蛛是否還在訪問、訪問频率有没有變化。也可以在搜尋引擎提供的抓取測試工具里對具体 URL 做一次判定,確認结果符合预期。規則改動属于全局設定,一次只調一類,改動前後留個记錄,出問题时能快速回滚。

robots.txt 不需要复杂,需要的是准确和稳定。把它当成一份長期有效的清單,每次改版、加新栏目、起測試环境时顺手看一眼,能省掉很多“為什么蜘蛛不来了”的排查時間。