网站收录

robots.txt 写错一行,收录就断了:常见误封与自查顺序

robots.txt 只约束抓取,不决定收录,但一行规则写错就足以让页面长期进不了索引。本文梳理整站屏蔽、资源目录误封、通配符误伤等常见问题,给出从返回状态码到规则测试的自查顺序,并说明需要页面退出索引时该用 noindex 而不是 Disallow。

网站收录

robots.txt 写错一行,收录就断了:常见误封与自查顺序

robots.txt 是搜索引擎进入站点的第一道门。它不决定页面能不能被收录,但决定蜘蛛能不能把页面抓回去——抓不到,后面所有关于内容质量和索引的判断都无从谈起。很多“突然不收录了”的情况,最后都追到这一行配置文件上。

先分清 robots.txt 管的是什么

robots.txt 约束的是抓取,不是索引。被 Disallow 的 URL,蜘蛛不会去读,也就看不到页面上的 noindex、canonical 和正文。反过来说,如果某个页面已经被收录,再用 Disallow 把它挡住,搜索结果里那条记录可能长期存在,只是摘要和内容不再更新。

需要页面退出索引时,用 meta robots 或 X-Robots-Tag 的 noindex,而不是 robots.txt。工具用错,问题会拖得更久。

最常见的几类误封

  • 整站屏蔽:从测试环境复制过来的 Disallow: /,上线时忘了删,站点在搜索结果里逐步消失。
  • 屏蔽资源目录:把 /assets/、/static/、/js/ 一起挡住,蜘蛛拿不到 CSS 和 JS,渲染判断和页面质量评估都会受影响。
  • 通配符误伤:用带问号的通配规则想挡参数,结果连带把正常的详情页一起挡了;结尾的 $ 位置写错,匹配范围会超出预期。
  • 规则优先级理解错:同一条路径上有多条规则时,按最长匹配生效,长度相同时 Allow 优先。规则在文件里的先后顺序本身不影响结果。
  • 返回内容不是纯文本:有些站点把 robots.txt 的请求重写到首页,返回了 HTML。这种情况下搜索引擎的处理方式和你预期不同,规则实际并未生效。

返回状态码也要一起看

  1. 200 且内容是合法规则:按规则执行。
  2. 404:视为没有限制,全站可抓。规则文件被误删时会走到这里。
  3. 403:接近全站禁止抓取,影响和 Disallow: / 相近。
  4. 5xx:蜘蛛通常会暂停一段时间再重试,短期抓取量会下降。

所以排查时不要只看文件内容,状态码、Content-Type、实际返回的字节都要确认一遍。

一个可执行的自查顺序

  1. 在搜索引擎后台的 robots.txt 报告里,确认线上生效的是哪一版,而不是你本地那份。
  2. 直接访问 /robots.txt,看返回码和内容是否被 CDN、WAF 或重写规则改过。
  3. 用官方的 robots.txt 测试工具,逐条测试首页、栏目页、详情页、资源文件和 sitemap 里的代表性 URL。
  4. 核对被屏蔽的路径下,是否包含 sitemap 提交的 URL,或站内大量内链指向的 URL。这类链接被挡,等于白白浪费抓取机会。
  5. 核对需要 noindex 的页面有没有同时被 Disallow,导致 noindex 永远读不到。
  6. 改完后看日志:目标目录的抓取请求是否恢复,返回码是否正常。

修复之后别急着下结论

解除屏蔽只是把门打开。抓取恢复、重新抓取、内容重新评估都要时间,不同站点的节奏差别很大。这段时间里更值得做的是检查内链是否指向有效 URL、sitemap 是否只放需要收录的地址,而不是反复来回改规则。

最后提醒一句:robots.txt 是公开的,也不具备访问控制能力。真正不该被看到的内容,应该用权限控制、noindex 或干脆不发布来处理。