站点里常有一类页面:地址存在、服务器能返回 200、内容也是真的,但从首页出发,顺着任何一条可见链接都走不到它。蜘蛛只能靠站外链接或 Sitemap 偶尔碰见,抓取频次低,内容更新也长期无人问津。这类页面通常被称为孤岛页面,它属于抓取路径上的死角,而不是内容本身有问题。
孤岛页面是怎么产生的
大部分孤岛不是有意做出来的,而是在改版、下架、上线的过程中慢慢漏掉入口。
- 列表入口被撤掉,详情页还在。调整栏目、隐藏某个分类时没有删除页面,也没有做 301 或 noindex,于是它只剩下一个地址。
- 链接靠脚本生成。如果列表内容依赖前端渲染,蜘蛛第一次拿到的 HTML 里可能没有可跟随的 a 标签,页面就成了看不见的节点。
- 只躺在 Sitemap 里。Sitemap 能告诉蜘蛛地址存在,但不等于给它一条站内路径。只靠 Sitemap 的页面,抓取优先级和更新频率通常都偏低。
- 分页被截断。列表只保留前几页链接,或者用“加载更多”替代翻页链接,第五页之后的内容就失去了入口。
- 站内搜索与筛选组合出的地址。这些页面大多只对当次访问有效,没有内链指向,也不适合作为正式入口。
怎么把孤岛找出来
排查思路不复杂:把“蜘蛛抓到的 URL”和“站内能走到的 URL”放在一起对照,差集就是重点。
- 从服务器日志里筛出蜘蛛访问的 URL,去重后得到一份抓取清单。
- 用抓取工具从首页出发,按可跟随链接爬一遍,得到一份内链可达清单。
- 两份清单做差:日志里有、站内走不到的,基本就是孤岛。
- 再核对这些 URL 的返回状态:该保留的补入口,该合并的做 301,该退场的返回 404 或 410。
如果站点规模不大,也可以反过来看:在后台导出全部已发布 URL,逐个检查它是否至少被一个可抓取的页面链接引用过。没有引用来源的,都值得复查。
把入口补回去
- 补内链是最直接的方式。在相关的分类页、专题页、正文相关推荐里加上指向它的链接,锚文本写清楚页面讲的是什么。
- 用面包屑和上下级链接建立位置感。让页面知道自己挂在哪个栏目下,也让蜘蛛顺着栏目往回走。
- 分页链接保持可抓取。不一定要全部展开,但至少保证从第一页能连到后续页面,别只留一个“加载更多”。
- 失效入口要善后。下架页面不要只把链接删掉,改 301 到最接近的新页面,或者明确返回 404、410。
- Sitemap 作为兜底。它可以补上少量重要但内链不足的地址,但不建议用它来替代整站的内链结构。
Sitemap 提供的是地址清单,内链提供的是路径。蜘蛛更愿意沿着路径走,而不是每次都从清单里翻。
日常维护的检查习惯
孤岛是动态产生的:每次改版、每次下架、每次调整导航,都可能新增几个。比较省事的做法是把检查固定成习惯——上线新栏目时确认入口存在,下架内容时确认返回状态,改版后重新跑一遍内链对照。这样抓取路径不会因为一次调整就被切断,站点也不会悄悄攒下一堆没人走得到的页面。