不少站点把 URL 发现寄托在一条通道上:Sitemap 提交完就等,或者只靠首页导航往下带。一旦这条通道出问题——Sitemap 拉取失败、导航改版、某个栏目临时下线——搜索蜘蛛对新增地址的感知就会明显变慢。冗余设计的意思不是到处塞链接,而是让同一批 URL 有多条能被走到的路,任何一条断了还有别的入口。
单一入口为什么会失效
Sitemap 文件搬到 CDN 后返回 403、被防火墙拦掉、高峰期返回 503;导航改版后旧路径整片 404;列表页从服务端渲染换成前端渲染,链接不再出现在初始 HTML 里。这些情况都不算少见,而且往往不是同时发生的,排查时容易只盯着一个点。搜索蜘蛛不会因为一条路断了就疯狂重试,通常会等到下一轮抓取周期再来看。
常见的几条发现通道
- XML Sitemap:覆盖面广,适合批量交付地址,但依赖文件可访问与抓取频率。
- 站内链接:导航、面包屑、正文内链,是最稳定的通道,也最容易被人为忽略。
- HTML 站点地图页:面向人的目录页,同时给蜘蛛一条集中入口。
- 站外引用:外部页面上的链接,属于不可控但有效的补充。
- 提交接口:适合少量时效性强的地址,不适合当作唯一依赖。
- 历史抓取路径:蜘蛛记住的旧地址结构,改版后仍可能被反复访问。
冗余应该怎么排
关键入口至少两条路可达
核心栏目、重要详情页、新增内容的落地页,都应该同时出现在 Sitemap 和站内链接里。两条通道走的是不同机制,一条出问题另一条还能兜住。
通道之间不要互相依赖
常见的坑是:HTML 站点地图页本身只被写在 XML Sitemap 里,而没有任何站内链接指向它。这样它名义上有两个入口,实际只有一条路。它应该能从首页两三次点击到达。
给新内容一个固定落脚点
比如一个持续输出的“最新更新”页或时间归档页,保持服务端渲染、地址稳定、可被抓取。新地址发布后先出现在这里,再靠 Sitemap 补充,发现速度会稳很多。
服务器稳定性决定通道能不能走通
路径铺得再全,蜘蛛也可能走不完。响应超时、连续 5xx、同一 IP 被限速,都会让抓取提前中断,退回已经抓熟的旧页面。相比之下,抓取窗口内的响应时间稳定比峰值性能更重要。可以按小时看一次日志里的状态码分布,找出返回慢或报错的时段,再对照这段时间新增 URL 的首次抓取时间。
发现是抓取的前一步,抓取又是索引的前一步。链条后端出现的“新页面迟迟没动静”,原因往往在前面的入口或响应环节,而不是索引本身。
怎么确认 URL 真的被发现了
- 在服务器日志里找目标 URL 的首次出现时间,连同来源 Referer 一起看,判断是从哪条通道进来的。
- 用抓取模拟工具或站内爬虫走一遍从首页到目标页的路径,看是否需要登录、是否被规则挡住。
- 对比 Sitemap 中的地址数量与日志里实际被访问的数量,差异过大说明某条通道没被走。
- 对关键页面做多次测试,排除偶然因素。
一份可执行的检查清单
- 首页到核心栏目不超过三次点击。
- Sitemap 与站内链接尽量指向同一批地址,避免两套口径。
- 新内容有稳定、可抓取的归档入口。
- 定期检查 robots 规则,确认没有误挡重要目录。
- 监控 5xx 与超时比例,异常时段及时处理。
冗余的价值不在于立刻见效,而在于某条通道临时失效时,发现节奏不会整体塌掉。把入口分散开、把路径走通、把响应稳住,URL 发现这件事才有可预期的基础。