蜘蛛在站点里走的路,并不总是我们设计的那条。常见情况有两种:一种是一个内容被多条 URL 到达,蜘蛛反复抓同一页;另一种是重要页面明明存在,却没有一条稳定的内链入口让蜘蛛走到。前者消耗抓取额度,后者让页面长期等不到访问。把这两类问题分开看,排查会清晰很多。
路径重复:蜘蛛为什么绕圈
路径重复的本质是同一份内容对应了多个可访问 URL。蜘蛛不判断内容是否相同,它只看链接和响应。只要站内或外部有链接指向不同写法,它就会分别抓取。
- 参数差异:排序、筛选、分页参数生成大量可抓 URL,内容主体却相同。
- 大小写与斜杠:/Page 与 /page、带尾斜杠与不带尾斜杠同时可访问。
- 会话或跟踪参数:URL 里带 sid、ref 等参数,每次生成新地址。
- 打印页、AMP 页、移动页:没有用 canonical 或 robots 明确指向主版本。
- 内链不统一:导航、正文、相关推荐里混用不同 URL 写法。
处理思路不是把参数页全部封死,而是先确定主版本,再让内链、Sitemap 和 canonical 指向同一个地址。对确实不需要抓取的参数组合,可以用 robots 或页面级 noindex 控制,但要注意别误伤主内容页。
路径缺失:重要页面为什么等不到蜘蛛
路径缺失通常不是服务器问题,而是入口问题。蜘蛛没有站内链接可跟,Sitemap 又没更新,页面就只能在原地等待。常见原因包括:
- 新页面只通过 JS 交互出现,HTML 里没有可抓链接。
- 详情页只从搜索结果或筛选结果进入,缺少分类页、专题页的固定入口。
- 内链层级过深,中间页没有继续向下的链接。
- Sitemap 更新滞后,或分片文件没有被索引文件引用。
- 服务器对部分路径返回超时或 5xx,蜘蛛重试几次后降低访问。
补入口比反复提交更有效。先给页面找一条稳定路径:首页或频道页到列表页,列表页到详情页,详情页再通过相关推荐、面包屑回链。路径越稳定,蜘蛛越容易重复走到。
用日志、内链、Sitemap 三方对照
排查时不要只看一个来源。日志能看到蜘蛛实际走了哪些 URL,内链能看到站内可达路径,Sitemap 能看到你希望被抓的清单。三者对照,重复和缺失都会显形。
- 从日志中筛选蜘蛛访问,按 URL 分组,看同一内容是否对应多个地址。
- 抽取一组重复 URL,检查它们的响应码、canonical 和内链写法是否一致。
- 把 Sitemap 中的 URL 与日志访问记录做差集,找出长期未被抓取的页面。
- 对未被抓取的页面,检查站内是否有至少一条普通 HTML 链接指向它。
- 检查服务器对重点路径的响应时间,排除因超时导致的抓取减少。
如果日志里某类参数 URL 占比很高,但带来的有效访问很少,就值得收敛。反之,如果 Sitemap 里大量 URL 没有日志记录,优先补内链和检查服务器响应,而不是继续加提交量。
路径重复和路径缺失往往同时存在:重复的 URL 占用了抓取时间,缺失入口的页面又得不到机会。先统一 URL,再补关键入口,通常比单独调参数更有效。
处理建议与观察窗口
具体动作可以分三步:第一,统一 URL 写法,内链、Sitemap、canonical 指向同一版本;第二,为重要页面补上固定内链入口,避免只靠 JS 或搜索页;第三,保持服务器稳定响应,减少超时和 5xx。做完后给蜘蛛一段观察时间,通常需要几周才能从日志里看到路径变化。
不要期待立刻收录或排名。更实际的目标是:重复抓取减少,重要页面的访问记录逐渐出现,抓取路径与站内结构趋于一致。