把入口页提交到搜索引擎的推送接口或 sitemap 之后,很多人就默认“接下来它会自己来抓”。实际上提交只是把 URL 放进候选池,是否真的被抓、什么时候被抓,还要经过状态码、robots、服务器拦截、抓取配额等一系列判断。任何一层不通,日志里都可能安静得像什么都没发生。
提交成功只说明请求被接收
推送接口返回成功、sitemap 状态显示正常,这些反馈仅表示平台收到了这条 URL。它既不代表已经排进抓取队列,也不代表抓取优先级被提高。所以“提交了”和“被抓了”之间,必须用日志去验证,而不是靠感觉判断。
排查顺序:从入口页自身开始往回查
1. 入口页能否稳定返回 200
- 用不带登录态、不带 Cookie 的方式请求一次,看是否返回 200 且内容非空;
- 检查是否存在软 404:状态码是 200,页面却只有一句“内容不存在”;
- 确认链接是否出现在原始 HTML 里,而不是完全依赖脚本渲染。
2. robots.txt 与页面级限制
入口页被 Disallow 挡住,或者页面带有 noindex,都会影响后续抓取。要注意 robots 是按路径前缀匹配的,一条写错的规则很容易连带把整批入口页一起挡住。
3. 服务器和中间层是否拦了爬虫
- WAF、防火墙、CDN 的 Bot 规则可能对搜索蜘蛛返回 403 或验证码页;
- 频率限制过严时,蜘蛛第一次能进来,后面就被持续限流;
- 部分云服务默认屏蔽某些 IP 段,会导致对应来源的爬虫无法访问。
4. 提交的 URL 与页面里的链接是否一致
大小写、末尾斜杠、协议、参数顺序、多余跟踪参数,只要有一处不同,就可能被当成另一个 URL。排查时以页面里实际输出的链接为准,而不是后台记录的那一条。
5. 站点整体的抓取配额
抓取配额有限的站点,新提交的 URL 往往排在后面。如果站内本身有大量低质量页面、重复内容或者长期超时的地址,配额会被消耗在这些地方,入口页自然轮不上。
6. 入口页到目标 URL 的链接是否真的存在
有时候入口页确实被抓了,但里面的链接是空的、被脚本后置插入的、或者被条件判断隐藏了,目标 URL 依然发现不了。这一层的问题通常要在渲染后的 DOM 里才看得出来。
日志是唯一可靠的验证方式
把服务器日志里的蜘蛛访问单独筛出来,重点看三件事:
- 蜘蛛是否来过入口页,返回码是多少;
- 入口页被访问后,隔多久来抓目标 URL;
- 目标 URL 的返回码和响应时间是否正常。
如果入口页有访问、目标 URL 一直没来,问题多半出在链接可发现性上;如果入口页本身就没访问,那就要往前面的状态码、robots 或拦截层去找。这两个方向搞反,改再多结构也是白费。
几个容易忽略的细节
- 新域名前期抓取本来就慢,不必急着大改结构;
- 同一批入口页不要在同一天全部改版,否则很难对比前后差异;
- 调整之后至少观察一到两周,再判断有没有效果;
- 不要为了“让蜘蛛来”而反复改动,频繁变动反而会降低稳定性。
提交是起点,不是结果。能不能被抓、抓多少,最终取决于入口页是否可访问、链接是否可发现、站点整体是否值得信任。