网站不收录怎么查?状态码、robots 与 UA 三条线

2026-11-05约 9 分钟站长工具涉及 5 个工具

上线后最难受的不是排名低,而是搜索里根本搜不到。这类问题的排查顺序很固定:先看页面返回什么状态码,再看爬虫被告知了什么,最后确认来的是不是真爬虫。

核心要点
  • 收录为零先查状态码:持续返回 5xx 会让爬虫降低抓取频率,而返回 200 但内容为空等于没有东西可收
  • 想让一个页面尽快从索引里消失,410 比 404 更明确;不确定将来会不会恢复时就该用 404
  • robots.txt 只约束自愿遵守的爬虫,写错一条 Disallow 就能把整站挡在搜索引擎之外,而用户访问完全不受影响
  • UA 字符串可以随意伪造,写着 Googlebot 不代表真的是 Google,只有反查来访 IP 是否属于官方网段才可信
  • noindex 与 Disallow 必须配合使用:屏蔽了抓取,noindex 就没机会被爬到,页面会一直留在索引里

#先分清是哪种「搜不到」

「搜不到」至少有三种情况,原因和改法完全不同:完全没收录、收录了但没排名、以及能收录但抓取异常。 混在一起讨论只会得出「内容不够好」这种没用的结论。

最省事的区分方法是 site:你的域名 加一两个关键词,看返回结果。

现象一般原因先查什么
site: 一条都没有被屏蔽、状态码异常、或刚上线状态码与 robots
有首页但内页没有内链太少、爬虫没爬到内链与 sitemap
有收录但搜关键词找不到关键词竞争、内容相关性标题与正文,不是技术问题
收录数忽高忽低抓取异常、服务不稳定5xx 比例与响应时间

#第一条线:状态码说了什么

页面返回什么状态码,决定爬虫怎么对待它 —— 这比内容质量优先得多。 内容再好,返回 503 也收不进去。

几个必须分清的状态码:

  • 200:正常。但「返回 200 却是空列表 / 纯前端壳」等于没有内容可收
  • 301:永久重定向。改版用它,但发错方向很难回退
  • 404:资源不存在。不确定将来是否恢复时用它
  • 410:资源曾经存在、现已永久删除。比 404 更快让搜索引擎移除索引
  • 5xx:服务端问题。持续 5xx 会让爬虫主动降低抓取频率,恢复后需要一段时间才回升

用 HTTP 状态码 速查时有个容易混的点:301 与 302 在收到 POST 请求时可能把方法改成 GET,做 API 跳转要选 307 或 308。而 502 与 504 通常是反向代理发出的 —— 看到这两个先查代理后面的应用,别先怀疑代理本身。

注意

「返回 200 但页面是空白」是最难发现的一类问题。单页应用如果服务端没做预渲染,爬虫拿到的就是一个空壳 HTML,里面有文字但都在 JS 里 —— 对爬虫来说等于零内容。检查办法是禁用 JavaScript 后再看源码。

#第二条线:robots 与 noindex 有没有挡住

robots.txt 的危险之处在于它只对爬虫生效,你自己访问完全正常 —— 所以写错了不会有任何提示,只会看到收录量一直上不去。 用 robots.txt 检测 可以同时做两件事:解析规则分组,以及用指定爬虫身份检测任意 URL 是否允许抓取。

规则语义比大多数人以为的细:

  • 最长匹配优先:Disallow: /admin/ 与 Allow: /admin/public/ 并存时,更长的 Allow 生效
  • 同长度 Allow 胜出:这是 Google 的约定
  • 通配与结尾锚:* 匹配任意字符,结尾 $ 表示到此结束,/*.pdf$ 只拦以 .pdf 结尾的地址
  • 空值不限制:Disallow: 后面什么都没有,表示允许全部 —— 不是禁止全部
  • 未命中任何规则即允许,这是默认行为

排查时按顺序确认三件事:User-agent: * 是否覆盖了目标爬虫、有没有一条 Disallow: /、Sitemap 地址是不是绝对 URL。这三条覆盖了绝大多数误伤。

要点

Disallow 与 noindex 是两个方向:前者是「别来抓」,页面仍可能因外链出现在索引里;后者是「抓到了也别收录」,需要爬虫先抓到才生效。想彻底不让某页出现,两者要配合 —— 但先 Disallow 再指望 noindex 生效是死结,因为页面爬不到了,noindex 永远读不到。

顺便核对一次 meta 标签。用 Meta 标签生成 生成的 robots 固定是 index, follow,需要排除的页面得自己改成 noindex。它同时会检查标题描述的长度口径 —— 按像素宽度算,中文约 30 字、英文约 60 字符就会被截断。

#第三条线:来的是不是真爬虫

UA 字符串由客户端自己发送,可以随意伪造,所以「UA 写着 Googlebot」完全不能作为可信依据。 真正的验证只有一条:反查来访 IP 是否属于该搜索引擎公布的网段。

用 UA 解析 判断来访者时,先接受一个前提:它只适合做统计与适配,不能用于权限或风控。几个必然遇到、看起来像识别错误的正常现象:

  • Windows 11 显示成 10/11:Win11 的 UA 里仍写着 Windows NT 10.0,微软冻结了版本号
  • iPad 显示成 macOS + 桌面:iPadOS 13 之后默认请求桌面版网页,UA 与 Mac 几乎一样
  • Chrome 的 UA 里也有 Safari:Chromium 保留了 Safari/537.36 做兼容,判断顺序必须是先 Edg/、OPR/、Chrome/ 再看 Safari/

爬虫识别看的是 bot、spider、crawler、slurp 这类标识,能认出主流搜索引擎。但记住那句老话:UA 说自己是 Googlebot 的,可能是任何一台机器。

技巧

想确认搜索引擎真的来过,比 UA 更可靠的证据是服务端访问日志里的 IP 归属,或者搜索平台后台的「抓取统计」。UA 只能当线索,不能当证据。

#域名本身有没有问题

域名到期、状态异常、或者刚注册,都会让收录停滞,而且这些原因在网站本身完全看不出来。 用 Whois 查询 看四项:注册商、创建时间、到期时间、域名状态。

重点看两个:

  • 到期时间:工具会算出剩余天数。到期不续费,站点、企业邮箱和第三方验证会同时失效
  • 域名状态:出现 pendingDelete 或 redemptionPeriod 说明已经进入删除或赎回流程,处理窗口很短

还有一个常被忽略的因素:新域名有信任期,搜索引擎不会立刻大量抓取。这期间能做的是保证站点结构清晰、内链充分、sitemap 正常提交,而不是反复改内容。

#什么时候该用哪个工具

你想确认的事用哪个关键点
某个 URL 是否允许被抓robots.txt 检测支持通配符与按爬虫身份检测
页面到底返回什么码HTTP 状态码查阅表,实际状态用 curl -I 验证
来访者是不是真爬虫UA 解析UA 可伪造,只能当线索
域名有没有过期或异常Whois 查询含剩余天数与状态告警
标题描述长度是否合适Meta 标签生成按像素宽算,不是字符数

排查顺序就是本文的顺序:状态码 → robots/noindex → UA → 域名。 前三项能解释绝大多数「收录为零」,域名问题则往往伴随「整站突然消失」。

这套顺序与 网站上线前检查什么 互补:那篇讲上线前该预防什么,这篇讲上线后出了问题怎么定位。

#常见问题

#提交了 sitemap 还是不收录,是什么原因?

sitemap 是「告诉爬虫有哪些 URL」,不是「要求它收录」。提交后长期不收录,通常回到三条线里的一条:页面状态码不对、被 robots 或 noindex 挡住、或者内容与其他页面高度重复。另外 sitemap 本身要能被访问(返回 200 且是合法 XML),并且其中的 URL 与 canonical 一致。

#应该用 404 还是 410?

不确定这个页面将来会不会恢复,就用 404 —— 它是「暂时找不到」,语义上留有余地。确认内容永久删除且不再提供,用 410,它能让搜索引擎更快移除索引。两者都不要用 200 加一句「页面不存在」,那会让爬虫把空页面当成正常内容收进去。

#为什么我的页面被收录了但搜不到排名?

收录和排名是两件事。收录只表示搜索引擎知道这个 URL 存在;能不能排上去取决于关键词竞争、内容与查询的相关性、以及站点整体质量。这时候该改的是标题、正文与内链,而不是继续排查技术问题。

#robots.txt 写错后要多久恢复?

改回来之后,爬虫下次抓取 robots.txt 就会读到新规则,但重新抓取那些已被挡住的页面需要时间,取决于站点被爬的优先级。加速办法是主动在搜索平台后台提交 sitemap,或用「抓取测试」工具请求重新抓取关键页面。

#如何确认来访的真的是 Googlebot?

看服务端访问日志里的来源 IP,与搜索引擎官方公布的网段列表比对,或者做反向 DNS 查询确认域名归属。仅凭 UA 字符串无法判断 —— 任何人都可以发一个写着 Googlebot 的请求,这类伪造流量在恶意采集里非常常见。

本文提到的工具

相关文章