很多站长把“收录”当成一个动作,实际上它至少拆成两步:蜘蛛先发现这个 URL,然后才可能把它编入索引。发现是入口,收录是结果。而 URL 被发现的路径并不只有一条——站点地图、内链、外链、站长平台的手动提交,都在给爬虫递线索。这篇文章只聊其中一个常被高估、也常被误解的入口:外部链接。
蜘蛛发现 URL 的几条常见路径
- 站点地图:主动列出希望被抓取的地址,属于“自报家门”,适合把重要页面整体交代清楚。
- 内链:站内页面之间互相指向,是持续性最强、最可控的通道。
- 外链:别的站点指向你的页面,属于被动入口,能不能被发现取决于对方页面是否被抓取。
- 手动提交:在站长平台单独提交某个 URL,适合少量、临时的补充。
这几条路径解决的问题都是“地址在哪”,而不是“这个地址值不值得进索引”。分清这一点,后面很多困惑会自然消失。
外链在“发现”环节实际起什么作用
爬虫访问一个外部页面时,会解析页面上的链接,把此前没见过的 URL 放进待抓取队列。所以外链的真实价值,是让一个原本无人知晓的地址第一次进入队列。
如果一个深层页面既没有站内链接指向它,也没有出现在站点地图里,那么一条能被抓到的外链,往往就是它唯一被发现的可能。反过来说,如果页面已经被内链和站点地图覆盖,外链在发现环节的边际作用就没那么大了。
发现不等于收录。外链解决的是“这个地址在哪里”,不解决“这个地址该不该被放进索引”。
什么样的外链更容易被爬虫顺着走
链接所在的页面本身要被抓取
这是最容易被忽略的一环。如果对方页面被 robots.txt 挡住、返回 404、需要登录才能看到,或者内容完全靠脚本在浏览器里渲染,而抓取端没有执行脚本,那么这条链接大概率不会被记录,你也等不到蜘蛛过来。
链接要是真正可解析的链接
用 a 标签配合 href 属性是最稳妥的写法。用按钮加点击事件、脚本跳转、外层包一层框架页等形式,抓取端不一定能把它识别成一条链接,也就无从顺着走。
外链页面的抓取频率
一个长期更新、被反复抓取的页面,链接被发现的速度通常更快;一个几个月都无人问津的页面,即使挂上了链接,也可能长时间没有蜘蛛路过。
关于 rel="nofollow":主流搜索引擎现在把它当作提示而非绝对指令。带 nofollow 的链接通常仍可能被用于发现 URL,只是不传递权重类信号。所以它挡不住发现,只能减少信号传递。
外链解决不了的问题
- 页面被 robots.txt 拦住——抓都抓不到,谈不上收录。
- 页面写了 noindex——能被抓取,但会被明确排除在索引之外。
- 目标地址返回 404 或 5xx——链接指过去也是空的。
- 内容重复、单薄、与站内已有页面高度相似——索引阶段会做取舍,外链帮不上忙。
- 站点整体抓取异常——先把站内问题修好,再谈外链。
换句话说,外链能改善“被发现”的概率,但改不了页面自身和站点层面的判断依据。
把外链用在 URL 发现上的几个做法
- 给重要的深层页面争取至少一个可抓取的外部入口,尤其是内链层级很深、平时几乎没人点到的页面。
- 先确认外链所在的页面本身能被索引,否则这条链接的实际价值有限。
- 用访问日志核对:看对方页面对应的抓取记录,以及目标 URL 是否在相近时间被访问过。能看到访问,说明链路是通的。
- 不要用外链替代内链和站点地图。外链是补充入口,站内结构才是主通道,一旦断掉,损失更直接。
- 批量铺外链之前先问一句:目标页面值不值得被收录。低质页面即使被发现了,也未必留在索引里。
小结
外链对收录的作用,准确地说集中在“发现”这一环。它能让一个此前无人知道的 URL 进入抓取队列,但最终进不进索引,取决于页面是否可抓取、内容是否有独立价值、站点整体是否健康。把外链当成线索来源,而不是收录的开关,判断会更稳一些。