搜索抓取

抓取死角:为什么有些页面蜘蛛始终找不到入口

孤岛页面指的是地址存在、服务器能正常返回,却没有任何站内链接指向的 URL。它们常在改版、下架和分页调整中悄悄产生,抓取频次低,更新也不容易被发现。本文说明孤岛是怎么形成的,如何用日志与内链清单对照排查,以及补入口、处理失效链接、用 Sitemap 兜底的具体做法。

搜索抓取

抓取死角:为什么有些页面蜘蛛始终找不到入口

站点里常有一类页面:地址存在、服务器能返回 200、内容也是真的,但从首页出发,顺着任何一条可见链接都走不到它。蜘蛛只能靠站外链接或 Sitemap 偶尔碰见,抓取频次低,内容更新也长期无人问津。这类页面通常被称为孤岛页面,它属于抓取路径上的死角,而不是内容本身有问题。

孤岛页面是怎么产生的

大部分孤岛不是有意做出来的,而是在改版、下架、上线的过程中慢慢漏掉入口。

  • 列表入口被撤掉,详情页还在。调整栏目、隐藏某个分类时没有删除页面,也没有做 301 或 noindex,于是它只剩下一个地址。
  • 链接靠脚本生成。如果列表内容依赖前端渲染,蜘蛛第一次拿到的 HTML 里可能没有可跟随的 a 标签,页面就成了看不见的节点。
  • 只躺在 Sitemap 里。Sitemap 能告诉蜘蛛地址存在,但不等于给它一条站内路径。只靠 Sitemap 的页面,抓取优先级和更新频率通常都偏低。
  • 分页被截断。列表只保留前几页链接,或者用“加载更多”替代翻页链接,第五页之后的内容就失去了入口。
  • 站内搜索与筛选组合出的地址。这些页面大多只对当次访问有效,没有内链指向,也不适合作为正式入口。

怎么把孤岛找出来

排查思路不复杂:把“蜘蛛抓到的 URL”和“站内能走到的 URL”放在一起对照,差集就是重点。

  1. 从服务器日志里筛出蜘蛛访问的 URL,去重后得到一份抓取清单。
  2. 用抓取工具从首页出发,按可跟随链接爬一遍,得到一份内链可达清单。
  3. 两份清单做差:日志里有、站内走不到的,基本就是孤岛。
  4. 再核对这些 URL 的返回状态:该保留的补入口,该合并的做 301,该退场的返回 404 或 410。

如果站点规模不大,也可以反过来看:在后台导出全部已发布 URL,逐个检查它是否至少被一个可抓取的页面链接引用过。没有引用来源的,都值得复查。

把入口补回去

  • 补内链是最直接的方式。在相关的分类页、专题页、正文相关推荐里加上指向它的链接,锚文本写清楚页面讲的是什么。
  • 用面包屑和上下级链接建立位置感。让页面知道自己挂在哪个栏目下,也让蜘蛛顺着栏目往回走。
  • 分页链接保持可抓取。不一定要全部展开,但至少保证从第一页能连到后续页面,别只留一个“加载更多”。
  • 失效入口要善后。下架页面不要只把链接删掉,改 301 到最接近的新页面,或者明确返回 404、410。
  • Sitemap 作为兜底。它可以补上少量重要但内链不足的地址,但不建议用它来替代整站的内链结构。
Sitemap 提供的是地址清单,内链提供的是路径。蜘蛛更愿意沿着路径走,而不是每次都从清单里翻。

日常维护的检查习惯

孤岛是动态产生的:每次改版、每次下架、每次调整导航,都可能新增几个。比较省事的做法是把检查固定成习惯——上线新栏目时确认入口存在,下架内容时确认返回状态,改版后重新跑一遍内链对照。这样抓取路径不会因为一次调整就被切断,站点也不会悄悄攒下一堆没人走得到的页面。