AI 爬虫的抓取规则要不要单写,匹配优先级怎么算
AI 爬虫的抓取规则要不要单写,取决于你想不想区分它们的用途。匹配优先级本身没有模糊地带:协议规定爬虫用大小写不敏感的方式找到与自己产品标识对应的规则组,找不到就落到通配组;同一组内的路径规则以最具体的一条生效,和书写顺序无关。所以真正要决定的是分组建几条,而不是怎么排顺序。
产品标识怎么匹配上规则组
每台爬虫在请求里带上自己的产品标识。规则文件按标识分组,一组 User-agent 行下面跟着若干条路径规则。匹配时忽略大小写,也忽略标识后面的版本部分。
这意味着给某个标识单独写了组,就只有它遵守这组规则;没写的标识不会继承,而是去看通配组。如果文件里连通配组都没有,那就等于没有任何限制生效。
没有对应组时的默认行为
协议要求爬虫在没有匹配到任何专用组时,遵守 User-agent 为星号的那一组。这条规则解释了常见困惑:只写了某个具名组,其他抓取器仍然按通配组行事。
因此配置的起点是通配组写清全站底线,再对个别标识做例外。底线放在通配组里,好处是不会因为漏写某个新出现的标识而失效。
路径规则按最长匹配生效
同一组内若出现两条都能匹配某条地址的规则,生效的是八位组最多、也就是最长的那一条,与它写在前面还是后面无关。
| 想达到的效果 | 常见写法 | 实际结果 |
|---|---|---|
| 全站默认放开 | 通配组不写排除项 | 所有标识都可抓 |
| 只对某类抓取器收口 | 单独具名组加排除项 | 仅该标识受约束 |
| 同一地址两条规则冲突 | 一长一短混写 | 长的那条生效,顺序不影响 |
| 想只对某个目录放开 | 依赖正向允许行 | 协议本身不提供该能力,需看抓取方是否自行扩展 |
训练类抓取和引用类抓取要分开看
同一家厂商往往有多个抓取器,用途并不相同:一个用于收集内容改进模型,一个在用户提问时访问页面,一个用于改善搜索结果。如果把这家厂商的标识一次性全部排除,想保留的问答引用与搜索改善也会一起被挡掉;反过来全部放开,训练抓取也就一并进来了。
这正是是否单写的判断标准:只关心内容不被复制,可以统一收紧;希望模型仍然能引用到自家页面,就按标识拆开配置。同时要注意,抓取控制作用于抓取环节,页面是否被引用还取决于内容与结构本身。
站内配置层面还有一处容易混淆:robots 规则与 llms.txt 是两类输出,前者控制可不可抓,后者向 LLMs 说明站点的内容结构,二者不能互相替代。这类面向模型代理的说明文件可以由系统自动生成,抓取规则与说明各配一次即可。
常见问题
大小写要完全一致吗? 不需要,匹配按忽略大小写进行。
写了具名组还要不要保留通配组? 要。通配组是兜底,漏掉它会让未匹配的新标识处于无规则状态。
排除后一定会被遵守吗? 协议只约束声明了自己的抓取器,不守规矩的标识仍可能请求页面,重要内容要靠访问控制而不是规则文件。
多久复核一次? 按季度复核,新出现的抓取标识与厂商公告是主要触发点。