当搜索引擎的爬虫程序访问网站时,它首先会寻找并读取根目录下的 robots.txt 文件。这个文件充当着网站与爬虫之间的“交通规则”,告知对方哪些内容可以被抓取,哪些区域必须绕行。一份设置合理的 robots.txt,不仅能保护后台、测试页面等敏感信息不被收录,还能引导搜索引擎把有限的抓取配额用在刀刃上,从而显著提升核心页面的收录速度和排名表现。
robots.txt 文件必须被放置在网站的根目录下(例如 https://www.example.com/robots.txt )才能生效。文件应当采用 UTF-8 编码,文件名严格使用小写字母,并且路径是区分大小写的。文件内容由多个“规则组”构成,每个规则组针对特定的爬虫声明权限。理解以下三个基础指令,是配置的前提:
此外,可以在文件末尾增加一行 Sitemap 指令,帮助爬虫快速发现站点地图的位置。一个典型的综合配置示例如下:
User-agent: *
Disallow: /private/
Disallow: /temp/
Allow: /private/login/
Sitemap: https://www.example.com/sitemap.xml
上述规则的含义是:所有爬虫均被禁止访问 private 和 temp 目录,但 private 目录下的 login 页面是例外,仍然允许抓取。这里要特别留意,路径匹配遵循的是前缀原则,例如 Disallow: /private/ 会屏蔽该目录下的所有子路径,除非有像 Allow: /private/login/ 这样更精确的规则来覆盖它。
不同类型的站点,对抓取控制的需求截然不同。以下是三种最常见的配置模板,可以直接参考并依据自身情况调整。
对于博客、新闻门户或产品展示站,目标是让搜索引擎尽可能多地收录页面。此时配置应遵循极简原则,明确告诉爬虫不设任何阻拦:
User-agent: *
Disallow:
直接省略 Disallow 这一行也能达到相同效果。这里一个极其普遍的失误,是把 Disallow 的值误写为 “/”。这等同于关闭了整站的抓取入口,后果是网站页面会逐渐从搜索结果中消失,且恢复收录的过程相当漫长。修改后务必反复核对这一行。
当某个特定爬虫的抓取频率过高,导致服务器负载攀升,或者出于其他原因不希望某个蜘蛛索引站点时,可以只针对该爬虫设定拦截规则,这样不会影响其他搜索引擎蜘蛛的正常访问:
User-agent: Bingbot
Disallow: /
User-agent: Googlebot
Disallow:
上面的规则意味着:Bing 的爬虫被完全禁止抓取,而 Google 的爬虫则不受任何限制。值得注意的是,大多数搜索引擎都遵循 IETF 的规范,即 Disallow 规则的长度越长,优先级越高。因此,想在一个被整体屏蔽的路径下放行某个特定子路径,需要利用这一特性来精心设计。
对于电商网站或大型社区,通常不希望搜索索引中充斥搜索页、筛选页或排序页等动态 URL,因为这些页面容易造成大量重复内容。这时可以利用通配符(*)精确拦截:
User-agent: Googlebot
Disallow: /*?sort=
Disallow: /*&page=
Disallow: /search?
这种配置可以有效阻止爬虫耗费资源去抓取那些参数繁多的动态链接,从而将抓取预算集中到产品详情页或分类页等更有价值的内容上。需要注意的是,该写法依赖通配符支持,但并非所有爬虫都遵循这一扩展语法,有时需要结合 Allow 和 Disallow 的优先级规则来设置白名单。
配置完成后,验证其正确性是至关重要的一步。现在各大搜索引擎都提供了免费的站长工具来辅助查看。
在 Google Search Console 的“robots.txt 测试工具”中,可以输入具体的网址来测试该 URL 是否被当前的 robots.txt 规则所阻止。同时,工具也会直接指出语法上的错误,例如未知的指令名称或格式上的问题。
在手动检查文件时,需要注意几个常见问题:文件是否放在了正确的根目录路径下;文件是否采用了无 BOM 头的 UTF-8 编码;每一行指令的格式是否正确。建议使用纯文本编辑器编辑文件,避免使用会添加额外格式的字处理软件。完成修改后,可以通过浏览器直接访问 robots.txt 的 URL 来确认文件内容已经更新。
在实际运维中,很多看似合理的小操作,往往会埋下不小的隐患。了解这些常见误区,可以帮你少走弯路。
不能。robots.txt 仅能阻止爬虫抓取页面内容,即它告诉爬虫“不要访问”。但如果其他网站有指向该页面的外部链接,搜索引擎可能会将 URL 本身计入索引,表现为“无标题”或“已禁止”的条目。若想彻底从搜索结果移除,应结合使用 noindex 标签或登录站长平台提交移除请求。
需要。过时的规则,尤其是针对旧版路径的 Disallow 指令,可能会意外地屏蔽新版本中同名的关键目录,导致新站内容无法被收录。每次完成 URL 结构调整或平台迁移后,应当系统地审查并同步更新 robots.txt 文件,避免遗留历史问题。
建议声明。虽然搜索引擎通常可以通过根目录或后台管理界面发现站点地图,但在 robots.txt 中显式声明 Sitemap 地址,可以进一步确保爬虫能够第一时间找到它,尤其是当站点地图的目录层级较深无法被自动探测到时,这一行声明能有效加快核心页面的收录进度。
配置 robots.txt 的核心原则是“克制与明确”。从最小化开放开始,避免过度封锁;针对不友好的爬虫或无用路径进行定向防御;务必保留一份 Sitemap 声明。每次修改后,都使用站长工具进行验证,并在观察几周后确认搜索引擎的抓取数据是否符合预期。记住,这份协议是写给程序看的,保持文件的可读性和逻辑清晰,既是对爬虫的尊重,也是保护自身网站健康运营的基石。