做站点运营的人常会遇到一种情况:某个页面在 Sitemap 里列着,URL 也能直接打开,但站内翻遍导航和列表都找不到通往它的链接。这类页面在抓取语境里常被称为「孤岛页面」。它能不能被蜘蛛发现,取决于蜘蛛是否把 Sitemap 当作可信的发现入口,以及这个地址本身是否值得再抓一次。
蜘蛛发现 URL 的主要入口
蜘蛛不是凭空知道地址的,它需要一个来源。常见的有几类:
- 内链:从已抓取的页面顺着链接走到新页面,这是最稳定、也自带上下文的一条路径。
- Sitemap:站点主动提交的 URL 清单,相当于一份目录,蜘蛛可以按表抓取。
- 外链与主动提交:其他站点指向你的链接,以及在搜索平台手动提交的单个地址。
- 跳转与规范化:重定向、canonical 指向的地址,也可能成为发现来源。
孤岛页面切断了第一条,只能依赖剩下的路径。Sitemap 是一条有效路径,但它只告诉蜘蛛「这里有个地址」,并不告诉蜘蛛「这个地址有多重要」。
孤岛页面是怎么产生的
多数孤岛不是有意做出来的,而是站点演进留下的结果:
- 改版时删掉了旧入口,页面本身却还保留着;
- CMS 自动生成的标签页、归档页、作者页,没有放进任何导航;
- 批量生成的详情页先发了 Sitemap,内链还来不及补;
- 只在筛选、排序等交互中出现,无法人工构造抓取路径的页面。
这类页面往往数量不少,积累起来会挤占抓取资源,在日志里也常表现为抓取很散、深度很浅。
Sitemap 能做什么,不能做什么
Sitemap 的价值在于补充发现:当内链路径太深或已经断开,它能把地址直接送到蜘蛛面前。维护好 lastmod 有助于蜘蛛判断某个地址是否需要重新抓取,但这并不等于收录承诺。如果 Sitemap 里长期堆着大量重复、参数化或低质量地址,蜘蛛对这个文件的信任度会下降,抓取节奏也可能趋于保守。
另一个常见误区是把 Sitemap 当成唯一的发现方式。只靠 Sitemap、不给内链的页面,即使被抓到,也很难从站内获得稳定的再抓取信号——页面更新了,却没有任何入口提醒蜘蛛回来看。
怎么确认孤岛页面是否被抓
- 查服务器日志:搜对应的 URL 路径,确认是否有蜘蛛 UA 的请求,以及返回码是 200 还是 3xx、4xx。
- 统计内链数:把站内链接抓取一遍,找出指向数为 0 的地址。
- 区分「没抓」和「抓了没收录」:这是两个问题,前者要修发现路径,后者要看内容质量与规范化设置。
日志里也要留意抓取的时间分布。孤岛页面如果只在 Sitemap 更新后才偶尔被访问,说明抓取兴趣有限,此时补内链通常比反复提交更有效。
把孤岛接回主干的思路
- 在相关的内容页里补自然内链,锚文本写清楚目标页的主题,不要用「点击这里」。
- 让列表页、聚合页或分类页收录这些地址,给它们一个稳定的上一层。
- 检查面包屑和相关推荐位,确认从首页到目标页有一条走得通的路径。
- Sitemap 继续保留,并让其中的 lastmod 与页面真实更新时间保持一致。
- 如果页面确实没有保留价值,考虑合并、重定向或设置 noindex,而不是让它以孤岛形式占着抓取预算。
小结
URL 发现是一条链:入口、路径、抓取、再抓取。Sitemap 能补上入口,却补不上路径和上下文。想让孤岛页面被稳定抓取,最终还是要回到最基础的一件事——给它一条从站内走得通的链接。
孤岛页面不是抓不到,而是缺少被反复抓的理由。内链提供路径,Sitemap 提供目录,两者同时存在时,抓取才更稳定。