robots - 识别配置互相冲突:先查这五处

📍 WDQWDWQD987AAAAA:216.73.217.93
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /6ef696f9d767.html
📄

robots - 识别配置互相冲突:先查这五处

识别 robots 配置冲突,核心是判断同一路径在 robots.txt、页面级 robots meta、X-Robots-Tag 响应头和站点地图之间是否得到了一致的“允许抓取、允许索引”信号。冲突不一定报错,也不一定立刻见效,但会让抓取和索引行为偏离预期。时间和人手有限时,按下面的清单从影响面最大的地方查起,每项都给出查什么、怎么查、结果说明什么。

先查 robots.txt 内部是否自相矛盾

要查的是同一爬虫对同一路径的规则是否互相打架。robots.txt 按 User-agent 分组,同一组内多条规则命中同一路径时,不同实现对 Allow 与 Disallow 的取舍不完全一致,长路径与短路径的优先级处理也可能不同。

适用条件是站点规则较多、由多人维护。若规则很少且只有一条 Disallow,通常不必先查这里。

再查 robots.txt 与页面级指令是否方向相反

robots.txt 的 Disallow 只限制抓取,不保证页面不被索引;页面仍可能因外部链接被收录。反过来,robots.txt 允许抓取,但页面 meta 写 noindex,结果就是能抓不能收。两者方向相反时,先确认目标到底是“不抓”还是“不收”。

判断依据是抓取与索引是两个阶段,不能互相替代。需要移除索引时,优先让页面可抓取并返回 noindex,而不是只靠 robots.txt。

检查响应头与页面 meta 是否重复且不一致

X-Robots-Tag 是 HTTP 响应头形式的 robots 指令,常用于非 HTML 文件。当响应头和页面 meta 同时存在且取值不同时,限制更严的一方通常生效,但具体行为需分别核查目标搜索引擎的说明。

适用条件是站点同时用服务器配置和模板控制指令。若只有模板控制,可跳过响应头这一项。

核对站点地图与 robots 指令是否互相拆台

站点地图用于提交可抓取 URL,不保证收录。如果站点地图里列出的 URL 又被 robots.txt 禁止抓取,或页面带 noindex,就等于一边提交一边拒绝,属于明显冲突。

这一步适合 URL 数量可控的站点。数量很大时,先抽样检查最近新增和流量最高的目录。

用抓取测试确认最终生效结果

前面几项都是静态比对,最后要用实际抓取验证哪条规则真正生效。不同搜索引擎的抓取测试工具和报告口径不同,需分别核查,不能用一个工具的结果推断全部。

  1. 选一个冲突 URL 和一个正常 URL 作为对照。
  2. 用目标搜索引擎提供的抓取测试或 URL 检查功能请求该地址。
  3. 看返回的抓取状态、是否读到页面内容、报告的 robots 指令。
  4. 若抓取被拒,回到 robots.txt 定位规则;若抓取成功但报告 noindex,回到 meta 或响应头。

判断结果是:抓取成功且指令一致,说明该 URL 无冲突;抓取被拒或指令与预期相反,说明冲突仍在,按报告指向的位置修改后重新测试。

下一步:按上述顺序先处理 robots.txt 内部矛盾,再处理抓取与索引方向相反的问题,每次只改一处并复测,避免多个改动混在一起无法判断是哪条生效。

图1 图2

nginx