很多站点在日志里会看到类似的现象:蜘蛛频繁访问首页、栏目页和少数热门文章,而一些其实有价值的深层页面,几个月都没有一次抓取记录。问题往往不在服务器,也不在 robots.txt,而在站内链接把蜘蛛“送”到那些页面的路径太窄、太深,或者干脆只有一条。
蜘蛛在站内的行走方式
搜索蜘蛛进入一个站点,通常从一个已知 URL 开始。它抓到一个页面后,把页面里的链接放进待抓队列,之后按队列逐个访问。这个过程决定了:一个页面要被发现,必须先有一条可抓取的链接路径从已知页面连过去。路径越短、入口越多,被发现和被重访的机会就越大。
所以“内链深度”不是装饰性的概念,而是实打实的发现机制。首页直连的页面,通常在第一轮或第二轮就被摸到;需要点击四五次才能到达的页面,就要排在队列很后面,遇到抓取受限的站点,可能长期轮不到。
两个常见的深度误区
误区一:把链接全部堆在首页
有些站点为了避免深层页面被漏掉,在首页底部塞进上百条链接。结果首页体积变大、链接权重被摊薄,蜘蛛在首页解析和排队的时间也变长。更关键的是,这些链接并没有形成“中间层”,纵深页依然缺少从相关栏目、相关文章过去的路径。
误区二:深层页面只有一个入口
一个页面如果只被某一篇旧文章的正文链过一次,而这篇旧文章本身很少被抓,那么这个页面实际上处于半孤岛状态。只要那条唯一路径上的页面改动、下线或链接失效,页面就彻底断了。
链接分散度:从多少个位置指向它
比起单纯看“几层能点到”,更实用的判断是:目标页面被多少个不同的页面、不同的位置指向。同一页被栏目页、相关推荐、正文内链、标签聚合页分别指向,蜘蛛在多次抓取中碰到它的概率会明显提高,重访频率也更稳定。
反过来,如果一个页面只出现在 Sitemap 里,站内几乎没有链接,那么它主要靠 Sitemap 被动发现,重访往往只发生在站点地图更新之后。这也是为什么 Sitemap 和內链要配合使用,而不是替代关系。
让路径更顺的几个做法
- 给重要页面安排至少两到三条来自不同层级页面的链接,而不是只挂首页。
- 栏目页和分类页保持稳定的分页链接,列表里直接给详情页可点击的 URL,不依赖 JS 后置渲染。
- 正文内的相关推荐,优先指向同一主题下的深层页面,让路径沿着主题走。
- 定期检查是否出现只有一条入口、且入口页本身流量和抓取都很少的页面。
- Sitemap 保持干净,只放需要被抓的规范 URL,与内链形成互补。
用日志确认路径是否走通
调整之后,不要只看后台的“已收录数量”。更可靠的方式是拉一段时间段的服务器日志,按蜘蛛的 User-Agent 过滤,统计各目录、各层级页面的被抓次数。观察新加的内链入口对应的页面,抓取次数是否在几天到几周内出现变化。
同时留意日志里的返回码。如果某些深层页面长期是 404、301 到无关地址,或者返回 5xx,那么不管内链做得多好,蜘蛛都拿不到有效内容。抓取路径的畅通,依赖链接可达和服务器正常响应两个条件同时成立。
内链解决“蜘蛛能不能找到”,服务器和 URL 规范解决“蜘蛛拿到的是不是想要的那一页”。两者缺一,路径都不算通。
小结
蜘蛛在站内的行走路线,是由入口页面、每层链接数量和链接位置共同决定的。与其反复提交 URL,不如先把内链深度控制在合理范围,让重要的深层页面有多条来自相关页面的路径,再用日志核对抓取是否真的落到这些页面上。这是一个可以持续微调的过程,不需要一次性大改。