robots.txt 通常只有几十行,却是站点与搜索引擎之间最容易被忽视的一份约定。它不控制收录,只影响抓取:写对了,蜘蛛知道哪些目录不必反复来;写错了,可能整站或某个栏目长期没有蜘蛛访问,而你在后台看不到明显报错。
下面这份自查清单,适合在改版、加栏目、换服务器或调整测试环境之后过一遍。重点不是把规则写得多复杂,而是确认它和当前站点结构一致。
先想清楚 robots.txt 能做什么、不能做什么
它放在站点根目录,只能按路径做粗粒度的允许与禁止,不能针对页面内容判断,也不能替代权限系统。
- 能做的:告诉蜘蛛哪些路径不必抓取,并指明 sitemap 的位置。
- 不能做的:阻止页面出现在搜索结果里、保护隐私、隐藏敏感目录。
真正需要保密的页面,应该靠登录验证或访问权限,而不是一条 Disallow。
规则匹配里最容易写错的几处
一、路径前面忘了斜杠
Disallow: /admin 与 Disallow: admin 的含义并不相同,后者属于相对写法,行为不够稳定。建议所有路径统一用斜杠开头。
二、一条 Disallow: / 把整站关掉
从测试环境复制规则上线、忘了删掉这条,是最常见的“整站无抓取”原因。上线前用抓取测试工具看一眼根目录是否被挡。
三、通配符把不该挡的路径一起挡了
Disallow: /*?* 这类写法会屏蔽所有带参数的地址,但也可能把正常分页、筛选、搜索结果页一并挡掉。如果这些页面里有需要被抓取的内容,就要换成更精确的规则,而不是图省事一刀切。
四、目录名大小写不一致
robots.txt 的路径匹配区分大小写。服务器上目录是 /News/,规则里写 /news/,基本等于没写。
五、Allow 与 Disallow 的优先级
主流搜索引擎按“最具体的规则优先”来处理,而不是简单按书写顺序。但不同实现仍有差异,规则越少、越明确,越不容易出现理解分歧。
一份可以照着走的自查步骤
- 确认 robots.txt 能正常访问并返回 200,不是 404 或 5xx;如果返回 5xx,蜘蛛可能暂时按整站禁止处理。
- 检查是否存在 Disallow: / 或大范围目录屏蔽,尤其是从测试环境带过来的规则。
- 逐条比对规则与实际目录结构,删掉已经不存在的路径。
- 确认 sitemap 写的是完整 URL,且可以正常打开。
- 用抓取测试工具分别测试首页、栏目页、内容页,确认没有被误挡。
- 修改后观察一段时间日志,看各栏目是否仍有蜘蛛来访。
别忘了 meta robots 与 X-Robots-Tag
robots.txt 管的是抓取,页面里的 meta robots 管的是索引与跟随。常见问题是两处规则互相矛盾:robots.txt 允许抓取,但模板里带着 noindex,蜘蛛来了也白来。
模板中的 noindex 可能来自测试配置残留、分页模板未清理,或者复制栏目时忘了改。自查时建议抽查几类模板:列表页、详情页、搜索结果页、标签聚合页。
如果是 PDF、图片等非 HTML 资源,页面里没法写 meta,需要靠 HTTP 响应头里的 X-Robots-Tag 控制,这一点经常被漏掉。
提示:改 robots.txt 不需要重启服务器,但影响是长期的。建议每次修改都留一条备注,写清谁改的、为什么改、影响哪些路径,出问题时能快速回滚。
小结
robots.txt 的问题往往不是写得太少,而是写得太随意。把它当成一份需要随站点结构同步更新的配置,而不是写完就再也不看的文件,就能避开大部分误挡抓取的情况。