有些 URL 从上线那天起就没被任何站内链接指过:它们可能来自批量生成的落地页、被撤下导航的老栏目,或者只在 Sitemap 里出现过一次。这类页面在日志里往往只有零星几次抓取,甚至长期为零。它们通常被称为孤岛页面,问题不在于页面本身好坏,而在于蜘蛛找不到一条稳定的路径走到它。
蜘蛛发现 URL 的几条通道
外链、Sitemap、站内链接是三条主要通道。外链不由你控制,Sitemap 是一份候选清单,只有站内链接是你能持续维护、并且蜘蛛每次抓取都会重新读取的路径。把 URL 写进 Sitemap 相当于递了一张名片,但站内没有一条路通向它,蜘蛛对它的抓取优先级通常不会高。
所以判断一个页面是不是孤岛,不能只看 Sitemap 里有没有,而要看从首页出发,经过几次点击能到达它。
常见的孤岛页面来源
- 改版时保留了页面,但导航和面包屑已经不再指向它
- 按模板批量生成的城市页、型号页,只在 Sitemap 里存在
- 用户提交内容、评论的独立页,没有任何聚合入口
- 已经下线的活动页,URL 还能访问但站内没有链接
- 参数页、筛选组合页,被工具采集后塞进了清单
怎么把孤岛找出来
- 从服务器日志提取被蜘蛛抓取过的 URL,和站内链接可到达的 URL 做差集
- 用站内搜索或爬虫工具从首页出发抓一遍,看哪些 URL 不在结果里
- 对比 Sitemap 与实际内链覆盖,差距大的部分通常就是孤岛集中区
- 抽查这些 URL 的响应状态,确认是 200、301 还是已经变成软 404
分类处理,而不是一股脑补链接
不是所有孤岛都值得救。判断标准可以简单一点:这个页面有没有独立的搜索需求,有没有真实用户会需要它。
- 有需求、内容还在维护:补一条稳定入口,比如相关推荐、标签聚合页、栏目二级导航
- 内容过时但仍有访问:做 301 指向新的等价页面,让用户和信号一起过去
- 批量生成、内容单薄:考虑合并或设为 410,别为了凑数量留在 Sitemap 里
- 只在特定场景使用的页面:可以不进导航,但至少从一个能被抓到的聚合页链接过去
内链入口的位置也有区别。导航和面包屑是站内最稳定的路径,正文链接上下文更强但容易被改动,页脚链接堆得太多反而像模板噪声。入口数量不用多,一两条来自相关内容的链接,通常比在页脚挂一排有用。
别用内链数量去凑抓取量。几十条指向同一个页面的链接,不会让它更快被处理,反而可能让蜘蛛把这一片区域当成链接农场。
处理完之后要看什么
补完内链之后,观察日志里这些 URL 的抓取次数和状态码变化,确认请求是分散到各个页面,而不是集中在少数几个。孤岛页面长期没人访问,服务器和缓存对它们往往没有准备,第一次被抓时容易出现超时或 5xx,这类响应会影响后续的抓取节奏。
如果站点承载有限,更实际的做法是先把最值得保留的一批页面接回内链,剩下的降低优先级,而不是一次性把几千个 URL 全部塞进 Sitemap 等着蜘蛛来。
最后,孤岛不是一次性问题。改版、下线栏目、调整导航都会重新制造一批,定期做一次内链覆盖的复查,比事后补救省事得多。