核对抓取限制,不能只看robots.txt。正确做法是把“允许抓取”和“允许收录”分开检查:先确认搜索引擎能否请求到URL,再确认页面是否被noindex、登录墙、JS渲染或服务器状态挡住。多人协作时,把每一项检查结果写成可复核的记录,能减少返工。
robots.txt只表达“是否允许爬虫请求某类路径”,它不保证页面一定被抓取,也不等于页面会被收录。一个URL可能在robots.txt里是Allow,但同时返回503、需要登录、被防火墙拦截,或者正文依赖JavaScript而抓取时没有渲染出来。反过来,robots.txt里Disallow的URL仍可能因为外部链接被发现,只是爬虫通常不会请求其内容。
多人协作中最容易返工的情况,是A同学改了robots.txt,B同学以为“放开了就能收录”,结果页面仍带着<meta name="robots" content="noindex">。因此核对抓取限制要按“发现→请求→渲染→索引”四层分别验证,不能用一个开关代替全部判断。
用搜索引擎官方提供的抓取测试工具或服务器日志,确认目标URL是否被允许请求。检查项包括:
如果robots.txt允许、状态码200、无需登录,仍要进入下一步,因为“抓到了”不等于“读懂了”。
页面可能被抓取,但被指令阻止收录。检查HTML源码中的<meta name="robots">和HTTP响应头中的X-Robots-Tag,确认没有noindex、none或不可见的nofollow组合。注意:如果页面通过JavaScript动态插入noindex,而抓取时未执行JS,实际生效的指令可能与源码不一致。
渲染检查要回答两个问题:正文是否在无JS时也存在;关键链接是否是可抓取的<a href>。如果正文只存在于客户端渲染结果中,而抓取服务没有渲染或渲染超时,页面可能被当作空页处理。此时可以用“查看渲染后HTML”与“查看原始HTML”对比,判断差异是否影响主要内容。
不要只依赖单一工具。把服务器日志、抓取统计报告和搜索控制台中的抓取错误放在一起看:
假设某栏目改版后流量下降,日志显示爬虫请求返回200,但抓取统计里该目录请求量归零。此时可能原因是robots.txt新增了Disallow,也可能是防火墙按User-Agent拦截。两个解释都存在时,先查robots.txt变更记录,再查服务器访问控制规则,不要直接断言是算法降权。
多人协作时,建议用一张检查表交付,每项写明“检查对象、方法、结果、证据、负责人”。例如:robots.txt规则、HTTP状态码、meta robots、X-Robots-Tag、渲染后正文、日志请求记录。任何一项缺失,都可能让下一位同学重复排查。
改动前后比较要考虑季节、搜索需求变化和数据采集差异。抓取恢复不代表排名立即恢复,索引和排序是后续环节。下一步可以选一个代表性URL,按上述四层完整跑一遍,把结果与最近一次改版记录对齐,再决定是否需要调整抓取规则或渲染方案。