很多人把抓取问题归到“蜘蛛不来”,但真正的起点更早:蜘蛛得先知道这个地址存在。一个 URL 如果没有任何地方指向它,抓取工具不会凭空猜到。所以讨论抓取效率,先把“发现”这一步拆开看。
发现和抓取是两件事
URL 被发现,只意味着它进了候选池。之后还有验证、去重、排优先级、分配抓取频次,最后才轮到实际请求。很多站长看到提交了地址却没有抓取记录,其实是卡在后面的环节,而不是发现失败。
把这两步分开,问题就好定位了:日志里完全没有这个 URL,多半是发现渠道的问题;有访问记录但很少来,多半是抓取环节的问题。
四条常见的发现路径
内链:最稳定,也最容易被忽略
站内链接是蜘蛛最依赖的发现方式。它顺着已经抓过的页面往下走,一层层铺开。内链的好处是可控——你在哪个页面放链接、放在什么位置,都由自己决定。
问题常出在覆盖不均:首页和栏目页链接很多,深层页面却只有孤零零一条入口,还藏在列表第二页之后。想让某个 URL 被稳定发现,最直接的做法是从一个已经被频繁抓取的页面给它一条正文内的链接。
Sitemap:适合批量交代,不适合排优先级
Sitemap 像是给蜘蛛的一份清单,适合告诉它“这些地址都在,而且属于同一个站点”。新站、内容量大、内链结构还没搭起来的阶段,Sitemap 的价值最明显。
但它是平的。Sitemap 里所有 URL 看起来权重差不多,蜘蛛不会因为一条记录排在前面就先去抓它。所以不要把 Sitemap 当成提升某个页面抓取优先级的手段,它解决的是“有没有被知道”,不是“先抓谁”。
外链:快,但不可控
外部链接能让蜘蛛从别的站点走到你的页面,对全新域名尤其有用,因为那时站内还没有多少被抓过的页面可以当跳板。
缺点是节奏不由你掌握:对方什么时候发、链接会不会被撤、是不是放在能被跟到的位置,都存在变数。可以把它当作补充入口,而不是主要依赖。
提交入口:用来补漏
站长后台的提交接口、以及一些协议化的推送方式,适合处理那些内链和 Sitemap 都覆盖不到的地址,比如刚上线还来不及加进导航的活动页。
它们更像是加速发现,而不是替代结构。提交量远大于站点实际更新量时,反而会稀释信号。
四条路怎么配合
一个比较稳的组合是:站点底层结构用内链串起来,Sitemap 兜住全量,外链负责冷启动和站外扩散,提交入口专门用来补漏。任何时候都用四条路覆盖同一批 URL,其实是一种浪费。
- 常规内容:内链为主,Sitemap 兜底
- 新域名或全新目录:外链加 Sitemap 双管
- 临时页面、活动页:提交入口加一条首页或栏目内链
- 已删除页面:从内链里摘干净,同时更新 Sitemap
发现之后还有几道关
URL 进了候选池,还要经过规范化处理——带参数的、带会话 ID 的、末尾斜杠不一致的地址可能被合并。合并之后,一部分地址就再也不会被单独抓取。
接着是优先级排序。蜘蛛会参考页面的链接来源、更新频率、历史响应情况来决定先抓谁。一个只有 Sitemap 记录、没有任何内链指向的页面,往往排在后面。
最后是抓取时的验证:如果能稳定返回 200,后续回访会规律一些;如果经常超时或返回错误,回访间隔会被拉长。这部分属于服务器侧的稳定性问题,和发现渠道无关,但会直接影响发现之后的落地效率。
发现渠道解决的是“蜘蛛知不知道”,服务器稳定性和内链结构解决的是“知道之后愿不愿意常来”。两件事混在一起排查,容易找不到重点。
一个简单的自查顺序
- 日志里完全没有该 URL:先看内链有没有指向它,再看 Sitemap 是否包含
- 有记录但抓取次数极少:检查链接所在页面的抓取频率,以及该页面在站内的层级
- 抓取过但不再回来:看响应状态、内容是否长期不变、是否已经被合并到别的地址
- 批量新增 URL:先补内链入口,再更新 Sitemap,不要只做后者
把这四条发现路径当成一个整体来规划,比单纯反复提交地址更省事,也更容易看清问题到底出在哪一步。