搜索抓取

孤儿页面:没有内链指向的 URL,蜘蛛靠什么找到它

没有内链指向的页面,蜘蛛仍可能通过 Sitemap、外链或历史记录发现它,但抓取频率往往很低。本文讲清楚孤儿页面的发现路径、怎么用爬虫和日志把它们找出来,以及哪些页面值得补内链、哪些应该主动屏蔽。

搜索抓取

孤儿页面:没有内链指向的 URL,蜘蛛靠什么找到它

站内经常出现这种情况:某一批 URL 能被蜘蛛抓到,日志里也有记录,但你在页面上怎么点都找不到入口。这类没有内链指向、只能靠外部途径被发现的页面,通常被称为孤儿页面。它们不一定有问题,但它们的抓取路径和正常页面完全不同,值得单独拿出来看。

孤儿页面是怎么被蜘蛛发现的

没有内链,不等于蜘蛛一定不知道这个 URL。常见的发现途径有这几种:

  • Sitemap:XML Sitemap 里直接列出的 URL,是孤儿页面最主要的发现来源。
  • 外部链接:别的站点链过来,蜘蛛顺着外链就进来了,哪怕站内一条链接都没有。
  • 历史抓取记录:URL 以前被收录过,蜘蛛会按旧记录回访。
  • 站内搜索与筛选参数:某些筛选组合会生成新的 URL,被蜘蛛在抓取时试探到。
  • JavaScript 渲染出的链接:首屏 HTML 里没有、渲染后才出现的链接,也可能把 URL 带出来。
  • 重定向:301、302 指向的目标 URL,同样会被记录下来。

这些路径有一个共同点:它们不依赖站内导航结构。所以页面即使被抓到,位置也很脆弱——一旦 Sitemap 更新失误或者外链失效,蜘蛛就可能不再回来。

被抓到和能被持续抓取是两件事

孤儿页面最典型的表现是抓取频率极低。正常页面有内链不断被蜘蛛经过,等于持续给它投票;孤儿页面唯一的入口在 Sitemap 里,蜘蛛每次都要重新读一遍 Sitemap 才能想起来。在抓取额度有限的情况下,这类 URL 往往排在后面。

另外,孤儿页面通常也缺少内部链接传递的上下文。蜘蛛只看到一个孤立的 URL,不知道它在站内处于什么位置、属于哪个主题,这对理解页面内容没有帮助。

怎么找出站内的孤儿页面

  1. 导出 Sitemap 里的全部 URL。
  2. 用爬虫工具从首页出发,抓一遍站内可点击到的全部链接。
  3. 两份清单做差集:只在 Sitemap 里、不在爬取结果里的,基本就是孤儿页面。
  4. 再和服务器日志对照,看这些 URL 是否真的被抓过、抓取频率如何。

反过来也值得查一遍:有些页面在内链里,却没有进 Sitemap。这类不算孤儿,但同样需要确认是否值得被收录。

补内链的几种做法

  • 频道页或聚合页:把同类内容集中列出,是最省事的入口来源。
  • 面包屑导航:让每个详情页都有一条回到上级栏目的路径。
  • 正文语境链接:在相关内容里自然地链过去,比堆在侧边栏更有效。
  • 相关推荐、上一篇/下一篇:适合内容量大的站点,能顺带把深层页面拉近一些。

补内链的目标不是让每个页面都堆满链接,而是让蜘蛛从入口出发,能顺着一条合理的路径走到它。链接放得自然、位置稳定,比数量更重要。

把 Sitemap 当作补充手段,而不是唯一入口。内链才是蜘蛛长期回访的路径。

有些孤儿页面是有意为之

并不是所有孤儿页面都要救。筛选参数页、测试页、已下线的活动页、登录后才能看的页面,本来就不适合被大量抓取。这类页面更适合用 robots.txt 或 noindex 明确处理,而不是硬塞进内链里,白白占掉抓取额度。

所以处理孤儿页面的第一步不是补链接,而是先分清楚:这个 URL 是希望被持续抓取,还是希望它安静一点。分完类再动手,后面会省很多事。