把 URL 提交到 Sitemap、在内鏈里补上連結、用工具推一把,這些動作都只完成了一件事:让蜘蛛知道這個地址存在。知道之後會不會马上抓、什么时候抓,是另一個环节的問题。很多站点遇到的“提交了却一直没抓”,本质上就是 URL 進了抓取队列,但迟迟没有排到。
發現和抓取是两個阶段
蜘蛛先發現 URL,把它记進待抓列表,再按自己的調度去取。發現只代表地址被记下,抓取才是真正發出請求。两個阶段中間隔着一個队列,队列怎么排不由站長决定,但站点的表現會影响排队的先後。
所以看到“已發現,尚未抓取”這類狀態时,先別急着反复提交。重复提交通常不會让目标往前排,反而會让同一批地址反复出現在清單里。
队列里的 URL 大致按什么排
常见的影响因素包括:地址被連結的位置和數量、頁面歷史上更新是否規律、服務器响應是否稳定快速、整站在抓取過程中的成功率、新地址與已有 URL 是否高度相似。這些因素不是開關,而是長期叠加出来的印象分。
排查时先看這几個点
地址是不是重复的
參數、排序、篩選、大小寫、尾斜杠都可能制造出同一内容的多個地址。重复地址越多,队列里堆积越多,真正重要的頁面反而排在後面。用 canonical、robots 和參數合並規則把同一内容收口到一個地址,是让队列變干净的第一步。
服務器响應够不够快
抓取时如果经常超时或返回 5xx,調度通常會降低對整站的請求量。先解决响應慢、偶發报错、限速誤伤這几類問题,再谈回訪频率會更實际。
站内有没有通向它的連結
只靠 Sitemap 出現的 URL,往往排在比較靠後的位置。让目标頁面從频道頁、列表頁、相關推荐等真實位置获得連結,队列里的優先級通常會更靠前一些。
robots 與 nofollow 的邊界
如果抓取路径上的頁面被 robots 挡過,或者中間連結带了 nofollow,蜘蛛可能连地址都没记下来。這时 Sitemap 里的 URL 就是唯一线索,但它的催促作用有限,更多是兜底而不是主力。
可以按這個顺序動手
- 先從服務器日誌確認蜘蛛有没有来過,来的是不是目标 URL。
- 检查同一内容是否存在多個地址,能合並的合並。
- 把响應時間和 5xx 比例压下来,並保持几周稳定。
- 在内鏈中给重要頁面真實的位置,而不是只放在頁脚或 Sitemap。
- 观察一两周再看變化,不要每天調整一次規則。
小结:發現是把地址寫進清單,抓取是把清單上的項取回来。能控制的部分是清單干不干净、服務器接不接得住、連結指不指得到,剩下的交给調度节奏。