搜索抓取

孤儿页与枢纽页:URL 发现的两端怎么兼顾

URL 发现不只取决于是否提交,更取决于站点结构中的路径是否畅通。本文从孤儿页和枢纽页两个极端出发,说明如何用日志、Sitemap 与抓取实测交叉排查入口缺失,让每个页面都有可达入口;同时补充面包屑、HTML 站点地图等兜底路径,并提醒服务器稳定性对抓取节奏的影响。

搜索抓取

孤儿页与枢纽页:URL 发现的两端怎么兼顾

做搜索抓取的人常遇到一个反差:Sitemap 里明明提交了几千条地址,日志里却没有访问记录;另一些页面则天天被爬,内容却没什么价值。差别往往不在提交动作,而在站点结构本身——搜索蜘蛛是顺着链接走的,路径通不通、绕不绕,直接决定一个 URL 能不能进入抓取队列。

孤儿页:没有任何入口的地址

孤儿页指的是站内没有任何链接指向、也不在 Sitemap 中的页面,或者只有 Sitemap 一条通道的页面。前者几乎只能靠外链或历史记录被发现,后者则把全部希望押在一个入口上,一旦 Sitemap 读取失败或未及时更新,页面就长期处于沉默状态。

排查孤儿页比较实用的做法是把几个数据源交叉比对:

  • 服务器日志中出现过的 URL 列表,与 CMS 后台已发布内容总数对比;
  • Sitemap 文件包含的 URL 与实际页面数是否一致;
  • 用抓取工具从首页出发爬一遍,看哪些页面始终没被访问到。

差集通常就是问题所在。处理方式并不复杂:给这些页面补上合理入口,比如在相关聚合页、正文推荐位或导航里加入链接,让它们至少有一条从首页可达的路径。

枢纽页:把路径长度压下来

另一端的极端是枢纽页——被大量链接指向的列表页、专题页、标签页。它们承担的是分发职责,把抓取意愿传递给下面的详情页。枢纽页设计得好,深页只需要两三跳就能到达;设计得差,所有链接都堆在首页,反而会让首页变成噪音源。

这里有几个判断标准:

  • 从首页到任意一个内容页,点击次数是否控制在三到四跳以内;
  • 枢纽页指向的链接数量是否过多,导致单条链接获得的关注被稀释;
  • 枢纽页本身是否有稳定更新,新内容能否第一时间出现在上面。

面包屑与 HTML 站点地图:两条兜底路径

面包屑看起来只是用户体验细节,实际上给每个详情页补了一条通往分类页和首页的固定链路。当内容页因为改版、迁移而暂时失去其他入口时,面包屑往往还是通的。

HTML 站点地图页的作用类似,它把所有栏目和重要页面集中在一个页面里,用纯文本链接的形式呈现。对搜索蜘蛛来说,这是识别站点轮廓的快捷方式;对运营来说,它也是检查链接是否断裂的直观清单。需要注意的是,这个页面本身要能被抓取、能被链接到,放在空目录里就失去了意义。

用日志验证路径是否真的走通

结构设计合理不代表蜘蛛就按你想的走。定期看服务器日志,能发现一些意料之外的情况:某个分类页被抓得很勤,下面的详情页却很少被访问,说明链接位置可能太靠下;某些 URL 只在第一次抓到,之后就再没出现过,可能需要检查是否有 nofollow 或参数问题。

路径规划和实际抓取之间总会有偏差,日志是唯一能反映真实情况的数据,比任何结构图都可靠。

服务器稳定性:路径通不等于抓得到

即使内链结构没问题,抓取仍然会受服务器状态影响。返回 5xx、响应时间过长、频繁超时,都会让搜索蜘蛛降低访问频率,甚至暂时放弃某段时间的抓取。新 URL 受影响最明显,因为它们还没有历史记录,一旦首次抓取失败,重新排队可能要等很久。

  • 关注 5xx 错误率的波动,尤其是内容发布高峰期;
  • 检查是否有大量请求落在同一时间段,造成瞬时压力;
  • 确认 CDN 或防火墙没有对搜索蜘蛛的请求做误拦截。

把稳定性当成 URL 发现的一部分来看待,会比把它们分成两个问题更接近实际。

最后,孤儿页和枢纽页其实是同一个问题的两端:一边是入口缺失,一边是入口过剩。定期用日志和抓取实测去核对,比每年改一次导航结构更有效。路径清楚、服务器稳定,URL 被发现在多数情况下只是执行顺序的问题,而不是运气问题。