站点里常有一类页面:内容本身没问题,也能正常访问,但除了 Sitemap 或某次站外分享,几乎没有任何站内链接指向它。这类页面通常被称为孤岛页面。对搜索蜘蛛来说,它不一定是抓不到的问题,更多是想不到的问题——发现入口太窄,抓取队列里自然排不上号。
孤岛 URL 为什么难被发现
搜索蜘蛛的常规路径是顺着链接走:从已知入口出发,解析页面上的可抓取链接,把新地址放进待抓队列。一个页面如果没有被任何已抓取页面链接,就只能依赖 Sitemap、站外链接、历史记录这些旁路入口。旁路入口不是不能用,但它们缺少上下文:蜘蛛不知道这个页面属于哪个栏目、和哪些内容相关,也就难以判断抓取优先级和重访频率。
结果是,页面可能被发现了,但抓取和更新都慢;也可能长期停留在已知未抓的状态。
常见的孤岛成因
- 页面只从列表页第 N 页可达,而分页链接靠 JS 或复杂参数输出,蜘蛛走不到那一层;
- 活动页、专题页做完就撤掉入口,链接只剩在 Sitemap 里;
- 改版或栏目调整后,旧链接被移除,新页面忘了补回导航或正文内链;
- 后台批量生成的内容页,只写了 URL,没有在聚合页挂出入口;
- 文章之间互相引用不足,正文里几乎没有指向同类内容的链接;
- 页面被放进折叠菜单、弹窗或 tab 里,链接在初始 HTML 中并不存在。
怎么把孤岛找出来
思路不复杂,核心是把站点认为自己有哪些 URL,和蜘蛛实际能顺着链接走到哪些 URL,做一次对照。
- 导出 Sitemap 中的 URL 列表,作为候选全集;
- 用爬虫工具从首页出发,记录可以顺着链接走到的内链图;
- 两者相减,只出现在 Sitemap、不出现在内链图里的地址,基本就是孤岛候选;
- 再用服务器日志交叉验证:如果某个 URL 长期没有来自站内的 referer,判断会更可靠。
这一步不需要复杂工具,中小站点用爬虫类工具跑一遍全站,再人工比对就能看出大致轮廓。
补救入口的几个方向
1. 补内链,而且要带上上下文
最直接的做法是在相关文章正文、栏目聚合页、标签页里加上指向孤岛页面的链接。锚文本尽量描述页面主题,而不是清一色的点击这里。链接位置往往比数量更重要:正文里的自然引用,通常比页脚堆一排链接更有说明力。
2. 建聚合入口
如果孤岛页面是一批同类内容,做一个分类页或索引页把它们列出来,让蜘蛛从一个层级清晰的入口批量进入。这比逐个页面补内链省事,也更容易长期维护。
3. 保证分页与列表入口可抓
列表页翻到深处的链接,尽量用标准 a 标签输出,避免只能靠交互触发。如果确实走前端加载,至少保证初始 HTML 里存在通往后续页面的路径。
4. Sitemap 继续用,但别当唯一入口
Sitemap 能补充发现,但它提供的是地址清单,不是链接关系。全站只靠 Sitemap 暴露的页面,长期看抓取和更新都不会太理想。
几个容易踩的坑
- 为了消除孤岛,在每篇文章底部机械堆砌无关链接,反而稀释了真正重要的入口;
- 把孤岛页面全部塞进主导航,导航失去重点,用户和蜘蛛都难以判断层级;
- 只补链接不检查可访问性,链接指向的页面本身返回异常状态码,等于白补;
- 改版时只保留新 URL,旧链接既不做 301 也不保留入口,历史积累的发现路径直接断掉。
孤岛页面不是必须彻底消灭的东西。一些低频、临时、仅在特定条件下使用的页面,可以接受只通过 Sitemap 或站外入口被发现。真正需要关注的是那些有业务价值、却因为内链疏忽而长期不被抓取的页面。
小结
URL 发现的第一驱动力始终是链接。把站内链接结构理顺,让重要页面从几个稳定入口都能被走到,比反复提交 Sitemap 更管用。定期做一次内链图与 Sitemap 的对照,就能提前发现大部分孤岛问题。