robots.txt编写,哪些常见误解会导致误操作

📍 WDQWDWQD987AAAAA:216.73.216.54
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /48c1e19c2a67.html
📄

robots.txt编写,哪些常见误解会导致误操作

最常见的误操作,是把 robots.txt 当成“删除网页”的工具:它只能表达抓取偏好,不能可靠地让已经收录的页面从搜索结果中消失,也不能阻止页面被其他方式引用或访问。另一个高频错误,是在测试环境或改版时随手写 Disallow: /,以为只是临时屏蔽,结果让抓取工具无法访问整站,恢复后还需要时间重新发现内容。要减少误操作,关键是区分“限制抓取”和“移除索引”两种目标,再决定用哪种方案。

误解一:Disallow 等于从搜索结果移除

Disallow 只是告诉抓取工具不要抓取某个路径。它不保证页面从索引中消失。如果页面已被收录,抓取工具看不到页面内容,就无法及时确认页面是否已变更、是否应移除,反而可能继续保留旧标题或旧摘要。

误解二:全站屏蔽可以当临时开关

用 User-agent: * 加 Disallow: / 屏蔽全站,是测试站、未上线站点常见的做法。问题在于,它一旦被部署到正式环境,抓取工具会停止抓取整站。恢复后,抓取工具需要重新发现和抓取页面,效果不会瞬间恢复。

更稳妥的做法是:测试环境用访问密码或独立域名隔离,而不是依赖 robots.txt 当作临时开关。若必须用文件控制,至少在上线检查清单中确认正式环境没有全站屏蔽规则。

误解三:写了 Sitemap 就会收录

在 robots.txt 中写 Sitemap: 只是提供发现线索,不保证页面被收录。页面能否收录,还取决于内容质量、可访问性、重复情况、抓取预算等因素。若页面被 robots.txt 屏蔽,站点地图中的网址通常也无法被正常抓取,提供地图反而没有帮助。

误解四:规则越细越安全

有人会写大量 Disallow 路径,试图精确控制抓取。规则越复杂,越容易误伤。例如,Disallow: /search 可能同时屏蔽 /search-help 这类正常页面。不同抓取工具对通配符和结尾匹配的支持并不完全一致,写之前应分别核查目标抓取工具的文档。

比较两种处理方案时,可以这样选:

  1. 先明确目标:是减少抓取,还是阻止索引,还是移除已收录页面。
  2. 若目标是阻止索引,优先用页面级 noindex;若页面已不需要,返回 404 或 410。
  3. 若目标是减少抓取,用尽量少的 Disallow 规则,并在测试环境验证。
  4. 部署后检查:抓取工具是否能读取 robots.txt,目标路径是否被意外屏蔽,站点地图中的关键页面是否仍可抓取。

下一步,先列出你真正想屏蔽的路径,再逐条对照目标:如果某条规则的目的其实是“让页面不被索引”,就把它从 robots.txt 中拿出来,改用页面级方案处理。

图1 图2

nginx