把 robots.txt 的写法变成可复用检查清单,核心是先确定“要允许什么、要屏蔽什么、用什么路径匹配”,再把每条规则写成可验证的检查项。不要只凭记忆写几行 Disallow,而应把每次改动都按同一套顺序核对:文件位置、语法、路径匹配、抓取限制与索引移除的区别、验证结果。这样换一个站点或隔一段时间再写,也能按清单逐项执行,而不必重新摸索。
写 robots.txt 前先比较两种常见处理方案,再决定用哪一种。
判断依据不是“哪种更高级”,而是“改动频率和误伤成本”。如果每次上新栏目都要改规则,分目录方案更合适;如果只是屏蔽少数固定路径,全站统一规则更省事。无论选哪种,都要记住:robots.txt 的抓取限制不等于可靠的索引移除。被屏蔽抓取的页面仍可能因外部链接出现在搜索结果中,需要移除索引时应使用其他机制,而不是只改 robots.txt。
下面这份清单可以直接复制到自己的发布流程里,每次修改 robots.txt 后按顺序执行。
robots.txt,且能通过根路径直接访问。子目录下的同名文件不会被当作全站规则使用。User-agent、Disallow、Allow、Sitemap。字段名大小写不敏感,但路径值大小写敏感,写错大小写会导致匹配失败。User-agent 开头,后面跟该组的规则。多个分组之间用空行分隔。不要把一条规则写在两个分组之间而不加空行,否则可能被归入错误的组。Disallow: / 表示屏蔽整站;Disallow: 留空表示允许全部;Disallow: /private/ 表示屏蔽该目录。注意路径是前缀匹配,不是完整 URL 匹配,写得太短会误伤。Sitemap 应写完整 URL,包括协议和域名。它只是提示抓取工具站点地图的位置,不保证收录,也不能替代页面本身的可抓取性。# 开头的行是注释。注释不要写在字段名和冒号之间,否则会破坏该行语法。假设站点有 /search/ 和 /admin/ 两个目录需要屏蔽,同时希望公开站点地图。可以写成:
User-agent: *<br>Disallow: /search/<br>Disallow: /admin/<br><br>Sitemap: https://example.com/sitemap.xml
这个例子的适用条件是:这两个目录确实不需要被抓取,且没有其他规则需要区分不同抓取工具。检查结果是:请求 /search/ 和 /admin/ 下的路径应被限制,而其他路径不受影响。如果后来发现某个后台页面需要被特定工具访问,就不能继续用这一条统一规则,而要拆分成多个 User-agent 分组分别处理。
执行完清单后,至少确认以下信号:文件能通过根路径访问且返回 200;语法没有把字段名、冒号和值写错;目标路径的匹配结果与预期一致;没有把需要抓取的资源误屏蔽;站点地图地址完整可访问。若其中任何一项无法确认,就不要急着发布,先回到对应检查项重新核对。需要特别注意的是,HTTPS 只代表传输层加密,不保证站点没有漏洞,也不保证排名;robots.txt 只表达抓取偏好,不保证页面一定不被索引。
下一步建议:把你当前站点的 robots.txt 复制出来,对照上面的十项清单逐条打勾,把不符合的项改成可验证的写法,然后再发布并重新请求一次文件确认结果。