很多站点会碰到一种奇怪情况:sitemap 里提交了页面,日志里也能看到蜘蛛来抓过一两次,但索引里始终没有它。查来查去,页面本身内容正常、状态码 200、也没有 noindex。问题往往不在页面本身,而在于它在站内是个“孤岛”——除了 sitemap,没有任何一个可抓取的链接指向它。
什么是孤岛页面
孤岛页面指的是从首页出发,顺着正常链接走不到、或者要走很多层才勉强能到的页面。常见形态有:
- 只出现在 sitemap,站内任何页面都没有指向它的 a 标签;
- 入口只存在于 JS 渲染后才出现的列表里,或者被 onclick 事件代替的假链接;
- 链接带了 nofollow,蜘蛛能看到但不跟随;
- 页面藏在需要登录、需要提交表单、需要点选筛选条件之后。
这些页面在技术上“存在”,在爬虫的路径图上却“不存在”。
为什么 sitemap 救不了孤岛页面
sitemap 的作用是告诉搜索引擎“这些 URL 存在”,它能提升 URL 被发现的机会,但不等于会被持续抓取,更不等于会被收录。搜索引擎判断一个页面值不值得反复抓,会参考站内有多少链接指向它、这些链接来自什么质量的页面。一个没有内链支撑的 URL,即便被 sitemap 带出来,通常也只被抓一次,之后很少再被访问。
URL 发现、抓取、收录是三件不同的事。内链解决的主要是“被发现”和“再来一次”,内容质量决定的是“能不能留下”。
先把孤岛页面找出来
不用复杂工具也能做初步排查:
- 导出 sitemap 里的全部 URL,同时用爬虫工具或 site: 指令跑一遍站内可到达的 URL 列表,两者取差集,差集里的就是疑似孤岛。
- 看蜘蛛日志:某个 URL 只被访问过一两次、之后再无记录,且访问来源不是站内跳转,基本可以确认。
- 抽查几个页面的 HTML 源码,确认链接是真的 a 标签,且没有 nofollow。
注意,孤岛页面不等于低质页面。有些内容确实有价值,只是运营时忘了给入口。
补内链的几种做法
相关性入口优先
最自然的方式是在主题相近的页面里加正文内链。比如一篇讲退货流程的页面,可以从“售后政策”“常见问题”里链过去。这种链接既有用户价值,也更容易被判定为有效链接。
聚合页与列表页
如果孤岛页面成批出现,比如某类文章、某个栏目下的详情页,与其一页页补链,不如建一个分类聚合页,把这些 URL 收进列表,再把聚合页挂到导航或首页可见位置。一条入口解决一批页面。
面包屑与上一级返回
很多详情页只有 logo 和底部导航,没有任何指向同级或上级的链接。补上面包屑,能让爬虫顺着层级往上走,也顺便把同层级页面串起来。
几个容易踩的坑
- 为了收录硬塞链接:在页脚堆几百个链接,权重和可读性都会被稀释,蜘蛛也未必跟。
- 把链接做成按钮或 JS 跳转:用户点得动,爬虫不一定跟得动。关键入口尽量用 a 标签。
- 补完入口就不管了:加完内链后要看一两个抓取周期内的日志,确认这些 URL 的抓取频次有没有变化。
加完入口之后怎么验证
先看日志:目标 URL 的访问是否从“一次性”变成有稳定来源。再看索引:搜索该页面的完整标题或一段独特文字,看结果里有没有出现。如果抓取变多了但依然不收录,那问题就转移到内容质量、页面相似度或站点整体信任度上,需要另做排查,而不是继续加链接。
孤岛页面的处理逻辑其实很朴素:让重要的页面在站内被人和蜘蛛都能走到。入口通了,抓取和收录才有后续可谈。