一個新 URL 從上线到被蜘蛛讀到,通常有两條路:一條是蜘蛛自己顺着連結或清單走過来,另一條是站点主動把 URL 递過去。两條路的成本、可控性和反應速度都不一样,實际运营里更容易出問题的是把它們当成互相替代的方案。
被動發現:蜘蛛自己走過来的那條路
被動發現指的是站点只负责把“路标”做好,由蜘蛛自己决定什么时候走、走到哪。常见的入口有這几類:
- Sitemap:一份相對完整的 URL 清單,适合让蜘蛛批量了解站点有哪些頁面,尤其是内鏈不容易覆盖到的角落。
- 内鏈:從已有頁面指向新頁面,是蜘蛛持續發現新内容最稳定的方式。
- 外鏈:其他站点指向你的連結,蜘蛛顺着外部連結進来,往往會连带抓取站内若干层。
- 歷史抓取队列:蜘蛛再次訪問之前抓過的頁面时,會顺带看看有没有新連結。
被動發現的優点是自然、不需要額外接口,缺点是节奏不由你控制。一個新頁面既没有内鏈、也没有出現在 Sitemap 里,只靠外鏈,發現時間可能會拉得很長。
主動推送:把 URL 直接递到门口
主動推送是站点通過接口或订阅源,把新增或更新的 URL 直接告诉搜尋引擎。它解决的是“發現”环节,不解决“抓取”和“收錄”。
常见的推送方式
- 搜尋引擎站長平台的提交接口:各家名稱和配額不同,通常對站点有驗證要求,提交後能在後台看到處理狀態。
- IndexNow 這類通用协议:一次提交,參與该协议的搜尋引擎可以共享,适合需要同时维護多個引擎的站点。
- RSS / Atom 订阅源:适合更新频繁、结构規整的内容站,蜘蛛會定期来取。
- 站内資料接口或日誌联動:内容系統在發布时自動触發推送,减少人工遗漏。
需要注意,推送只是“通知”,不等于蜘蛛一定立刻抓取,更不等于頁面會被收錄。配額用完之後,多提交的部分通常會被直接丢弃。
推送替代不了内鏈
有些站点上线推送接口之後就不太管内鏈了,结果發現新頁面還是迟迟不被抓。原因不难理解:蜘蛛抓到一個頁面後,靠頁面上的連結繼續往下走。如果新頁面在站内没有任何入口,蜘蛛抓到它之後也走不到相關内容,久而久之這個頁面的抓取優先級會下降。
推送负责“告诉你這里有新東西”,内鏈负责“让你在這里待得住、走得下去”。两者是配合關系,不是替代關系。
比較稳妥的做法是:新内容發布时,先在栏目頁、列表頁或相關内容模块里挂上連結,再走一次推送,让两條路同时指向同一個 URL。
推送时容易踩的坑
- 把全站 URL 一股脑提交:既浪費配額,也稀释了真正需要被發現的頁面。只提交新增、更新或此前未被發現的 URL。
- 提交會返回错誤狀態的 URL:404、跳轉鏈、需要登入才能訪問的頁面,提交了没有意义,還會让後台資料难以解讀。
- 提交後立刻改動 URL:蜘蛛還没来,地址就變了,等于白推一次。發布流程尽量把最终 URL 定下来再推。
- 重复推送同一批 URL:不少接口對重复提交會去重或直接拒绝,频繁推送還可能触發限制。
- 只推送首頁和栏目頁:真正需要被發現的是詳情頁,首頁通常早就在抓取队列里。
怎么判断推送有没有起作用
判断效果不要只看推送接口返回的“成功”字样,那只能說明請求被接收了。可以结合三個方面观察:
- 服務器日誌:看推送後的一段時間内,這些 URL 是否出現蜘蛛的訪問记錄,以及首次訪問距离推送過了多久。
- 抓取統計:看整体抓取量有没有變化,還是只是抓取對象發生了轉移。
- 覆盖率資料:区分“已發現未抓取”“已抓取未收錄”和“已收錄”,不同狀態對應的處理方式並不相同。
如果推送後日誌里長期看不到對應 URL 的訪問记錄,先检查 robots.txt 是否屏蔽、Sitemap 是否包含该 URL、頁面是否有内鏈入口,再回头排查推送环节本身。
一個可以落地的组合节奏
- 發布前:确定最终 URL,確認頁面能正常返回内容,且没有被 robots 規則挡住。
- 發布时:在栏目頁和相關内容模块补上内鏈,同时更新 Sitemap 中對應的條目。
- 發布後:對新增或更新的 URL 走一次推送,避免批量重复提交。
- 持續:定期用日誌核對推送 URL 的抓取情况,把長期不被抓取的 URL 挑出来單獨排查。
把主動推送当成加速器,把内鏈和 Sitemap 当成底盘,两條路都稳,URL 發現這件事才不會时快时慢。