robots.txt写法_用检查清单避免改错抓取规则

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

robots.txt写法_用检查清单避免改错抓取规则

把 robots.txt 写法做成可复用检查清单,核心是固定四步:先确认目标目录和文件位置,再逐条核对语法与路径匹配,然后验证爬虫实际读取结果,最后记录改动前后差异。清单不是一次写完就固定不变,而是每次改完 robots.txt 后回填验证结果,让下一次修改有据可查。

先明确检查清单适用的前提

这套清单适用于已经有 robots.txt、需要调整规则的项目,不适用于从零建站时决定要不要放 robots.txt。使用前先确认三件事:你能直接编辑网站根目录下的文件;你知道要限制或放开的目录、文件类型或具体路径;你能用测试工具或日志观察爬虫行为。

如果 robots.txt 目前不存在,检查清单的第一步应改为确认是否需要它。没有敏感目录、没有抓取压力问题时,不写 robots.txt 也是一种合理选择,此时清单的重点转为确认“不添加”不会带来问题。

可复用的五项检查清单

  1. 位置与命名检查:确认文件位于域名根目录,文件名全小写为 robots.txt。放在子目录里不会被读取。检查项:直接请求 /robots.txt 是否返回 200 和纯文本内容。
  2. 语法逐行检查:每条规则用 User-agent 开头,后接 Allow 或 Disallow。检查项:冒号后是否有值、路径是否以斜杠开头、是否误用中文标点、是否把注释写在行内导致解析异常。
  3. 路径匹配检查:Disallow: /admin 会同时命中 /admin、/admin/ 和 /administrator 这类前缀路径。检查项:列出所有会被该规则覆盖的真实 URL,确认没有误伤。
  4. 规则优先级检查:同一 User-agent 下,更长的路径匹配通常优先。检查项:构造一组测试路径,逐条对照规则,确认最终判定结果符合预期。
  5. 验证与记录检查:改完后用搜索引擎提供的 robots.txt 测试工具或抓取日志验证。检查项:记录修改日期、修改内容、验证结果和回滚方式。

一个路径匹配的短例子

假设要禁止抓取 /private/ 目录,但保留其中的 /private/help.html。可以写成:

User-agent: *<br>Disallow: /private/<br>Allow: /private/help.html

适用条件是目标搜索引擎支持 Allow 指令,且更具体路径优先。判断结果时不要只看规则文本,要在测试工具里输入 /private/help.html,确认返回“允许抓取”。如果测试结果显示仍被禁止,说明该引擎的匹配逻辑与预期不同,需要调整规则顺序或改写路径。

验收信号与常见误判

清单执行完,验收信号包括:/robots.txt 返回 200;测试工具对关键 URL 的判定与预期一致;服务器日志中目标爬虫不再请求被禁止路径;没有出现整站被误封的情况。

需要区分两类误判。第一,robots.txt 的抓取限制不等于可靠的索引移除。被禁止抓取的 URL 仍可能因外链等原因出现在搜索结果中,只是没有摘要。第二,站点地图不保证收录,robots.txt 里声明 sitemap 只是提供发现线索。把这两点写进清单的备注栏,可以避免把抓取控制和索引控制混为一谈。

下一步:拿现有 robots.txt 按上面五项逐条过一遍,把每项的检查结果和验证方式补在文件外的记录里,形成属于这个项目的固定清单。

图1 图2

nginx