不少运营都听过一句经验之谈:目录层级别超过三层。但蜘蛛在判断一个地址值不值得继续往下走时,看的并不是 URL 里有几条斜杠,而是从它已经知道的入口出发,要点击几次才能到达。这两件事有关联,但不等同。
蜘蛛算的深度,是点击跳数
蜘蛛会把首页、Sitemap 里提交的 URL、以及外链指向的地址当作已知入口,沿着它能解析出来的链接一步步往前走。一个页面从首页点两次能到,它的深度就是 2;哪怕 URL 里写着五级目录,深度依然是 2。反过来,某个页面 URL 只有一级,但全站没有任何链接指向它,那它就只能靠 Sitemap 提醒蜘蛛它的存在,实际被抓的频率通常也不高。
目录结构仍然会间接影响抓取
- 中间页面是否有人承载链接。目录越深,越容易形成从栏目页到列表页再到详情页的长链条,中间任何一环没放链接,后面的页面就容易变成孤岛。
- 内链的添加成本。结构清晰时,加一个栏目页就能带出一批详情页;结构混乱时,只能靠手工往首页或相关页面硬塞链接。
- 后期改版的风险。把深目录拍平成浅目录,意味着大量 URL 变更和重定向,这部分成本往往被低估。
深层页面被漏掉,通常不只是因为深
更常见的情况是:深层页面既没有站内链接,内容更新也不频繁,Sitemap 里虽然列了,但抓取优先级排在后面。这时只改目录名作用有限,要把发现通道和更新信号一起补上。
让深层页面更容易被走到的做法
- 面包屑。每层都能回到上一级,等于给蜘蛛一条固定的回程路,也让深层的同级页面互相串联起来。
- 栏目页与聚合页。一个栏目页能列出几十条详情链接,它是把实际深度从五跳压到三跳最省力的手段。
- 相关内容模块。在正文底部放几条同主题链接,既服务用户,也给蜘蛛多一条可选路径。
- Sitemap 与内链双通道。Sitemap 负责兜底发现,内链负责提高被抓频率,两者并不冲突。
不要为了变浅轻易改 URL
把一个多层地址改成单层地址,短期看是清爽了,但旧地址、外链、已有的收录状态都要重新处理,处理不好还会出现新旧地址同时被抓的情况。除非目录结构本身有硬伤,否则优先用内链和聚合页来降低实际跳数,而不是动 URL 本身。
动手前的检查清单
- 从首页出发,点击几次能到达最重要的商品页或文章页?超过四次就值得排查。
- 每个栏目页是否列出了子栏目的入口,还是只挂了最新几篇内容?
- Sitemap 里的 URL 是否都真的可访问,有没有混进 404 或跳转地址?
- 有没有页面既不在一级栏目里,也不在面包屑里,只存在于后台链接中?
深度只是影响抓取的因素之一。站内链接的质量、页面自身的更新频率、服务器的响应速度,同样会决定蜘蛛下一次还愿不愿意走这条路。