搜索抓取

面包屑与返回链接:蜘蛛在站内迷路时的兜底路径

当页面离首页越来越远,蜘蛛常靠面包屑和返回链接找到回去的路。这两种导航看起来简单,却会影响抓取深度和 URL 发现效率。本文讲清它们各自的作用、常见的写法问题,以及怎么用日志确认蜘蛛是否真的走到这条路径上。

搜索抓取

面包屑与返回链接:蜘蛛在站内迷路时的兜底路径

蜘蛛进入一个站,通常从首页开始,顺着链接一层层往外走。走到第三、第四层之后,页面上的链接变少,能回到主干的路也变少。这时候面包屑和“返回上一级”这类导航,就成了蜘蛛继续往前走、或者回到主干的重要线索。

深层页面为什么容易变成终点

很多站点的详情页只放正文和几条相关推荐。相关推荐如果是随机拼出来的,链接指向的页面未必稳定;页面底部又没有回到分类或首页的入口,蜘蛛从这个页面出发能走的路就很有限。结果就是抓取深度停在某一层,后面的 URL 只能等下一次从别的地方被发现。

面包屑和返回链接解决的正是这个问题:它们把深层页面重新接回上层结构,让抓取路径形成回路,而不是一条断掉的线。

面包屑该指向哪里

  • 每一级都应是真实存在、可访问的列表页或频道页,不要拼出并不存在的路径。
  • 层级要和站点实际结构一致,URL 是三级目录,面包屑也应是三级,别多也别少。
  • 最后一级通常是当前页,可以不链接,也可以指向自身,但不要指向 404。
  • 文字用页面真实标题或分类名,避免“更多”“点击这里”这类没有信息量的词。

面包屑最好是服务端输出的静态 a 标签。如果它靠 JS 渲染,蜘蛛能不能看到就要看渲染能力,很多时候直接看不到,等于没写。

返回链接与“上一级”入口

列表页的返回按钮、详情页顶部的“返回栏目”,作用类似。写法上注意两点:一是链接指向列表的稳定地址,而不是带一堆参数的会话地址;二是列表页本身要能被抓取,否则蜘蛛顺着返回链接走过去也是撞墙。

返回链接不等于必须做“上一页”。把用户从详情页带回分类,比让蜘蛛在分页里原地打转更有价值。

容易踩的几个坑

  1. 面包屑用脚本拼接,页面源码里根本没有 href。
  2. 层级写错,比如商品属于“手机 > 安卓机”,面包屑里却直接从首页跳过来。
  3. 返回链接指向带排序或会话参数的地址,同一个列表出现多个版本。
  4. 移动端和桌面端结构不一致,一个能点,一个点不动。
  5. 面包屑指向的列表页已被删除或屏蔽,蜘蛛走到一半路就断了。

怎么确认蜘蛛真的走了这条路

最直接的办法是看日志:筛选蜘蛛的 User-Agent,观察分类页、频道页是否被反复访问,还是只有详情页被零星抓到。如果详情页抓取量不低,对应的分类页却几乎没有记录,说明路径可能没通。也可以临时在面包屑链接上带一个标记参数,看蜘蛛是否访问过带这个参数的地址。

Sitemap 能列出 URL,但它不表达层级关系;真正决定蜘蛛能不能沿着结构走的,还是页面之间的链接。面包屑和返回链接属于基础工作,做好了不会立刻带来什么变化,但结构断裂的站点,往往就是从这里开始出问题。服务器返回是否稳定、返回链接指向的页面是否可用,同样会影响这条路径能不能走通。