入口页的互链结构决定蜘蛛能走到哪里,点击深度则决定它要走几步。两者经常被放在一起谈,但问题并不相同:结构说的是链接网络的形状,深度说的是从入口算起要经过几层。实际观察中,很多入口页并不是链接结构坏了,而是目标链接被放到了第三层、第四层,蜘蛛爬到第二层就不再往下分了。
点击深度到底指什么
点击深度是从一个入口 URL 出发,到目标 URL 需要经过的最少跳转次数。直接挂在入口页上的链接深度为 1,经过一次中间页到达的是 2,以此类推。它和目录层级不是一回事:URL 里写了几层目录,不代表蜘蛛要点几次链接。一个 /a/b/c/d/page.html 的地址,如果入口页直接指向它,深度就是 1;反过来,一个根目录下的短地址,如果只能从列表第五页翻到,深度也可能很高。
为什么深链接容易被放过
- 预算有限:蜘蛛在一个站点内的抓取次数和停留时间都是有限的,会更倾向于顺着容易到达、看起来更重要的路径走。
- 衰减效应:每多一跳,链接被继续点开的概率都会下降。到第三、第四层时,剩下的往往只是几条最热门的路径。
- 单路径依赖:只有一个页面通向某个目标页时,一旦这条路径上的中间页出问题,后面的页面就一起断掉。
几种把链接藏深的常见做法
- 入口页只挂栏目页,目标链接塞在栏目页的二级列表里,还要翻一页才出现。
- 用“更多”“下一页”“查看详情”这类泛锚文本承载关键链接,蜘蛛很难从上下文判断这条链接的价值。
- 链接写在需要交互才展开的模块里,比如点击展开、标签页切换、轮播的第二屏。
- 分页参数层层叠加,列表第二页之后的链接长期缺少入口。
这些做法本身不算错误,有时是出于版面和内容的考虑。问题在于,如果希望被发现的链接全部落在深处,入口页就只剩一个“指路牌”的作用,效率会明显下降。
把深度压下来的几个做法
- 重要链接提到一级:把希望被发现的页面直接挂在入口页上,而不是让它先过一道中间页。
- 控制中继层数:中间页可以有,但尽量不超过一层,避免出现“入口—栏目—子栏目—列表—详情”这样的长链。
- 给目标页留多条路径:两三条不同来路通向同一个页面,比单线更稳,某一条断了还有别的。
- 分批加,不要一次铺开:一次塞进几百条一级链接,蜘蛛反而会分散注意力。分几批上线,看完日志再加下一批。
- 锚文本写清楚:用能描述目标页内容的词,比“点击这里”更容易被继续跟进。
- 善用列表页的排序:把重要的目标页放在列表靠前位置,避免只能从分页末尾进入。
怎么确认深度没有拖后腿
看访问日志时,可以把蜘蛛请求的 URL 和 Referer 拉出来,按来源页面归组。如果某个目标页长期只有零星几次请求,而且都来自同一个中继页,说明它的路径太单一、太深。也可以自己模拟一条最短路径:从入口页开始点,数一数要点几下才能到目标页,通常比看代码更直观。调整之后不要马上下结论,蜘蛛重新爬一遍需要时间,观察两三周的日志走势更稳妥。
深度不是越浅越好,也不是所有页面都值得挂到一级。入口页的位置有限,关键是让真正想被发现的链接有一条短路径,其余的可以慢慢来。