测试环境与线上的爬虫控制应当分开配置、分开验证,并且用同一套检查方法对照结果。核心原则是:线上允许或禁止的抓取范围,测试环境不能照搬;测试环境的目标是防止被收录,线上的目标是让该抓的页面被抓、不该抓的页面不被抓。两者对照时,看的是同一批URL在两套配置下分别返回什么、是否被索引,而不是两份robots.txt文本是否长得一样。
线上环境的爬虫控制服务于收录与排名,需要精确放行内容页、合理屏蔽后台与参数页。测试环境通常不需要被任何搜索引擎收录,甚至应当完全阻断抓取。把线上规则直接复制到测试环境,常见后果是测试域名被收录、测试内容与线上重复、权重分散。反过来,把测试环境的全站屏蔽规则带到线上,则会导致整站无法被抓取。
因此对照的第一步不是比对文件,而是确认两套环境各自要达成什么:线上哪些目录必须可抓、哪些必须屏蔽;测试环境是否要求全站不可抓。目标不同,配置自然不同,对照的是“是否达成各自目标”,不是“配置是否一致”。
按以下步骤执行,可以让两套环境的差异变得可检查:
User-agent: *加Disallow: /。需要强调的是,robots.txt的抓取限制不等于可靠的索引移除。即使测试环境写了全站屏蔽,已被收录的URL仍可能留在索引中,必须配合其他手段处理。站点地图也不保证收录,提交与否只能作为辅助信号。
两套环境分别验证后,用下面的检查项对照结果:
如果某项结果与预期不符,先区分是配置写错、缓存未更新,还是搜索引擎尚未重新抓取。同一现象可能有多个原因,不要直接断定是某一条规则失效。
这套对照方法适用于有独立测试域名、且测试内容可能与线上重复的站点。如果测试环境本身不对外网开放,抓取风险较低,但仍建议保留屏蔽配置作为兜底。如果测试环境与线上共用同一域名下的不同路径,则必须用路径级规则区分,不能整站屏蔽。
常见错误包括:测试环境忘记加屏蔽导致被收录;线上误用测试规则导致整站不可抓;只改robots.txt却不清除已被收录的测试页面;把HTTPS当作安全与排名的保证,实际上HTTPS不保证安全无漏洞,也不保证排名。不同搜索引擎对robots.txt和索引移除的支持情况须分别核查,不能按同一套预期判断。
下一步:选取线上和测试环境各三个代表性URL,用抓取测试工具跑一遍,把返回结果与上面的检查项逐条比对,发现不一致的路径再回到配置中定位。