检查网站抓取规则之前,最该先备齐的不是工具,而是五类信息:站点域名与协议、robots.txt 的实际内容、XML 站点地图地址、关键页面的 URL 样本、以及服务器返回的状态码与响应头。把这五项放在一张表里,再打开任何抓取分析工具,你都能立刻判断问题出在“禁止抓取”“抓取浪费”还是“抓取不到”,而不是边查边找资料。
时间和人手有限时,准备的顺序应当与排查顺序一致:先确认规则文件写了什么,再确认搜索引擎实际看到了什么,最后才看日志和覆盖率报告。下面这份清单按这个顺序排列,每项都写明查什么、怎么查、结果说明什么。
要查什么:确认你打算检查的是哪个版本,例如带 www 还是不带、http 还是 https、是否还有 m 站或独立移动域名。
怎么查:在浏览器分别访问几个版本,记录哪些会跳转、跳到哪个地址;再看页面里的规范链接标签指向哪个版本。
结果说明什么:如果多个版本都能正常打开且互不跳转,抓取规则可能被分散在多份 robots.txt 里,检查时必须逐份看,否则会漏掉真正生效的那一份。规范版本只有一个时,后续所有检查都围绕它进行。
要查什么:规则文件是否存在于根目录、里面有哪些 User-agent 分组、Disallow 与 Allow 的具体路径、是否引用了站点地图。
怎么查:直接访问 https://你的域名/robots.txt,把全文复制下来。注意区分大小写,路径匹配是区分大小写的。
结果说明什么:重点看三类写法:一是 Disallow: / 这类整站禁止,会直接导致抓取停滞;二是误伤静态资源或分页路径的规则;三是只写了 Allow 却没写任何 Disallow,这通常说明规则没配置完整。要记住,robots.txt 只能限制抓取,不能可靠地把已收录页面从索引中移除,禁止抓取与禁止索引是两件事。
要查什么:站点地图的完整 URL、是否可正常访问、里面列出的 URL 是否都是可索引的规范地址。
怎么查:打开站点地图,随机抽取二十条左右的 URL,逐条访问,记录返回状态码和页面是否与预期一致。
结果说明什么:如果站点地图里混有大量重定向、404 或已被 robots.txt 禁止的地址,抓取预算会被浪费在无效页面上。站点地图是给搜索引擎的参考,不保证收录,因此它的价值在于“告诉对方有哪些地址”,而不是“保证这些地址被索引”。抽样中若发现超过两成异常,应先修站点地图再谈抓取优化。
要查什么:首页、栏目页、详情页、分页、筛选参数页各选几个代表,记录它们的 HTTP 状态码和响应头中的关键字段。
怎么查:用命令行工具批量请求,例如 curl -I https://你的域名/某个页面,看返回的 HTTP/1.1 200、301、403、404、500 以及 X-Robots-Tag 头。
结果说明什么:200 表示可正常抓取;301 要确认跳转终点是否为目标页;403 或 503 可能被误判为服务器拒绝抓取;带 X-Robots-Tag: noindex 的页面即使被抓取也不会进索引。同一现象可能有多种解释,例如 503 既可能是临时限流,也可能是服务器故障,需要结合日志进一步定位,不要只凭一次请求下结论。
要查什么:服务器访问日志中搜索引擎爬虫的请求记录,以及搜索平台后台提供的抓取统计与覆盖率报告。
怎么查:按爬虫标识筛选日志,统计一段时间内各目录的请求次数和状态码分布;再与后台报告中的抓取频次、错误类型对照。
结果说明什么:如果日志显示爬虫大量请求参数页或重复地址,说明抓取预算被低价值页面消耗;如果日志里几乎没有爬虫记录,问题可能出在入口太少或规则文件禁止。不同搜索引擎的抓取行为和支持的指令并不一致,需要分别核查,不能用一个平台的数据推断另一个平台。
X-Robots-Tag 头。完成这张表后,下一步是优先处理“整站禁止抓取”和“大量 4xx/5xx 被爬虫命中”这两类问题,因为它们对抓取的影响最直接,也最容易在短时间内修复。