“已发现但未抓取”是搜索蜘蛛在日志和站长平台里常见的一种中间状态:它从入口页的链接知道了目标 URL 存在,却没有真正去请求这个地址。入口页能做的只是让链接更容易被发现,并不决定蜘蛛什么时候来抓。理解这一点,排查方向才不会跑偏。
先把几种状态分开看
很多误判来自把不同状态混为一谈。
- 已发现、未抓取:链接被解析到,URL 进入待抓队列,但还没有发出请求。
- 已抓取、未索引:蜘蛛已经来过,取回了内容,但判断价值不足或不适合收录。
- 抓取被拒:robots.txt、防火墙或服务器返回码把请求挡在了外面。
只有第一种才和“入口页发现”直接相关,后两种要从内容和服务端找原因。
入口页这条链路上的问题
入口页自身是否被抓取
入口页如果本身访问频率极低,链接被解析的机会也少。可以看服务器日志里入口页的请求次数、返回码和响应时间。入口页大量返回 5xx、频繁超时,或者内容常年不变,都会降低它被反复访问的概率。
链接是否真的可解析
链接写在 JS 渲染后才出现的位置、依赖点击才展开的区块、或被 CSS 隐藏的容器里,都可能让解析器拿不到 href。用“查看网页源代码”确认目标链接是否出现在初始 HTML 中,是成本最低的一步。
单页链接数量是否过多
一个入口页塞进几百上千条链接,蜘蛛通常会挑选其中一部分处理。链接数量越多,单条被优先抓取的机会越小。
目标 URL 一侧的常见原因
- 页面内容与站内其他页面高度重复,或正文极短、几乎没有有效文本。
- URL 带大量跟踪参数、会话 ID,被判定为同一内容的多个变体。
- canonical 指向了别的地址,蜘蛛自然优先抓被指向的那个。
- 目标页需要登录、依赖 Cookie,返回的是空壳内容。
- 服务器响应慢、频繁超时,抓取队列会把它往后排。
一个可操作的排查顺序
- 用日志确认搜索蜘蛛最近是否访问过入口页,频率和状态码是否正常。
- 查看入口页初始 HTML 里是否存在目标链接,锚文本和路径是否清晰可读。
- 抽查目标 URL 的返回码和首字节时间,确认没有 4xx、5xx 和长时间等待。
- 检查目标页的 robots 元标签、canonical、移动端适配是否与预期一致。
- 减少同一入口页的链接总量,把重点 URL 放在更靠前、更明确的位置。
- 观察两到四周,对比抓取请求数的变化,再决定下一步调整。
几个容易走偏的误区
- 以为提交得越多、抓得越快。提交只是告知,抓取节奏由爬虫自己决定。
- 以为换个入口页就能立刻改变结果,却忽略了目标页本身的质量问题。
- 只看站长平台的数字,不看服务器日志,漏掉被拦截的请求。
入口页能做的,是让链接更容易被发现;能不能被抓、会不会被收录,最终取决于目标 URL 自身和服务端的整体表现。
如果入口页链路正常,目标 URL 却长期停在“已发现”,通常不是某一次提交没生效,而是抓取配额、内容价值和站点稳定性几件事叠在一起。按上面的顺序逐项排除,比反复更换入口页更有效。