蜘蛛抓取一條 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 被看到之後能否被稳定抓取、被正确解析,還取决于服務器响應、頁面结构和抓取资源的分配。把發現通道理顺,只是把门打開。