robots.txt是一个放置在站点根目录的纯文本文件,通过简短指令告诉搜索引擎爬虫哪些页面可以抓取、哪些区域需要避开。配置得当,能让蜘蛛聚焦于核心内容,提升收录效率;配置出现疏漏,则可能造成整站不被收录或后台数据泄露。下面从语法基础、实战方案到高频陷阱,逐一讲清楚。
一份完整的robots.txt由若干条指令组成,每条指令都有固定写法。掌握下面几个核心字段,就能应对大部分场景。
一个常见的配置示例:
User-agent: *
Disallow: /tmp/
Allow: /tmp/public/
Sitemap: https://www.example.com/sitemap.xml
书写时有几点容易出错:一是路径区分大小写,/Admin/和/admin/指向不同资源;二是必须使用半角英文标点,全角冒号或斜杠会让整行规则失效。
网站类型不同,robots.txt的侧重点也不同。下面列出三种典型需求,可以直接套用或稍作修改。
当网站需要改版调试或暂时下线时,可以用一条全局规则阻止所有蜘蛛访问。不过要明确一点,这个操作只对后续抓取生效,无法删除搜索引擎已有的历史快照。如果想移除旧索引,需要借助百度搜索资源平台或Google Search Console提交清理请求。
User-agent: *
Disallow: /
对于纯内容型网站或展示页面,如果没有需要隐藏的资源,直接不写Disallow、只提供Sitemap地址就可以。这种极简配置对爬虫最友好,全站页面都能被充分遍历和收录。
User-agent: *
Sitemap: https://www.example.com/sitemap.xml
企业官网或平台类站点,通常要把后台登录入口、用户中心以及临时上传目录排除在索引之外。这样做一方面避免敏感信息出现在搜索结果里,另一方面降低攻击者通过搜索引擎找到后台入口的风险。
User-agent: *
Disallow: /admin/
Disallow: /user/
Disallow: /temp/
需要注意的是,这种配置只对遵守协议的搜索引擎有效,恶意爬虫并不会理会这些规则,所以安全层面仍要靠身份验证和访问控制来兜底。
不少站点因为细节没处理好,导致收录异常。下面几个问题最具代表性。
有些站长为了减少抓取压力,把静态资源目录整个Disallow掉,结果搜索引擎无法渲染页面,反而不利于排名。如果资源本身不涉及隐私,建议保留访问权限。
同一路径可能同时命中多条规则,不同搜索引擎对匹配顺序的处理并不一致。为了避免歧义,尽量让Allow和Disallow的路径覆盖范围清晰明确,不要交叉重叠。
robots.txt必须为UTF-8编码、纯文本格式,且文件大小建议控制在较小范围内。如果文件里混入其他编码或多余符号,部分爬虫可能直接忽略整个文件,导致所有规则失效。
路径末尾的斜杠也值得注意,Disallow: /admin 和 Disallow: /admin/ 匹配范围并不完全相同。前者可能同时命中admin目录和以admin开头的所有路径,后者范围则更精确。编辑时要仔细确认自己想要的粒度。
写好robots.txt之后,最好不要直接上线就放手,先做验证再观察效果。
验证时注意,不同搜索引擎对规则的解释略有差异,不要只看一家平台的结果就下结论。
如果规则误写成 Disallow: /,搜索引擎会停止抓取新内容,但已收录的页面不会马上消失,只是不再持续抓取更新。发现后及时修正并提交抓取,一般能在较短时间内恢复。
可以。在User-agent字段写明具体的搜索引擎爬虫名称,例如Baiduspider或Googlebot,再配合对应的Disallow即可。需要注意的是,只能用规则约束遵守协议的爬虫,无法强制阻止恶意抓取。
没有固定时间表,通常几分钟到几小时不等。搜索引擎会周期性重新拉取robots.txt文件,也可以在Search Console中主动请求抓取来加快生效速度。
robots.txt不复杂,却直接影响站点的收录效率与数据安全。配置时先想清楚业务需求,再用规范的语法书写,防止大小写、标点、路径范围等细节出错。上线前用平台工具验证,上线后结合抓取日志持续调整,才能让它真正发挥保护隐私、引导抓取的作用。如果你发现站点收录异常,建议最先检查这个文件。