做入口页或蜘蛛池时,经常会碰到目标页本身做了限制:页面加了 noindex、整站 robots.txt 写了 Disallow、链接带了 nofollow。这时入口页还值不值得放、搜索蜘蛛还会不会继续跟进,答案取决于具体是哪种限制。
抓取、跟进、收录是三件事
搜索蜘蛛的流程大致能拆成三步:抓取(下载页面内容)、跟进(解析页面里的链接,决定要不要抓下一层)、收录(进入索引,可能在搜索结果里出现)。这三步互相独立,某一环被关掉,不代表另外两环也停了。很多人把“没收录”直接等同于“没被抓”,这是排查时最容易走偏的地方。
目标页写了 noindex
noindex 是页面级的指令,意思是“这个页面不要放进索引”。它不影响搜索蜘蛛下载这个页面,也不影响它解析页面里的链接继续跟进。所以:
- 入口页链到一个 noindex 页面,这个 URL 通常还是会被抓取。
- 如果这个 noindex 页面里还有进一步的链接,正常情况搜索蜘蛛仍可能顺着往下抓。
- 但它不会被收录,也就不会以这个 URL 出现在搜索结果里。
换句话说,noindex 页面在“URL 发现”这件事上仍然能起作用,只是它自己拿不到索引位。如果你的入口页本来就是为了让蜘蛛发现一批 URL,目标页自身 noindex 并不意味着入口页白放。
目标页在 robots.txt 里被 Disallow
这和 noindex 完全不同。Disallow 是“别来抓这个路径”,搜索蜘蛛连页面内容都拿不到,自然也看不到页面里的链接。Disallow 是断在抓取这一环,后面的跟进、收录都无从谈起。如果你的入口页本身被 Disallow,那页面再精心布置也没用——蜘蛛根本读不到。这也是为什么检查入口页时,第一件事应该是自己确认:这个页面的返回是 200,还是已经被拦掉了。
链接带了 nofollow
nofollow 写在入口页的 a 标签上,表达的是“这个链接我不背书、不保证跟进”。搜索引擎对 nofollow 的处理这些年有变化,通常仍可能作为发现线索,但跟进不是必然,权重传递也会受影响。如果入口页里大量目标链接都带 nofollow,URL 发现的效率会打折,但没必要把它当成“绝对抓不到”。
其他容易被忽略的限制
- 登录墙或验证码:蜘蛛拿到的不是真实内容,链接也读不到。
- JS 渲染后才出现内容:是否渲染、渲染到什么程度,各家处理不同,不能默认一定看得见。
- 目标页临时 503 或超时:这属于抓取失败,蜘蛛通常会重试,不等于永久放弃。
- 目标页 404 或 410:链接会被逐步剔除,入口页留着只会浪费抓取。
怎么用日志确认到底发生了什么
- 在服务器日志里找出搜索蜘蛛 UA 对入口页的请求,确认返回码是 200。
- 查看同一时段是否有对目标 URL 的请求。有请求,说明链接至少被看到了。
- 区分“抓了但没收录”和“根本没来抓”:前者看内容质量、重复度、站点整体情况;后者看抓取路径和限制。
- 注意分辨真假蜘蛛,别把伪装抓取的行为当成搜索蜘蛛的规律来推断。
抓取是入场券,收录是另一场考试。入口页解决的是“让 URL 被看到”,它管不了目标页最终收不收。
实操上的几个建议
- 入口页自己不要 Disallow,也不要有 noindex,否则整条链路断在起点。
- 目标页确实需要 noindex 时,入口页可以继续保留,但要清楚它只承担发现作用。
- 别把 nofollow 当万能开关,也不要全站堆 nofollow,容易把有用的发现路径一起掐掉。
- 定期清理入口页里的死链,把 404、410 的目标页换掉或移除。
- 把日志当成主要的事实来源,少凭感觉判断。
总结一下:目标页 noindex,通常不影响被抓和被跟进;目标页被 robots.txt Disallow,蜘蛛连页面都读不到;链接加 nofollow,跟进会打折但不必然为零。排查顺序永远是先看抓取日志,再看限制指令,最后才去谈收录。