把 URL 提交到 Sitemap、在内链里补上链接、用工具推一把,这些动作都只完成了一件事:让蜘蛛知道这个地址存在。知道之后会不会马上抓、什么时候抓,是另一个环节的问题。很多站点遇到的“提交了却一直没抓”,本质上就是 URL 进了抓取队列,但迟迟没有排到。
发现和抓取是两个阶段
蜘蛛先发现 URL,把它记进待抓列表,再按自己的调度去取。发现只代表地址被记下,抓取才是真正发出请求。两个阶段中间隔着一个队列,队列怎么排不由站长决定,但站点的表现会影响排队的先后。
所以看到“已发现,尚未抓取”这类状态时,先别急着反复提交。重复提交通常不会让目标往前排,反而会让同一批地址反复出现在清单里。
队列里的 URL 大致按什么排
常见的影响因素包括:地址被链接的位置和数量、页面历史上更新是否规律、服务器响应是否稳定快速、整站在抓取过程中的成功率、新地址与已有 URL 是否高度相似。这些因素不是开关,而是长期叠加出来的印象分。
排查时先看这几个点
地址是不是重复的
参数、排序、筛选、大小写、尾斜杠都可能制造出同一内容的多个地址。重复地址越多,队列里堆积越多,真正重要的页面反而排在后面。用 canonical、robots 和参数合并规则把同一内容收口到一个地址,是让队列变干净的第一步。
服务器响应够不够快
抓取时如果经常超时或返回 5xx,调度通常会降低对整站的请求量。先解决响应慢、偶发报错、限速误伤这几类问题,再谈回访频率会更实际。
站内有没有通向它的链接
只靠 Sitemap 出现的 URL,往往排在比较靠后的位置。让目标页面从频道页、列表页、相关推荐等真实位置获得链接,队列里的优先级通常会更靠前一些。
robots 与 nofollow 的边界
如果抓取路径上的页面被 robots 挡过,或者中间链接带了 nofollow,蜘蛛可能连地址都没记下来。这时 Sitemap 里的 URL 就是唯一线索,但它的催促作用有限,更多是兜底而不是主力。
可以按这个顺序动手
- 先从服务器日志确认蜘蛛有没有来过,来的是不是目标 URL。
- 检查同一内容是否存在多个地址,能合并的合并。
- 把响应时间和 5xx 比例压下来,并保持几周稳定。
- 在内链中给重要页面真实的位置,而不是只放在页脚或 Sitemap。
- 观察一两周再看变化,不要每天调整一次规则。
小结:发现是把地址写进清单,抓取是把清单上的项取回来。能控制的部分是清单干不干净、服务器接不接得住、链接指不指得到,剩下的交给调度节奏。