搜索引擎蜘蛛真正开始抓取网页之前,通常先要读取服务器根目录下的 robots.txt 文件。这份纯文本协议相当于站点的“访问许可清单”,告诉爬虫哪些区域可以进入,哪些路径必须绕行。配置得当,不仅可以防止后台页面和敏感数据泄露到搜索结果中,还能有效减少无效抓取带来的服务器压力,让爬虫把精力集中在真正需要被收录的内容上。
robots.txt 文件必须放置在域名根目录下,比如 https://yourdomain.com/robots.txt。文件保存为 UTF-8 编码,每行只写一条指令,路径严格区分大小写。标准的文件结构由几个基础字段组成:
文件中还可以添加 Sitemap 行,交代站点地图的完整地址。下面是一个典型配置示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段规则的意思是:全站对爬虫开放,但 /admin/ 目录整体被排除,其中 /admin/public/ 子目录又单独解除限制。这里有一个容易被忽视的细节——Allow 指令并非通用标准,遇到不支持的爬虫,它依然会遵循 Disallow 的结果,原本想公开的子目录同样会被忽略。
网站的运营目标不同,robots.txt 的写法也应随之改变。下面整理了三类常见场景,可根据实际情况直接套用。
内容型网站或刚上线的项目,往往需要快速积累收录量,这时希望爬虫遍历所有页面。只需将 Disallow 字段留空即可:
User-agent: *
Disallow:
也可以干脆删除 Disallow 这一行,效果等同于放开全部页面。最常见的失误是把这里误写成 Disallow: /,一旦生效,爬虫会认为整个站点都被禁止访问,收录进度立刻归零。检查时务必确认冒号后面确实没有内容。
如果不想让某个特定搜索引擎收录站点,可以为该爬虫单独制定规则,不影响其他蜘蛛的正常抓取:
User-agent: Bingbot
Disallow: /
这样配置后,Bingbot 会被完全拒绝,而百度、Google 等搜索引擎的爬虫依旧可以正常进入。需要注意,不同的爬虫对同一句语法的解析习惯存在差异,建议配置后利用各平台站长后台的抓取测试工具进行验证。
当网站目录结构复杂时,往往需要在屏蔽敏感区域的同时,保留对特定子目录或文件的访问权限。例如电商站点通常禁止整个后台及结算页面被收录,但允许爬虫抓取商品图片所在的静态资源目录:
User-agent: *
Disallow: /cart/
Disallow: /user/
Disallow: /checkout/
Allow: /static/images/
Sitemap: https://yourdomain.com/sitemap.xml
这种写法比直接全站屏蔽更精细,既守住了核心业务逻辑区域,又保证了前端资源的正常抓取。建议每一项规则单独占一行,不要尝试在一行写多条路径。
很多站长只屏蔽 Googlebot,却忽略了其他搜索引擎的爬虫。如果目标是不被任何搜索引擎收录,务必要将封锁规则落实在所有爬虫名上,包括 Bingbot、Baiduspider 等。仅针对单一爬虫做限制,其他搜索引擎依旧能完成抓取。
robots.txt 对大小写敏感,/Admin/ 与 /admin/ 会被视为两个完全不同的路径。此外,Disallow: /admin 会同时屏蔽 /admin 开头的所有路径,包括 /administrator 和 /admin123 等,所以需要确认路径边界是否写准确。
这是一个非常危险的认知。robots.txt 只是蜘蛛访问的“礼貌协议”,并非安全防护机制。恶意的爬虫程序完全会忽视这份文件强行抓取。如果某些页面涉及用户隐私或后台管理,仅靠 robots.txt 远远不够,必须配合登录验证和服务器端的访问控制才能真正保障安全。
修改 robots.txt 后,谷歌和百度等搜索引擎会尽快重新抓取该文件并更新规则,但已收录的页面通常不会立即从搜索结果中移除,需要等待蜘蛛再次抓取该页面并确认新规则,冷门页面可能需要数周时间。若需快速移除,可以使用搜索平台的网址删除工具请求临时移除。
以 Google 为代表的搜索引擎遵循“最长匹配优先”的原则:当两条规则同时命中一个路径时,字符长度更长的那条规则生效。例如同时存在 Disallow: /admin 和 Allow: /admin/public 时,后者路径更长,因此 /admin/public 下的内容会被允许抓取。但并非所有搜索引擎都支持 Allow 指令,具体表现会有差异。
需要。即便网站内容全部通过 JavaScript 动态渲染,robots.txt 依然可以作为抓取入口的指引文件,用来声明站点地图地址,并屏蔽参数化 URL 或内部接口路径,保证搜索引擎抓取到的主要是用户可见的页面。否则,爬虫可能因为无法解析动态路由而浪费大量抓取配额。
robots.txt 用最简洁的语法完成了爬虫访问规则的传达,但它需要谨慎对待:写错一个斜杠可能让网站从搜索结果中消失,过度依赖它也无法真正保护数据安全。合理的做法是先明确站点需要开放和屏蔽的区域,再按场景套用对应模板,最后通过搜索平台的抓取测试工具核实效果。别忘了,真正的敏感信息应依靠服务器权限和登录机制来守护,robots.txt 只是抓取效率的调节器,而非安全防线。