搜索抓取

抓取路径中的孤岛页面:入口缺失与内链补链核对

孤岛页面往往不是被封锁,而是站内没有入口。本文从 Sitemap、内链、JS 渲染和服务器稳定性几个角度,说明如何判断页面是否真的缺少发现路径,并给出补链与日志核对的顺序,帮助梳理抓取路径中的遗漏点。

搜索抓取

抓取路径中的孤岛页面:入口缺失与内链补链核对

做 URL 发现时,很多站点的入口并不是被封锁,而是没有被“指出来”。页面能打开、返回 200、也没有 robots 限制,但蜘蛛从站内链接走不到它,只能依赖 Sitemap 或外部链接碰运气。这类页面通常被称为孤岛页面,它未必完全不被抓,但发现路径明显变窄,更新后的回访也更容易滞后。

孤岛页面常见的形成方式

先别急着补链,先确认它为什么没有入口。常见原因有几种:

  • 页面只提交了 Sitemap,站内没有任何指向它的链接。
  • 链接由前端 JS 在交互后才插入,首屏 HTML 里找不到 href。
  • 入口藏在很深的分页、筛选或折叠组件里,蜘蛛翻不到。
  • 导航、面包屑、相关推荐都遗漏了该栏目或该批内容。
  • 入口链接被 nofollow 或 robots meta 阻断,虽然存在但不传递发现路径。

这些情况里,只有最后一种属于“写了但被限制”,其余大多属于“根本没有写”。

先判断是不是真孤岛

用日志和抓取记录交叉验证

判断时不要只看 Sitemap 提交量。可以拉一段服务器日志,按蜘蛛 UA 过滤,看目标 URL 有没有被请求过、首次请求时间是什么、请求时返回的状态码是什么。如果日志里完全没有记录,再去检查站内链接。

  • 在栏目页、首页、聚合页搜索目标 URL,看是否存在可点击的 a href。
  • 检查链接是否被 JS 渲染,首屏 HTML 是否包含该地址。
  • 对比 Sitemap 中的 URL 数与内链可达 URL 数,看差值集中在哪些目录。
  • 确认链接没有被 nofollow、robots meta 或 WAF 规则误伤。

如果日志显示蜘蛛来过但返回 5xx、超时或连接重置,那它更可能是“临时孤岛”,问题在服务器稳定性,而不是内链。

内链补链的优先级

补链不是把所有页面都堆到首页。更合理的顺序是从离首页近、相关性强的位置开始:

  1. 先补栏目页和分类页,让每个内容至少有一个稳定入口。
  2. 补面包屑和上一级列表,保证层级路径可回溯。
  3. 补相关推荐、同标签、同系列入口,增加被发现的机会。
  4. 检查分页组件,确认翻页链接可抓取,不要只用按钮加载。
  5. 确认新发布的页面会自动出现在某个固定列表或聚合页中。

补链后不要立刻期待抓取变化,URL 发现和回访调度需要时间。更实际的做法是观察一段时间的日志,看新入口是否带来请求。

服务器稳定性会放大孤岛问题

即使入口已经补上,如果服务器在蜘蛛来访时频繁超时、返回 5xx 或连接被重置,蜘蛛也可能降低回访频次。对孤岛页面来说,本来入口就少,一次失败可能意味着很长时间不再被尝试。核对时可以把时间对齐:日志里蜘蛛请求的时间段,是否正好对应服务器负载高峰、发布任务或备份窗口。

孤岛页面不等于永远不被抓,但它对服务器稳定性和入口完整性的要求更高。入口越少,容错空间越小。

一个可执行的核对顺序

  • 从 Sitemap 抽一批 URL,去站内搜索是否存在内链。
  • 查看首屏 HTML,确认链接不是纯 JS 交互产物。
  • 检查链接是否被 nofollow、robots meta、WAF 拦截。
  • 用日志确认蜘蛛是否来过,以及返回状态和耗时。
  • 从栏目、面包屑、相关推荐、分页四个位置补入口。
  • 观察两周日志,确认新入口是否带来抓取请求。

把这几步做完,通常能区分“没入口”和“入口不稳定”两类问题。前者靠内链结构解决,后者要回到服务器稳定性和抓取窗口去处理。