站内链接是搜索蜘蛛发现 URL 的主要通道,但总有页面掉在这张网之外:没有任何内链指向,只能靠 Sitemap 或外部链接偶尔被碰到。这类页面常被称为孤儿 URL,介于两者之间的则算半孤儿。
孤儿 URL 与半孤儿 URL 的区别
孤儿 URL:站内找不到任何指向它的可跟随链接,只能通过 Sitemap、外链或历史记录被发现。半孤儿 URL:站内有入口,但入口数量极少、位置很深,或者只存在于某个已经不再被访问的旧列表页里。
两者的共同点是抓取回访不稳定:链接越少、路径越深,蜘蛛重新走到的概率越低。
孤儿 URL 的常见来源
- 活动页或专题页下线后,入口被移除,但页面本身仍然可以访问;
- 筛选、排序、分页参数生成的组合地址,页面上不会互相链接;
- 列表分页只展示前若干页,末页之后的 URL 失去入口;
- CMS 草稿、测试页面误发布,未加入任何导航;
- 改版时目录调整,旧路径保留但新导航不再指向;
- 外链推广的落地页,站内没有反向入口。
怎么把孤儿 URL 找出来
- 从服务器日志里提取被请求过的路径集合,作为参照;
- 用爬虫工具抓取全站内链,得到“能被站内链接走到”的 URL 集合;
- 把 Sitemap 中的 URL 与前两个集合分别做差集,差集里往往就是孤儿或半孤儿;
- 再人工核对一次:有些页面是接口地址或静态资源,不需要处理。
这个对比不需要很复杂的工具,一次导出加一次抓取就能完成,关键是定期做,而不是只在上线时看一遍。
Sitemap 能替代内链吗
Sitemap 解决的是“告诉搜索引擎这里有这个地址”,它不传递上下文,也不说明页面之间的关系。只靠 Sitemap 存在的页面,抓取往往更零散,页面重要性也难以被判断。
Sitemap 是发现入口的补充,不是内链结构的替代品。能补内链的页面,优先补内链。
处理半孤儿页面的顺序
- 先判断页面是否值得保留:有搜索需求、有转化价值的,才谈补入口;
- 值得保留的,补一到两个稳定的站内入口,如相关推荐、栏目列表、归档页;
- 内容重复或过时的,考虑合并到主页面,并设置好跳转;
- 纯粹是参数组合产生的地址,可以用规范化或 robots 规则收敛,而不是逐个补链。
补内链时不必追求数量,一个位置合理、长期存在的入口,比散落在多个页面的临时链接更有意义。
抓取路径上的两个现实约束
第一是深度:孤儿页面通常位于目录末级,蜘蛛从首页出发需要经过多跳才能到达,任何一跳出现异常都会中断路径。第二是稳定性:如果服务器在抓取时段频繁返回 5xx 或超时,蜘蛛未必会一路重试到深层页面,这时再补内链效果也会打折。
因此,处理孤儿 URL 之前,先确认站点的主要入口响应正常、跳转链没有多余的中间页,把路径缩短,再谈补链。
一个小流程
- 每月导出一次日志路径与 Sitemap 地址;
- 与站内链接集合做差集,标记孤儿与半孤儿;
- 按保留、合并、下线三类分派;
- 对保留页面补入口,记录补链日期;
- 在下一次日志观察中,看这些地址是否出现新的抓取记录。
流程的价值在于让“有没有入口”变成一件可核对的事,而不是凭感觉判断页面是否被链接到。