很多人把“蜘蛛来过”当成“页面被收录”的信号,于是在日志里看到一次抓取就放心了。实际上抓取和收录是两个独立动作,中间隔着一次判断。把这两件事分开,排查方向会清楚很多。
两个动作,判断标准不同
抓取是搜索引擎的爬虫把页面内容取回自己的服务器;收录是搜索引擎决定把这个页面放进索引库,之后它才有可能出现在搜索结果里。前者看的是“能不能取到”,后者看的是“值不值得留”。能取到不等于值得留,这是大部分困惑的来源。
先定位卡在哪一步
判断顺序建议从证据最硬的开始:
- 服务器日志:蜘蛛是否来过、来的时候返回了什么状态码、取的是哪条 URL,这是最直接的一手证据。
- 索引状态报告或站点地图报告:能看到“已发现未抓取”“已抓取未编入索引”这类分堆,比只盯着总数有用。
- site: 查询与 URL 检查类工具:能提供参考,但结果并不精确,不适合当作唯一依据。
日志里从未出现过该 URL,问题在抓取之前;日志里有记录但状态码不是 200,问题在可访问性;日志正常、状态码正常,页面却长期不在索引里,才轮到收录判断。
没有被抓取时,先查这些
- robots.txt 是否挡住了:最常见也最容易忽略的一项,被挡之后已经在索引里的页面也会慢慢消失。
- 状态码和跳转链:301 链条过长、302 反复跳、返回 5xx,都会让蜘蛛放弃或降低抓取频率。
- 发现路径:页面有没有内链指向?是否只存在于站点地图里?孤立页面靠站点地图也能被发现,但优先级通常更低。
- 服务器响应:响应慢、超时、并发限制严格,会让抓取量被动下降。
被抓取了却没收录,重点转向内容判断
- 是否与站内或站外页面高度重复:同一内容多个地址、采集转载、模板大面积相同,都可能导致搜索引擎只挑一条留下。
- 主体内容是否太薄:标题、导航、页脚占了大半,正文只有一两句,很难被判定为有独立价值的页面。
- canonical 与 noindex 是否写反:canonical 指向别处,等于自己声明“我不是主版本”;noindex 则会直接把它排除在外。
- 内容是否依赖渲染后才出现:如果正文只能靠脚本加载,而抓取时拿不到,索引里留下的可能只是空壳。
这几项里,重复和薄内容属于内容层面的问题,改模板、改标签都解决不了,只能回到页面本身。
两个常见的混淆
- 抓取频率高等于收录好:抓取频率反映的是爬虫对站点更新节奏和响应质量的判断,和是否收录没有必然关系。频繁抓取一个低质量页面,结果依然可能是不收录。
- 提交站点地图等于会被收录:提交只解决“告诉搜索引擎有这么一条 URL”,并不构成收录承诺。
蜘蛛池这类手段能影响的是 URL 被发现的速度,也就是把页面更快送到爬虫面前。它改变不了页面质量、重复度和规范性带来的收录结果。把它当成加速发现的工具,而不是收录问题的解决办法。
一个可复用的排查顺序
遇到“这个页面怎么还没收录”,按下面的顺序走一遍,通常能在一两轮内定位到层级:
- 日志里有没有抓取记录?没有,就查 robots、内链、站点地图、响应状态。
- 有抓取记录的话,返回的状态码是什么?非 200,先修可访问性。
- 状态码正常,页面是否 noindex、canonical 是否指向别处?是,先纠正标签。
- 标签正常,正文是否与已有页面高度相似、是否过薄?是,处理内容,而不是继续加提交或加外链。
- 以上都正常,仍然长期不收录,就记录时间观察规律,同时把精力放回站点整体质量。
把抓取和收录拆开之后,很多“蜘蛛明明来过”的疑问会自然消解:来过只说明第一步完成了,第二步取决于页面本身。