搜索抓取

没有内链指向的页面,蜘蛛还能自己找到吗

站内没有任何链接指向的 URL,就是所谓孤儿页面。它可能返回 200、内容也不差,却很难被蜘蛛稳定发现和回访。这篇文章讲清楚蜘蛛发现 URL 的几条通道、孤儿页面为什么容易被漏掉、如何用日志和链接清单把它找出来,以及怎样把入口补回去。

搜索抓取

没有内链指向的页面,蜘蛛还能自己找到吗

什么是孤儿页面

孤儿页面指的是站内没有任何链接指向的 URL。它可能真实存在、返回 200,内容也写得不错,但从首页出发,顺着导航和内链一层层点下去,永远走不到它。

对蜘蛛来说,站点不是一张提前画好的完整地图,而是一个从若干入口出发、沿着链接不断扩散的探索过程。没有链接指向的页面,就等于没有被放进这张正在扩散的图里。

蜘蛛发现 URL 的几条通道

  • 站内链接:导航、列表页、正文锚文本、面包屑、相关推荐;
  • Sitemap:XML 站点地图、分片与索引文件;
  • 站外链接:其他站点的引用、论坛或社交平台上的分享链接;
  • 历史记录:之前抓取过、已经进入抓取队列的旧地址;
  • 站内搜索结果页或参数拼出的列表页,这类入口质量参差不齐。

孤儿页面通常只剩后面几条通道可用。它们的共同点是不连续、不稳定,也不保证覆盖——Sitemap 可能被延迟读取,外链可能被删掉,历史记录也可能随时间衰减。

为什么孤儿页面容易被漏掉

把地址写进 Sitemap,解决的是“我知道有这个 URL”;而站内链接解决的是“这个地址在站点里处在什么位置”。两者的作用并不相同。

蜘蛛判断一个地址是否值得反复回访时,会参考它被链接的情况:有多少入口指向它、这些入口本身是否重要、链接出现的上下文是否相关。孤儿页面在这方面几乎没有信号,于是它可能被收录一次,之后就长期停留在队列的尾部。

三个可操作的排查思路

  • 在服务器日志里筛出该 URL 的访问记录,看抓取次数和访问来源;如果几乎没有来源页,只出现直接请求,基本可以判定是孤儿;
  • 用爬虫工具模拟从首页出发的可达性,看哪些地址走不到;
  • 导出全站 URL 清单,再导出所有内链的指向目标,两者的差集就是候选孤儿页面。

把孤儿页面接回站点

  1. 从最相关的父级页面加入口,比如分类页、专题页、上下篇导航;
  2. 在相关正文里用自然的锚文本链接过去,注意上下文要说得通;
  3. 相关推荐和标签聚合要克制,避免把大量不相关的页面硬拼在一起;
  4. 确实不适合内链的独立页面(如活动落地页),至少放进 Sitemap,并保证站内某处有可点击的链接;
  5. 如果页面本来就不该被搜索看到,用 robots 规则或 noindex 明确处理,别让它半悬着。
Sitemap 解决发现,内链解决价值判断。指望只提交 Sitemap 就让孤儿页面获得和内页一样的抓取频率,通常不现实。

几个容易忽略的细节

  • 靠 JavaScript 渲染后才生成的链接,在源码里可能看不到,需要确认蜘蛛拿到的那份 HTML 里是否存在;
  • 纯图片链接、按钮点击跳转,如果没有标准 a 标签兜底,入口就可能失效;
  • 被 robots.txt 屏蔽的路径既抓不到,也无法通过它传递链接;
  • 大量使用 nofollow 属性的内链,会让入口的信号变弱。

最后提醒一点:补好内链之后不要指望立刻出现变化。蜘蛛重新走过这些路径需要时间,抓取节奏也和站点整体的更新频率、服务器响应情况有关。定期检查链接清单与日志,比一次性大改更稳妥。