站点运营

站点运营:robots.txt 自查,别让一行规则把整站关在门外

robots.txt 常年躺在根目录,少有人打开。本文梳理它的作用边界与常见写法:分组规则、Allow 与 Disallow 的优先级、通配符用法、Sitemap 声明,并提供一套可落地的自查流程,帮你避免一行规则误伤整站抓取。

站点运营

站点运营:robots.txt 自查,别让一行规则把整站关在门外

robots.txt 是站点里最容易被忽略的文件之一。它通常安静地躺在根目录,几个月没人打开,改一次也许只要几分钟,但写错一行,影响范围常常覆盖全站。正因为不常被看到,它更需要被定期拿出来对照检查。

先弄清它管什么,不管什么

机器人协议不是强制标准,主流搜索引擎会遵守,但并非所有抓取者都会照办。更关键的一点是:Disallow 只表示“不要抓取”,不等于“不要收录”。如果某个页面需要保留在站内,却希望它不出现在搜索结果里,应该用 noindex,并保证该页面允许被抓取,否则标签根本读不到。用 Disallow 去处理这类需求,往往适得其反。

逐项检查常见写法

User-agent 分组是否写对

  • 每组以 User-agent 开头,后面跟本组专属规则,组与组之间的规则不会互相继承。
  • 组名大小写不敏感,但拼写必须准确,写错的组等于没有生效。
  • 某一组只写了 Allow 却漏写 Disallow 时,要意识到默认状态是允许抓取。

Allow 与 Disallow 的优先级

同一条路径同时命中 Allow 和 Disallow 时,一般以更具体、也就是更长的规则为准;长度相同时,宽松的 Allow 通常优先。这条判断经常被凭印象误判,改完之后务必用工具实际验证一遍。

通配符与结束符

  • * 匹配任意字符,$ 表示路径结尾,例如 /*.pdf$ 和 /*.pdf 覆盖的范围并不相同。
  • 把 Disallow: / 写进某一组,等于对该组关闭整站,上线前要确认这行不是误留。
  • 路径区分大小写,/Search/ 和 /search/ 可能是两个不同地址。

一套可执行的自检流程

  1. 用浏览器直接打开 /robots.txt,确认返回 200、内容是纯文本,而不是把 404 页面或首页 HTML 当内容返回。
  2. 逐行读一遍,重点看有没有整站拦截、有没有误伤资源目录(如 /assets/、/uploads/),有没有漏掉本该放行的路径。
  3. 确认 Sitemap 声明写的是完整地址,且与实际提交的地址一致。
  4. 使用搜索引擎官方提供的 robots.txt 测试工具,输入几个有代表性的 URL,看实际判定结果是允许还是拦截。
  5. 到服务器日志里抽查几个被拦目录,确认近期没有来自正常蜘蛛的大量被拒记录。

几个容易踩的坑

  • 用 robots.txt 屏蔽后台、测试页或参数页,却忘了这些地址仍可能被外部引用,最后以无描述的形式出现在结果里。
  • 站点搬到了子目录,文件里的路径却还是旧结构。
  • Crawl-delay 只被部分搜索引擎支持,写很大的值会拖慢发现速度,一般不建议随意调整。
  • 改完规则不做测试,等发现收录量下滑才回头排查。
把 robots.txt 当成一份“通行名单”来维护:明确哪些必须放行,哪些确实需要拦截,剩下的交给内容质量去决定。

结语

不需要频繁改动它,但建议每季度、以及每次站点结构调整之后检查一次,并留下一份历史版本。规则越少越清晰,出问题时也越容易定位。