写 robot txt 之前,真正需要准备的不是一份“模板”,而是能说明网站结构、抓取现状和权限边界的资料。最核心的资料包括:完整域名与协议、希望屏蔽或放行的目录清单、站点地图地址、测试环境域名,以及最近一段时间的抓取与索引观察记录。缺少这些资料时,写出来的规则往往只能照抄示例,无法判断某条规则是否真的适合当前站点。
开始写规则前,先收集能反映站点实际形态的资料,而不是只看首页。
www、m、博客或商城子域。这些资料的作用是判断“哪些路径需要被禁止抓取,哪些只需要被禁止索引”。两者不是一回事:Disallow 阻止抓取,noindex 阻止索引,但被禁止抓取的页面通常无法被读取到 noindex。因此,资料不完整时,最容易把这两类需求混在一起。
面对一个不希望出现在搜索结果中的路径,通常有两种处理方案,选择依据是“你是否希望搜索引擎读取这个页面”。
方案一:用 robot txt 禁止抓取。适用条件是页面没有索引价值,且不需要搜索引擎读取页面内容来判断。例如后台登录页、内部搜索结果页、大量重复的参数组合页。判断结果是:抓取被阻止,索引通常也会随之减少,但已收录的网址不会立刻消失。
方案二:允许抓取,用页面级 noindex 阻止索引。适用条件是页面需要被读取后才能确认不应索引,或者页面已经收录、希望尽快退出索引。判断结果是:搜索引擎仍会抓取该页,但不会把它作为搜索结果展示。代价是消耗抓取资源。
如果资料显示某目录下既有需要保留的内容页,又有需要屏蔽的测试页,就不适合对整个目录写一条 Disallow。这时应缩小路径范围,或改用页面级方案。规则越宽,误伤正常内容的风险越高。
把资料整理成一份可核对的清单,再动手写文件。建议至少确认以下内容:
www 与不带 www 同时可访问的情况。一个短例子(假设场景):某站点有 /search?q= 参数页和 /articles/ 内容页。资料显示参数页无索引价值,内容页需要保留。此时可以只针对参数路径写禁止规则,而不是禁止整个站点。若资料缺失,无法确认参数路径是否被其他功能复用,就应先观察日志再决定。
规则上线不等于结束。复查时重点看三件事:
如果发现正常内容被误拦,优先修改规则范围,而不是直接删除整份文件。复查的依据仍是前面收集的目录清单和日志资料,而不是凭感觉判断。
先把域名、目录清单、站点地图地址和最近抓取记录整理到一张表里,再逐条判断每个路径应使用禁止抓取还是页面级禁止索引。资料齐全后再写规则,能减少上线后反复修改的次数。