蜘蛛抓取一条 URL 的前提,是它先“知道”这条 URL 存在。这一步走不通,后面谈抓取频率、抓取深度都没有意义。所以排查抓取问题,很多时候不是先问“蜘蛛为什么不来”,而是先问“它有没有渠道知道这里有个新地址”。
蜘蛛发现 URL 的几条常见通道
搜索引擎发现新地址的方式并不神秘,大致可以归成几类,它们之间是互补关系,而不是替代关系。
- 站内链接:蜘蛛抓取 A 页面时读到指向 B 的链接,B 就进入了待抓队列。这是最日常、最可控的一条路。
- Sitemap:把一批 URL 打包交给搜索引擎,适合批量交代,也方便事后复查。
- 站外链接:其他站点指向你的链接,会带来新的爬取入口。
- 主动提交接口:IndexNow、各搜索平台的收录提交接口,用一次请求告诉引擎“这里有更新”。
- RSS / Feed、站点被转载或被提及:相对被动,但确实会形成入口。
这几条通道不要求全部用上,但至少要保证有一条是通的,而且能稳定地跑起来。
主动提交:它是通知,不是命令
主动提交这几年被讲得很多,也容易被误解。把 URL 推给接口,本质是发一条通知,意思是“这个地址我更新了”。它不决定是否收录,也不承诺蜘蛛什么时候来。搜索引擎仍然会按自己的判断决定抓不抓、抓几次、要不要进索引。
实际使用中有两点要注意。一是额度,多数提交接口有每日条数和请求频率的上限,把整站 URL 无差别地反复推送,效果通常不好,还可能让接口对你的提交降低信任。二是内容,重复内容、低质页面推得越多,反而会把有限的抓取资源引到不值得爬的地方。
适合用主动提交的场景
- 时效性强的页面,等 Sitemap 自然更新太慢。
- URL 数量不多,但希望尽快进入发现队列。
- 站点地图因为技术原因暂时无法正常生成或更新。
Sitemap:批量、可复查的清单
Sitemap 的价值在于“一次性交代一批 URL”,并且可以通过 lastmod 这类字段提示哪些页面发生了实质变化。它比主动提交更适合规模化,也更容易事后复查——出问题时你可以打开文件确认某个 URL 到底在不在里面。
它的短板是更新节奏。Sitemap 通常是定时生成的,新页面从发布到进入文件可能隔几个小时甚至一天;如果文件本身报错,或者 URL 格式不规范,这条通道就形同虚设。
这些时候应该刷新 Sitemap
- 新栏目或大批量新页面上线。
- URL 结构发生迁移,需要把新地址交代清楚。
- 页面内容有实质更新,希望蜘蛛重新来访。
内链和外链:最接近“实时”的发现方式
内链是站点自己能完全掌握的发现通道。蜘蛛抓一个页面时顺带读到链接,新 URL 就自然进入队列。它的好处是快、连续、可以控制权重流向,所以栏目页、列表页、相关推荐这些位置上的链接,往往比一份静态文件更有效。
外链来自别人的站点,能带来蜘蛛入口,也能传递一定的信任度,但它不受你控制:什么时候出现、锚文本是什么、对方页面是否长期存在,都不由你决定。
为了“被发现”去批量购买或群发外链,短期可能带来一些抓取,长期对站点没有好处。把精力放回内链结构和内容本身,更稳。
一条 URL 一直没被抓,按这个顺序查
- 地址能不能正常打开,是否被 robots.txt 拦住。
- Sitemap 里有没有它,文件本身能否正常访问、格式是否正确。
- 站内是否有指向它的可点击链接,而不只是 JS 渲染后才生成的跳转。
- 有没有通过主动提交接口推送过,推送是否成功、是否超出额度。
- 翻服务器日志,看这个 URL 是否出现过蜘蛛请求,返回的状态码是什么。
多数“蜘蛛不来”的情况,问题都能在前三步里定位到,而不是蜘蛛本身出了问题。
几条通道怎么配合用
比较稳的做法是分工:常规内容靠内链加 Sitemap 覆盖,保证被持续发现;时效内容配合主动提交争取速度;外链保持自然增长,不刻意操作。这样即使某一条通道临时失效,URL 还有别的入口,不至于完全没人知道。
最后提醒一句:发现只是第一步。URL 被看到之后能否被稳定抓取、被正确解析,还取决于服务器响应、页面结构和抓取资源的分配。把发现通道理顺,只是把门打开。