讨论收录问题时,很多人把“抓不到”和“不收录”当成同一件事。实际处理一个 URL 大致要经过几步:发现、抓取、渲染、判断质量、进入索引。不同手段卡的是不同环节,用错位置就会出现“我明明屏蔽了,怎么还被索引”,或者“屏蔽解除了,怎么还是没动静”。
三种手段分别拦在哪一步
- robots.txt:拦的是抓取。被 Disallow 的地址,蜘蛛通常不会去取内容,你写在页面里的 meta robots 或 noindex,它自然也读不到。
- noindex(meta 标签或 X-Robots-Tag):拦的是索引。前提是蜘蛛能抓到页面、读到这个指令,之后才会把已收录的地址移除。
- 登录墙、权限校验、IP 限制:拦的是内容本身。蜘蛛和未登录用户一样看不到正文,页面即使被收录,往往也是空壳或不完整状态。
最常见的误用:拿 robots.txt 当 noindex 用
想让某个页面从索引里消失,正确做法是让它保持可抓取,同时返回 noindex。如果先用 robots.txt 把它封了,蜘蛛读不到 noindex,页面可能长期以“仅显示网址、没有描述”的形式留在结果里,看起来像屏蔽失效,其实是屏蔽生效得太早。
一句话区分:robots.txt 管“别来看”,noindex 管“看完别留档”。想让内容彻底退出索引,得先允许它被看一次。
另一个坑:把抓取资源一起挡了
CSS、JS、图片如果被 robots.txt 屏蔽,蜘蛛虽然拿到了 HTML,却无法正确渲染页面,判断页面质量的依据会缺失。有些站为了省抓取预算,一刀切屏蔽静态目录,结果正文、导航都渲染不出来,收录表现反而变差。
noindex 和 canonical 不要混着下
有人一边给页面设 noindex,一边用 canonical 指向另一个希望被收录的版本,想借此“合并权重”。这两个信号方向相反:noindex 说别收录我,canonical 说把我算作那个页面。同一个 URL 同时出现这两条指令,搜索引擎只能自行取舍,结果往往不稳定。
解除限制之后,恢复不是即时的
noindex 或屏蔽解除后,搜索引擎需要重新抓取该地址、重新渲染、重新判断,才可能把它放回索引。这个过程通常以天甚至周计,还受站点整体抓取频率、该页面被链接情况影响。想推动一下,可以从站内给这些页面补几条正常内链,或在站长工具里重新提交,但不要期待当天见效。
自查顺序
- 先确认该地址当前状态:已收录、已抓取未索引,还是被屏蔽。
- 检查 robots.txt 是否误拦了这个目录,或者顺带拦掉了关键静态资源。
- 查看页面返回的 meta robots 与响应头里的 X-Robots-Tag,注意两处是否冲突。
- 确认页面是否需要登录或权限才能看到完整内容。
- 如果多处指令互相矛盾,一般以更严格的那条为准,先统一口径再观察变化。
把手段和环节对应起来,排查会清晰很多:抓不到就先别谈收录,能抓到但内容不足才会卡在索引这一步。分清楚问题出在哪一环,再决定是改 robots.txt、调 noindex,还是老老实实补内容。