新頁面上线之後,很多人的第一反應是去提交連結。但蜘蛛認识一個 URL 的路径不止一條,提交只是其中一條。把這几種入口的分工理清楚,比反复催抓更有用。
蜘蛛認识新 URL 的几條入口
站内連結:最稳的一條
首頁、栏目頁、相關推荐、面包屑上的連結,是蜘蛛最常走的路径。一個頁面如果能從多個已经被抓取的頁面連結到,被發現的机會就更大。新内容發布後,至少從一個稳定被抓取的列表頁给出直達連結,是比較省事的做法。連結位置也重要,正文里的連結通常比頁脚的連結更受關注。
Sitemap:批量交付
Sitemap 适合把一批 URL 一次性说清楚,尤其是詳情頁、深层頁這類不容易靠内鏈串起来的地址。需要注意两点:不要把已经下线或返回 404 的地址長期留在里面;lastmod 只寫真實的改動時間,不要每次生成都刷新一遍。Sitemap 本身要能被正常訪問,格式不要出错。
外部連結與其他信号
其他站点指向你的連結同样會把蜘蛛带来,尤其是一些抓取频繁的站点。此外,RSS 订阅、站内搜尋结果的聚合頁、标簽頁也可能成為入口,但這些路径的稳定性不如站内連結和 Sitemap,不适合当作主要依靠。
被發現只是第一步
URL 進入抓取队列之後,還要排队,還要看服務器响應。如果同一批新頁面在很短時間内大量上线,抓取會分散到多個地址上,單個頁面被完整抓取的時間可能被推後。這时候,保證頁面能正常打開、返回碼正确、主要正文不依赖脚本渲染,比繼續堆叠入口更有效。
自查:把入口走一遍
- 從首頁出發,点几次能到新頁面?层級過深就补一條從列表頁直達的連結。
- 打開 Sitemap,確認新 URL 在里面,且文件本身可訪問、格式無誤。
- 看看标簽頁、聚合頁、站内搜尋结果里有没有自動出現這個地址。
- 检查返回碼,避免過長的重定向鏈或偶發的 5xx。
- 確認 robots.txt 没有誤挡相關目錄。
容易忽略的几處
分頁與篩選參數
列表頁的翻頁如果依赖脚本生成,或者篩選參數排列混乱,新頁面容易長期沉在底层,入口等于没打通。
服務器时段
如果站点在流量高峰时响應偏慢甚至超时,而蜘蛛恰好在這段時間来訪,就可能拿到错誤响應。观察抓取日誌里失敗請求的時間分布,往往比盯着“蜘蛛怎么還不来”更有意义。
入口决定蜘蛛能不能找到你,响應质量决定它愿不愿意繼續抓。
把入口整理清楚,再去解决响應稳定性的問题。URL 發現和抓取质量是两件需要分開检查的事,混在一起判断,容易得出错誤的结论。