很多站長有類似的困惑:站点没做什么大改動,蜘蛛却反复来爬那几個老頁面,新上线的地址提交了好几天還卡在队列里。這通常不是蜘蛛變懒了,而是抓取预算的分配問题。
抓取预算是動態的,不是固定配額
搜尋引擎给每個站点分配的抓取资源,會随站点規模、响應速度、内容更新频率、歷史抓取质量等因素動態調整。同一個站点,在服務器稳定、頁面返回干净的情况下,可用的抓取次數會慢慢增加;反過来,如果大量 URL 返回超时、跳轉或内容重复,预算就被浪費在無意义的往返上,留给新地址的部分自然變少。
哪些頁面在悄悄消耗预算
- 參數拼接頁:篩選、排序、跟踪參數生成的大量相似 URL,蜘蛛每抓一個都要完整走一遍。
- 软 404:返回 200 但内容為空、或只提示“内容不存在”的頁面,容易被反复確認。
- 長期不變的模板頁:分頁、标簽、归档如果没有新内容,回訪價值很低。
- 重定向鏈:一次跳轉至少消耗一次請求,多跳就是成倍消耗。
- 响應慢的頁面:單個 URL 占用连接時間長,等于压缩了同一时段能抓的數量。
新 URL 排队时,蜘蛛看哪些信号
同样的预算下,蜘蛛會優先選擇“更值得現在抓”的地址,判断依據主要来自几個方面。
- 被發現的位置:首頁、栏目導航、正文内鏈里的連結,比深层頁脚或孤立的 Sitemap 條目更容易被排進近期队列。
- 變更信号:Sitemap 中 lastmod 的真實更新、頁面本身較大的内容變化,都會让地址顯得更新鲜。
- 站点整体健康度:响應時間、狀態碼分布、重复内容比例,會影响蜘蛛對整個站点的信任程度。
- 歷史抓取质量:過去抓到的頁面如果有價值,蜘蛛會更愿意沿同样的路径繼續深挖。
把预算腾出来的几個動作
1. 關掉低價值入口
對排序、篩選類的參數頁,可以用 canonical 指向主列表頁,或在 robots.txt 中限制明顯無意义的參數组合。不是所有頁面都需要被抓,减少無效消耗本身就是提升發現效率。
2. 让更新频率和回訪节奏對上
長期不更新的栏目頁,不必频繁出現在 Sitemap 里;更新密集的板块,則值得放進首頁或導航附近,並让 lastmod 與實际修改時間保持一致。時間戳乱填的後果是,蜘蛛會逐渐不再相信這個字段。
3. 新 URL 從强路径進入
與其把新地址只寫進 Sitemap 等蜘蛛来取,不如在已有較高抓取频率的頁面上给它一條内鏈。導航、专题頁、相關阅讀模块都是可用位置。入口越靠近站点主干,新地址進入近期抓取队列的概率越高。
4. 保持响應稳定
蜘蛛来訪时段如果服務器變慢或频繁返回 5xx,抓取會立刻收缩。给抓取留出稳定的响應余量,比任何临时手段都更有效。
值得長期观察的几個數字
- 日誌中蜘蛛對新目錄的首次訪問時間,即從上线到被抓的間隔。
- 200 / 3xx / 4xx / 5xx 的比例變化,5xx 上升要立即排查。
- 被抓取的 URL 中,确實有内容更新的頁面占比。
- Sitemap 申报量與日誌中實际抓取量之間的差距。
抓取预算的變化是渐進的,通常要几周才能看出趋势。任何“马上让新頁面被大量抓取”的说法都不現實,能做的是持續减少浪費、稳定輸出信号。
回到開头的問题:老頁面反复被爬、新地址迟迟不動,往往是因為站点把预算花在了大量没有變化、没有價值或响應糟糕的地址上。先做减法,再谈加速,URL 發現的节奏會更接近预期。