蜘蛛发现新 URL,主要靠两条路:Sitemap 主动提交,以及顺着页面上已有的链接走出来。Sitemap 解决的是“蜘蛛知道有这些地址”,而链接解决的是“蜘蛛从哪条路真的走过去”。很多站点把注意力全放在 Sitemap 上,却忽略了链接放在页面什么位置,会直接影响它被走到的机会。
蜘蛛眼里的链接,是带上下文的
蜘蛛解析 HTML 时拿到的是一串 a 标签。它不会像人一样判断“这是导航还是广告位”,但页面结构本身提供了信号:链接出现在 DOM 的什么位置、周围有多少同类链接、锚文本写了什么、是不是在首屏返回的 HTML 里。这些信号叠加起来,会影响蜘蛛的抓取倾向。
需要说明的是,抓取调度属于搜索引擎侧的算法,外部只能观察到一些常见规律,既不能控制,也谈不上承诺。下面讲的是普遍现象,具体到每个站点会有差异。
导航链接:最稳定的入口
全站导航在每个页面上都出现,位置固定,链接数量有限。对蜘蛛来说,这是最可靠的重复入口,也是它判断站点主要栏目结构的重要依据。因此导航里的链接,通常比埋在深处的链接更容易被定期走到。
写导航时有几个常见问题:把导航做成 JavaScript 渲染后再插入 DOM,蜘蛛拿到的基础 HTML 里可能没有这些链接;用图片代替文字链接,锚文本就丢了;为了“覆盖更多页面”,把几十个二级三级栏目全塞进顶部导航,结果是每个链接分到的关注都被稀释。
正文内链:决定深层页面走不走得到
正文里的链接是蜘蛛进入详情页、标签页、历史文章的主要通道。它的特点是上下文明确:锚文本说的是什么,链接指向的页面大致就是什么主题,蜘蛛因此更容易判断这个 URL 该不该抓、该归到什么主题下。
如果一处栏目页只靠导航进入,而栏目下的详情页又只被 Sitemap 提到、没有任何内链指过来,那这些详情页的抓取节奏基本完全依赖 Sitemap 的调度。补上几条来自相关正文的内链之后,情况通常会有变化——不是因为链接“传递了什么权重”,而是蜘蛛多了几条走过去的路径。
写法上,锚文本尽量描述目标页面的内容,避免清一色的“点击这里”“查看更多”。同一篇文章里指向同一地址的链接,留一个就够。
页脚与侧栏:方便,但容易失控
页脚链接在每个页面重复出现,等于给目标 URL 提供了大量入口,短时间内确实容易被抓到。问题在于这个位置没有主题筛选:
- 页脚里堆几十个链接,蜘蛛每次访问都要解析一遍,实际有用的可能只有几个;
- 侧栏的“热门文章”“最新评论”会随数据变化,容易形成指向同一批 URL 的重复入口;
- 如果页脚链接里混进了需要登录、参数拼接、临时活动的地址,蜘蛛走过去只会拿到无用结果或跳转链。
比较稳妥的做法是:页脚只留全站通用且长期有效的页面,比如关于、联系、条款、主要栏目入口;动态列表类模块尽量控制数量,并确保里面的 URL 是规范化的。
链接数量不是越多越好
页面上的链接越多,平均每个链接获得的抓取机会越少。一个页面上千个链接时,蜘蛛通常会挑一部分走,剩下的要等下次。与其在一个页面里铺开所有 URL,不如让重要页面从多个相关页面各拿一条内链,结构更清晰,抓取路径也更短。
怎么验证内链是否真的被走到
- 从服务器日志里筛出蜘蛛的访问记录,看目标 URL 的第一次抓取出现在哪一批请求之后,据此推断来源页面;
- 检查返回给蜘蛛的 HTML 里,导航和正文链接是否本来就存在,而不是渲染后才出现;
- 用站点爬虫工具跑一遍,输入首页,看重要页面在第几层被走到、有没有页面完全走不到;
- 对只靠 Sitemap 进入的页面,补一条相关正文内链,过一段时间观察抓取频率是否变化。
内链结构的作用是给蜘蛛多几条明确的路。位置越稳定、上下文越清楚、数量越克制,URL 被发现和被复查的机会通常越稳定。Sitemap 该交还是要交,但它替代不了页面之间真实的链接关系。