robots txt怎么写 - 哪些常见误解会导致误操作

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

robots txt怎么写 - 哪些常见误解会导致误操作

写 robots.txt 时,最常见的误操作来自把“禁止抓取”当成“从搜索结果删除”,或者把通配符、目录路径和大小写规则想当然。正确做法是:先明确要阻止哪一类爬虫访问哪些路径,再写规则,最后用具体 URL 验证,而不是凭感觉加一行 Disallow。

准备阶段:先分清“不想被抓”和“不想被收录”

robots.txt 控制的是爬虫能否抓取,不是命令搜索引擎移除已经收录的页面。如果页面已经被收录,仅加 Disallow 往往无法让它从结果中消失,因为爬虫可能不再抓取,但旧索引仍可能保留。要移除索引,应使用对应的移除工具或让页面返回 noindex,且要确保爬虫仍能抓到该页面才能看到 noindex。

另一个起点误解是认为 robots.txt 对所有搜索引擎行为完全一致。不同搜索引擎对通配符、$ 结尾、Allow 与 Disallow 冲突时的处理需要分别核查。写之前先列出:要阻止的爬虫名称、要阻止的目录、是否允许子路径例外。

实施阶段:路径、通配符和大小写最容易写错

常见错误包括:把完整网址写进 Disallow,例如写成 Disallow: https://example.com/private/,而正确形式通常是路径 Disallow: /private/;忘记目录末尾斜杠,导致 /private 可能同时匹配到 /private-page;误以为 * 可以放在任意位置表达任意内容。通配符支持情况要按目标搜索引擎文档核查。

下面是一个假设示例,仅用于说明结构,不冒充真实站点配置:

User-agent: *<br>Disallow: /tmp/<br>Allow: /tmp/public/<br>Disallow: /*.pdf$

这段规则的意思是:所有爬虫禁止访问 /tmp/,但允许 /tmp/public/,并禁止以 .pdf 结尾的 URL。是否生效取决于目标搜索引擎是否支持 Allow、* 和 $。如果站点有多个爬虫规则,爬虫通常只选取最匹配自己名称的一组,而不是把所有组叠加。

验证阶段:不要只看 robots.txt 能否打开

写完后要实际验证三类检查项:

如果发现页面仍出现在搜索结果中,先判断是“仍被允许抓取但未更新”,还是“已被禁止抓取但索引未移除”。两者处理方式不同,不能只反复改 robots.txt。

维护阶段:站点地图和 HTTPS 不能替代 robots.txt 判断

站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名。robots.txt 只解决抓取范围问题。维护时要定期检查:新上线的目录是否被旧规则误封、测试环境是否被意外允许抓取、规则是否引用了已经不存在的路径。每次改完保留变更记录,并在一段时间后复查抓取统计和索引状态。

下一步:选一个你真正想阻止的目录,写一条最小规则,用具体 URL 做一次允许/禁止验证,再决定是否扩大规则范围。

图1 图2

nginx