站点运营

站点运营:robots.txt 的写法与自查,别把该抓的目录一起屏蔽

robots.txt 放在网站根目录,看似简单,却常因一条规则误伤正常目录、放过测试页或搜索结果页。本文整理常见写法、容易踩的坑和可执行的自查步骤,帮助你在不影响正常抓取的前提下,管好蜘蛛的访问范围。

站点运营

站点运营:robots.txt 的写法与自查,别把该抓的目录一起屏蔽

robots.txt 是放在网站根目录的一份纯文本协议文件。它不强制蜘蛛必须遵守,但主流搜索蜘蛛在抓取前通常会先读取它。对站点运营来说,这份文件写错一条规则,可能让整个栏目从抓取列表里消失,也可能让测试页、搜索结果页被大量抓取。它不像页面内容那样天天更新,但每次改版、上线新目录、调整 URL 结构时,都值得回头检查一遍。

先明确它管什么、不管什么

robots.txt 主要用来告诉蜘蛛哪些路径不建议抓取,以及 sitemap 文件放在哪里。它不能用来阻止页面被索引——如果某个 URL 已经被外部链接指向,即使被 robots 屏蔽,搜索引擎仍可能将其收录,只是无法读取内容。它也不能替代登录验证、权限控制或 noindex 标签。把 robots.txt 当成“隐藏页面”的工具,往往会带来反效果。

常见写法与容易踩的坑

全站禁止

开发环境、预览域名上经常出现 User-agent: * Disallow: /。这个写法本身没问题,但上线时如果忘记删掉,蜘蛛会直接放弃整站。建议在发布流程里加一道检查,或者用不同域名区分测试和生产环境。

误伤目录

想屏蔽 /search/ 结果页,却写成 Disallow: /s,结果把 /solution/、/service/ 等正常目录一起挡住。路径匹配是前缀匹配,短字符串很容易误伤。写规则时尽量写完整目录,并在末尾加上斜杠,例如 Disallow: /search/

规则冲突与优先级

同一个 User-agent 下有多条规则时,蜘蛛一般按最长匹配来决定。比如同时有 Disallow: /api/Allow: /api/public/,后者更长,/api/public/ 下的地址就可能被允许抓取。如果规则写得混乱,蜘蛛的最终行为可能和你的预期不一致。建议把重要目录的 Allow 和 Disallow 分开写清楚,不要依赖猜测。

通配符与结尾符号

星号 * 表示任意字符,美元符号 $ 表示 URL 结尾。例如 Disallow: /*.pdf$ 可以屏蔽所有以 .pdf 结尾的地址。但通配符用多了会增加维护难度,也容易误伤。能写具体目录就不要用大范围通配。

一份可执行的自查清单

  • 确认文件可访问:在浏览器打开 https://你的域名/robots.txt,返回 200 且内容为纯文本,而不是 404 或 HTML 页面。
  • 检查 User-agent 分组:是否把百度、Google、必应等蜘蛛分别写了规则,还是统一用 *。如果用了 *,要确认没有误伤主流蜘蛛。
  • 核对 Disallow 路径:逐条对照现有目录,确认没有把正常栏目、文章目录、图片目录一起挡住。
  • 检查 Allow 规则:如果确实需要放开某个子目录,确认 Allow 的路径比 Disallow 更具体。
  • 确认 sitemap 地址:在文件里写完整 URL,例如 Sitemap: https://example.com/sitemap.xml,不要只写相对路径。
  • 检查测试页和后台路径:/test/、/tmp/、/admin/、/preview/ 等目录如果不需要被抓,可以屏蔽,但不要影响前台正常页面。
  • 检查参数页:对筛选、排序、打印、分享等参数,可以用 Disallow 屏蔽,也可以配合 canonical 处理,避免生成大量可抓地址。
  • 修改后观察日志:改动生效后,留意服务器日志里蜘蛛的抓取记录,确认目标目录仍有正常访问,误屏蔽的目录不再出现大量请求。

和蜘蛛池、抓取预算的关系

蜘蛛池、外链引导、URL 提交等操作,本质上是让蜘蛛知道有哪些地址值得来看。如果 robots.txt 把入口目录挡住了,前面做的 URL 发现工作就会打折扣。另一方面,蜘蛛每天愿意抓取的页面数量有限,如果 robots.txt 没有屏蔽搜索结果页、重复参数页,蜘蛛可能把大量时间花在低价值地址上,核心栏目的回访频率反而下降。所以 robots.txt 不是越严格越好,也不是越开放越好,关键是让蜘蛛把注意力放在真正需要收录的页面上。

改完之后怎么验证

修改 robots.txt 后,不要只靠自己读一遍。可以用搜索引擎站长平台提供的 robots.txt 测试工具,输入具体 URL,看看是否被允许抓取。也可以直接在日志里找对应蜘蛛的请求记录,观察它是否还在访问被屏蔽的目录。如果发现某个重要栏目突然没有抓取记录,优先检查 robots.txt 是否被误改。对于大型站点,建议把 robots.txt 纳入版本管理,每次改动都有记录,方便回滚和对比。

robots.txt 是一份很轻的文件,但它的影响不轻。定期检查、写清楚规则、改完看日志,比事后补救省事得多。