编写 robots.txt 时,最容易混淆的是“抓取”和“索引”两件事:robots.txt 的 Disallow 只表达“请勿抓取这个路径”,并不等于“请从搜索结果中移除这个页面”。一个页面被禁止抓取后,仍可能因为外部链接、历史记录或其他信号而出现在索引结果里;反过来,允许抓取也不保证一定被索引。
动手写之前,把三个动作分开记录,后面才不会误判:
判断起点很简单:如果你希望某个 URL 不出现在结果里,先问自己“它是否已经被索引”。已索引的页面,单靠 robots.txt 往往不够,需要配合页面级 noindex 或移除工具;未索引且不想被抓取的路径,才适合优先用 robots.txt 控制抓取。
robots.txt 是放在站点根目录的纯文本文件,通过 User-agent、Allow、Disallow、Sitemap 等指令表达抓取偏好。常见写法如下:
User-agent: *
Disallow: /private/
Sitemap: https://example.com/sitemap.xml
注意几点:
<meta name="robots" content="noindex">,并且该页面必须允许被抓取,否则爬虫读不到 noindex。/private/ 与 /private 覆盖范围不同,写之前先确认要拦的是目录还是单个文件。最关键的一步是:先确定目标是“减少抓取”还是“减少索引”。目标不同,规则组合完全不同。
写完不要凭感觉判断,按下面顺序检查:
https://你的域名/robots.txt,确认返回 200 且内容正确,没有多余 HTML。判断结果时注意:日志无请求不等于已移除索引;搜索结果无展示也不等于未被索引。两者需要分别核对。
robots.txt 是公开文件,修改后可能被缓存一段时间,不同爬虫重新读取的节奏也不一样。建议在变更记录中写清日期、改动路径和预期目标,过一段时间再对比日志与索引状态。若目标是移除已索引内容,优先考虑页面级 noindex;若只是避免爬虫浪费配额抓取无价值路径,再用 Disallow。HTTPS 只解决传输加密,不代表页面没有漏洞,也不保证排名。
下一步:列出你当前最想控制的一个路径,判断它属于“只想减少抓取”还是“需要退出索引”,再按对应方法写规则并安排一次验证。