站点运营

站点运营:robots.txt 规则自查,别让一条误写的规则挡住整站抓取

robots.txt 写错一个斜杠,就可能让整站或某个栏目长期无人抓取。本文从规则匹配、通配符写法、路径大小写,到 meta robots 与 X-Robots-Tag 的配合,给出一份可执行的自查清单,帮你在改版、搬迁或新增栏目后确认抓取范围没有被误伤。

站点运营

站点运营:robots.txt 规则自查,别让一条误写的规则挡住整站抓取

robots.txt 通常只有几十行,却是站点与搜索引擎之间最容易被忽视的一份约定。它不控制收录,只影响抓取:写对了,蜘蛛知道哪些目录不必反复来;写错了,可能整站或某个栏目长期没有蜘蛛访问,而你在后台看不到明显报错。

下面这份自查清单,适合在改版、加栏目、换服务器或调整测试环境之后过一遍。重点不是把规则写得多复杂,而是确认它和当前站点结构一致。

先想清楚 robots.txt 能做什么、不能做什么

它放在站点根目录,只能按路径做粗粒度的允许与禁止,不能针对页面内容判断,也不能替代权限系统。

  • 能做的:告诉蜘蛛哪些路径不必抓取,并指明 sitemap 的位置。
  • 不能做的:阻止页面出现在搜索结果里、保护隐私、隐藏敏感目录。

真正需要保密的页面,应该靠登录验证或访问权限,而不是一条 Disallow。

规则匹配里最容易写错的几处

一、路径前面忘了斜杠

Disallow: /admin 与 Disallow: admin 的含义并不相同,后者属于相对写法,行为不够稳定。建议所有路径统一用斜杠开头。

二、一条 Disallow: / 把整站关掉

从测试环境复制规则上线、忘了删掉这条,是最常见的“整站无抓取”原因。上线前用抓取测试工具看一眼根目录是否被挡。

三、通配符把不该挡的路径一起挡了

Disallow: /*?* 这类写法会屏蔽所有带参数的地址,但也可能把正常分页、筛选、搜索结果页一并挡掉。如果这些页面里有需要被抓取的内容,就要换成更精确的规则,而不是图省事一刀切。

四、目录名大小写不一致

robots.txt 的路径匹配区分大小写。服务器上目录是 /News/,规则里写 /news/,基本等于没写。

五、Allow 与 Disallow 的优先级

主流搜索引擎按“最具体的规则优先”来处理,而不是简单按书写顺序。但不同实现仍有差异,规则越少、越明确,越不容易出现理解分歧。

一份可以照着走的自查步骤

  1. 确认 robots.txt 能正常访问并返回 200,不是 404 或 5xx;如果返回 5xx,蜘蛛可能暂时按整站禁止处理。
  2. 检查是否存在 Disallow: / 或大范围目录屏蔽,尤其是从测试环境带过来的规则。
  3. 逐条比对规则与实际目录结构,删掉已经不存在的路径。
  4. 确认 sitemap 写的是完整 URL,且可以正常打开。
  5. 用抓取测试工具分别测试首页、栏目页、内容页,确认没有被误挡。
  6. 修改后观察一段时间日志,看各栏目是否仍有蜘蛛来访。

别忘了 meta robots 与 X-Robots-Tag

robots.txt 管的是抓取,页面里的 meta robots 管的是索引与跟随。常见问题是两处规则互相矛盾:robots.txt 允许抓取,但模板里带着 noindex,蜘蛛来了也白来。

模板中的 noindex 可能来自测试配置残留、分页模板未清理,或者复制栏目时忘了改。自查时建议抽查几类模板:列表页、详情页、搜索结果页、标签聚合页。

如果是 PDF、图片等非 HTML 资源,页面里没法写 meta,需要靠 HTTP 响应头里的 X-Robots-Tag 控制,这一点经常被漏掉。

提示:改 robots.txt 不需要重启服务器,但影响是长期的。建议每次修改都留一条备注,写清谁改的、为什么改、影响哪些路径,出问题时能快速回滚。

小结

robots.txt 的问题往往不是写得太少,而是写得太随意。把它当成一份需要随站点结构同步更新的配置,而不是写完就再也不看的文件,就能避开大部分误挡抓取的情况。