在抓取日志里偶尔会看到一些陌生 URL:站内导航跳不到,列表页也翻不出来,但蜘蛛确实访问过。这类页面通常被称为孤儿页面。它们出现并不代表蜘蛛能凭空猜出地址,而是通过某些暴露渠道被发现的。把渠道梳理清楚,才能决定是补内链、做收敛,还是直接屏蔽。
孤儿页面在抓取视角下的定义
从站内点击出发,沿着导航、分类、聚合页、相关推荐都走不到,只能依赖站外链接、Sitemap 或历史记录到达的 URL,就可以视为孤儿页面。它们不一定没有价值,但入口缺失会让发现和回访都变得不稳定。
URL 能被发现的几条主要渠道
- Sitemap 与索引文件:最直接的补充渠道,适合有内容但暂无内链的页面。
- 站外链接:论坛、合作站、社交平台上的链接,往往是新域名早期的主要来源。
- 站内搜索结果与筛选页:如果这类页面可被抓取,参数拼接出来的 URL 会成批暴露。
- RSS / Feed 与结构化数据:Feed 条目和页面中的 JSON-LD 都可能带上 URL。
- 脚本注入的链接:渲染后才出现的锚点,抓取时是否执行脚本会直接影响发现结果。
- 历史记录与旧 Sitemap:改版前的路径、遗留参数页可能仍在被回访。
排查孤儿页面的操作顺序
- 从服务器日志导出被访问的 URL 列表,剔除已知的导航页与列表页。
- 用爬虫工具只依赖站内链接抓一遍,得到站点自身可达的 URL 集合。
- 两个集合相减,差值即为疑似孤儿页面。
- 逐个回看来源:是 Sitemap、外链、搜索结果页,还是历史遗留路径。
- 检查是否有入口被 robots.txt 屏蔽,或被分页逻辑截断,导致抓取时入口消失。
补链与收敛的处理方式
如果页面确有内容价值,优先补站内入口:
- 在相关文章、分类聚合、标签页中加入指向链接,锚文本写清主题。
- 维护一份 HTML 站点地图页,把难以进入导航的页面集中列出。
- 确认 Sitemap 中的 URL 与站内实际可点击的 URL 一致,减少两边对不上的情况。
- 对确无价值的参数页、测试页,用 robots.txt 或状态码处理,避免继续占用抓取次数。
核对清单
- Sitemap 是否覆盖了无内链的页面?最后修改时间是否与实际变更相符?
- 分页、筛选、搜索页是否因屏蔽规则导致深层入口断链?
- 关键链接是否依赖脚本渲染,静态 HTML 中是否留有可读的锚点?
- 改版后旧路径是否仍有回访,是否需要 301 归并?
提示:Sitemap 和站外链接只解决被发现的问题,并不保证被抓取和收录。孤儿页面的根本症结通常是内链结构缺失,补链一般比反复提交地址更有效。
把发现渠道与站内可达性分开核对之后,孤儿页面就不再是随机冒出的异常,而是可以逐条归因、逐条处理的问题。