搜索引擎的爬虫访问网站时,首先会查看根目录下的robots.txt文件,根据其中的规则决定抓取哪些页面、跳过哪些链接。正确配置这份文件,可以让重要页面获得更频繁的抓取,同时保护后台和隐私目录不被索引;配置错误则可能造成收录异常,甚至导致整站从搜索结果中消失。
Robots协议是保存在服务器根目录的公开文件,蜘蛛每次抓取前都会主动请求。若文件缺失或为空,蜘蛛默认允许抓取所有链接,只要页面没有密码保护就可能被索引。因此,想要限制特定区域不被收录,必须明确写出禁用声明。
需要注意的是,这份协议只对遵守规则的搜索引擎有效,对恶意采集程序没有强制约束力。涉及登录后台、用户数据等敏感页面,务必通过登录验证和IP白名单加强防护,不能完全依赖robots.txt。
核心语法包含两条指令:User-agent指定适用的蜘蛛名称,Disallow声明禁止访问的路径。辅助指令中Allow可以在禁用目录内放行特定子路径,Sitemap可直接提交站点地图,加快新链接的发现。
对内容完全公开的博客或展示型网站,可用以下简洁写法:
User-agent: * Disallow:注意Disallow后面留空才代表不限,若误写为Disallow: /则相当于封锁全站,所有搜索引擎都无法收录,一般只用于维护或测试阶段。
当某个爬虫消耗大量带宽却不带来有效流量时,可单独限制。蜘蛛名称须准确,例如谷歌为Googlebot、百度为Baiduspider:
User-agent: BadBot Disallow: /这将把BadBot完全挡在站外,其他蜘蛛不受影响。但规则只能匹配名称,无法识别具体IP,遇到伪造标识的恶意爬虫仍无法阻止。
若只希望搜索引擎收录部分频道,可采用全局禁止、局部放行的组合:
User-agent: * Disallow: / Allow: /articles/ Allow: /about/ Allow: /sitemap.xml此组合中Allow优先级高于Disallow,规则可多次叠加。为保证兼容性,建议将Allow放在所有Disallow之后,路径以正斜杠开头,与服务器目录保持一致。
一个语法看似正确的robots.txt,仍可能引发持续的收录问题。以下几类错误在日常运维中最常见。
路径大小写不一致:蜘蛛对路径大小写敏感。站点实际目录为/Public/,规则写为/public/则Disallow失效,本应屏蔽的内容仍会被抓取。配置前应用浏览器逐一核实真实路径。
存在多个User-agent组时顺序混乱:每个组之间需用空行隔开,且规则是分组匹配,与声明顺序无关。检查时先确认是否存在重复的User-agent段,若有则合并,避免规则冲突。
没有区分测试环境与生产环境:若在开发站用Disallow: /后复制到线上忘记修改,会导致整站无法收录。建议上线前检查文件内容,并用在线工具或搜索引擎后台的抓取测试功能验证效果。
配置完成后,不能直接关闭编辑器了事,需通过以下方式确认规则生效:
若修改后仍发现异常收录,优先排查缓存问题:部分搜索引擎会缓存旧规则,一般需要数天至一周才能生效,此间应耐心等待并复查日志。
是的,搜索引擎只会读取站点根目录下的该文件,放在子目录不受识别。路径必须与域名直接对应,例如 https://example.com/robots.txt。
可以,写入User-agent: *且Disallow: /即可。适用于网站尚未做好准备或需要完全私密的场景,但需注意恢复后需主动提交链接才能重建索引。
删除文件后,蜘蛛默认视为全站开放,原有禁止抓取的内容可能逐渐被索引。若之前屏蔽了后台或临时页面,删除文件前务必确认这些内容已加登录验证或无第三方链接入口。
robots.txt是搜索引擎与网站之间的第一道沟通关卡,正确编写能提升抓取效率、保护敏感目录。配置时牢记路径准确、大小写一致、启用前逐条验证;上线后结合日志观察蜘蛛行为,定期复查规则是否仍匹配当前站点结构。做到以上几点,即可避免大多数收录异常,让规则真正服务于网站运营目标。