搜索引擎蜘蛛在抓取网站前,通常会先定位根目录下的 robots.txt 文件,以此判断哪些路径可以访问、哪些需要跳过。这份纯文本文件就像网站的访问通行证,配置得当既能保护后台数据不被索引,也能减少无效抓取对服务器造成的负担,帮助爬虫将精力集中在核心内容上。
robots.txt 必须存放在网站根目录下,比如 https://yourdomain.com/robots.txt 就是标准路径。文件编码需为 UTF-8,每条指令单独占一行,路径部分对大小写敏感。一份基础的 robots.txt 由下列关键模块组成:
此外,文件中可以额外加入一行 Sitemap 声明,用于指向站点地图的 URL。以下是一个常用的配置参考:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段配置表明:爬虫可以访问站内大部分区域,但 /admin/ 目录被排除在外,其中 /admin/public/ 子目录又单独获批。需要清楚的是,Allow 并非所有搜索引擎都认可。若蜘蛛不识别 Allow,它会继续按照 Disallow 的规则执行,导致原本想公开的子目录同样被拦截。
针对网站的运营需求不同,robots.txt 的写法也有明显区别。下面梳理了三个高频使用场景,可以按需套用。
如果你的站点属于内容型或刚上线,希望快速提升收录量,通常要让全部页面都暴露给爬虫。此时只需设置一个空白 Disallow 即可:
User-agent: *
Disallow:
或者干脆省略 Disallow 这行,效果是等同的。这里最要避开的误区是写成 Disallow: /。一旦如此,所有蜘蛛都会无法访问全站任何页面,收录工作将完全停滞。检查配置时,可以先确认冒号后是否留有空白,避免疏忽。
当你想限制某个搜索平台的抓取,但又不想影响其他搜索引擎时,可以为该蜘蛛单独写一条规则:
User-agent: Baiduspider
Disallow: /
这种方式会让 Baiduspider 被完全拒绝,而 Googlebot、Bingbot 等其他爬虫仍能正常访问站点。注意,规则书写顺序并无严格要求,但每个 User-agent 块之间需要保持独立,避免混淆。
对于一些内部工具、测试页面或重复内容路径,可以指定个别目录进行拦截,同时允许其他部分正常抓取:
User-agent: *
Disallow: /temp/
Disallow: /private/
这种写法适合电商网站屏蔽购物车页面、论坛屏蔽登录入口等场景。要注意的是,Disallow 路径的匹配是前缀匹配,若要精确到单个文件需写完整路径,否则容易误伤。
在编写 robots.txt 时,一些细节问题可能会让意图落空,甚至产生相反效果。
另一个容易被忽视的问题是,robots.txt 本身并不强制生效,它依赖蜘蛛的自觉遵守。恶意或非标准的爬虫可能完全忽略这些规则,因此不能将安全防护完全寄托于此。
配置完成后,不能只看表面逻辑,还需要实际验证效果。常用的方法包括:
同时,如果网站结构有变动,比如新增了板块或删除了目录,要同步更新文件,避免旧规则残留。修改后建议立刻重新测试,确保新规则即时生效。
不能完全依赖。虽然主流搜索引擎都会遵守规则,但部分第三方或恶意爬虫可能无视该文件。要更好地保障数据安全,还需配合其他手段,如密码保护、服务器访问控制等。
这取决于爬虫的具体实现。以 Googlebot 为例,Allow 指令的匹配优先级高于 Disallow,因此即使父目录被屏蔽,子目录的 Allow 也能生效。但其他搜索引擎可能有不同逻辑,因此建议测试后再确认。
多数搜索引擎会定期抓取该文件,通常几分钟到几小时内会更新。而已经抓取的页面可能需要更长时间才会从索引中移除,因为 robots.txt 只控制后续的抓取行为,不直接影响已收录内容的删除。
robots.txt 是搜索引擎友好度的基础配置之一,但它并不复杂。关键在于明确自己的目标:是开放全站还是拦截特定区域,然后根据目标选择合适的模板。写完配置后,务必通过浏览器和测试工具双重验证,并定期检查日志动态。最后,记住该文件并非安全屏障,敏感内容需要配合其他手段保护。从今天起,检查一下自己网站的 robots.txt,确保它没有成为抓取的绊脚石。