站点里总有一些页面,Sitemap 里列着,偶尔也能被搜到,但抓取日志里几乎看不到搜索蜘蛛的访问记录。这类页面常被称作“孤岛页面”:它没有被任何可抓取的链接指向,只能靠 Sitemap 或外链被偶然发现。对依赖蜘蛛池和自然抓取来推动 URL 发现的站点来说,孤岛页面会长期占着抓取预算,却很难形成稳定的抓取节奏。
孤岛页面是怎么形成的
- 内容发布后只从首页或列表页撤下,原入口消失,页面 URL 仍然可以访问;
- CMS 自动生成的标签页、作者页、归档页没有稳定的上级栏目链接;
- 改版或栏目重组时,旧链接被删除,但没有保留指向新路径的入口;
- 站内搜索、筛选参数生成的页面被当成正式内容,却没有内链出口;
- Sitemap 由程序全量生成,和实际内链结构脱节,把孤岛页面一并提交。
这些情况有一个共同点:页面的可访问性没问题,缺的是从站点主链接网络回到它的路径。抓取工具沿着链接走,走不到的地方就只能等 Sitemap 提醒,优先级自然偏低。
找出孤岛页面的几个办法
- 从服务器抓取日志中,提取一段时间内搜索蜘蛛访问过的 URL 集合;
- 用 Sitemap 的 URL 全集减去日志抓取集合,差集就是长期未被抓取的候选;
- 用站内爬虫再抓一遍站点,记录每个 URL 的入链数量,入链为零的基本就是孤岛;
- 交叉比对后,优先处理有搜索需求、内容质量尚可但没有入链的页面。
日志和入链统计要放在一起看。只看日志,容易把“访问过但没被收录”和“根本没被抓取”混为一谈;只看爬虫结果,又无法判断抓取调度是否已经放弃这些 URL。
补入口时优先做的事
恢复栏目层级
先给孤岛页面找到归属栏目,并在该栏目的列表页或聚合页中给出稳定入口。如果内容属于某个系列,就把它挂回系列导航里,让层级路径重新成立。
用正文相关链接代替底部堆积
在主题相近的页面正文中加自然的相关推荐,通常比在页脚堆一长串全站链接更有效。链接文本要和目标页面主题一致,避免使用“点击这里”这类没有语义的锚文本。
标签页和聚合页要可控
标签、专题这类聚合页如果本身有入口,可以作为孤岛页面的二级入口。但要控制数量,避免生成大量内容稀薄的中间页,反过来稀释抓取路径。
面包屑与导航兜底
面包屑不只是展示元素,它同时是一条稳定的层级路径。让每个内容页都能通过导航或面包屑至少回到一个可抓取的列表页,页面就不会完全悬空。
Sitemap 作为保底,而不是唯一入口
Sitemap 有助于发现,但不等同于抓取优先级。真正的发现效率还是来自站内链接。可以保留 Sitemap,同时把内链补齐,两者是配合关系,不要互相替代。
补完之后怎么验证
- 重新查看抓取日志,观察目标 URL 是否开始出现访问记录;
- 确认入链数量从 0 变成稳定值,而不是靠单次外链临时带入;
- 检查新增入口是否带来大量重复参数 URL,如有则及时做归一化处理;
- 如果页面确实没有检索价值,考虑直接下线并返回合适的 404 或 410,而不是长期留在 Sitemap 里。
验证时也要留意服务器返回时间。入口补齐后如果页面响应偏慢,蜘蛛可能走到一半就放弃,抓取记录会断续出现,看起来像没补成功,实际是响应性能在拖后腿。
孤岛页面本质上是链接结构问题,不是提交问题。与其反复提交 Sitemap,不如先把每个值得被收录的页面接回站点的主链接网络中。