蜘蛛抓到一个页面之后,第一件事是把 HTML 里的链接挑出来,放进待抓队列。但队列不是先来先服务,页面里的链接也不是每条机会均等。链接摆在哪里,蜘蛛看到的顺序和给它的重视程度都会不一样。
蜘蛛读链接的顺序,基本跟着 DOM 走
解析链接时,蜘蛛按源码从上到下的顺序来,同时结合可见性做判断。出现在首屏、主体内容里的链接,源码位置靠前;页脚、侧栏、弹窗里的链接往往排在后面,甚至被折叠隐藏。结果是同一个站点、同一批 URL,谁在页面里出现得早、位置靠上,谁就更早进入抓取队列。
还有一个容易忽略的差别:靠 JS 渲染出来的链接,和写在 HTML 里的 a 标签并不是一回事。前者要等渲染完成后才可能被发现,发现本身就带延迟,路径也更长。
三种位置的链接,作用完全不同
导航和面包屑:主路径
全站导航出现在每个页面上,数量稳定、指向固定,是蜘蛛理解站点结构的主干道。面包屑则把当前位置到首页的路径完整写出来,方便蜘蛛回退。这两处适合放你希望被优先走到的一级、二级目录。
正文内链:上下文最清楚
正文里的链接可能只在一两个页面出现,但上下文明确,蜘蛛容易判断它和被链接页面的关系。对于新产生、需要被发现的 URL,正文内链通常比页脚堆一排链接更管用。
页脚和侧栏:全站重复,边际递减
页脚链接在每个页面都出现。第一个页面看它是导航,第一百个页面看它就是噪声。它仍然能让 URL 被反复看到,但每条链接分到的注意力,会随着数量和重复度快速下降。
一个页面放多少链接算合适
没有硬性上限,但有个简单的判断:如果一页里超过一半的链接,你并不希望被单独重视,那这页就更像链接仓库,而不是内容页。抓取机会是有限的,一页挂几百条链接,等于把每个目标 URL 的机会都摊薄。
- 主体内容区的链接尽量控制在几十条以内
- 全站重复区块(页脚、侧栏、推荐位)不要持续膨胀
- 重要 URL 至少有一条来自正文或导航的入口
- 同一批链接别在多个区块重复出现
- 页面上不再需要的链接,直接删掉,而不是留着
位置之外,还要看这几件事
- 链接是否真的可点、可聚焦:纯样式或 onclick 拼出来的伪链接,蜘蛛未必跟
- 锚文本是否说明目标:写清页面主题,比「点击这里」有信息量
- 目标 URL 是否稳定:频繁改动,会被当成新 URL 重新处理
- 所在页面本身是否常被抓:冷门页面里的链接,发现速度同样慢
怎么验证位置有没有起作用
结合服务器日志,观察一个新 URL 第一次被抓时,来源页是哪一个。如果它总是被页脚链接先带进来,而正文里也放了入口,就说明正文那条链接的位置可能太靠下,或者被其他元素挤出了主要内容区。
也可以反过来做一次对比:把一个重要入口从页脚挪到导航或正文,看一段时间内该 URL 的首次抓取时间有没有前移。这种前后对比,比凭感觉调整更有依据。
链接位置决定的是「蜘蛛先看到谁」,不是「一定收录谁」。把重要 URL 放在蜘蛛稳定经过、上下文清楚的位置,剩下的交给内容本身。