网站运营者通常会在服务器根目录放置一个名为 robots.txt 的文本文件,以此向搜索引擎爬虫说明网站的抓取边界。这个文件并不复杂,但一旦写错,轻则后台页面泄露,重则全站不被收录。掌握其核心语法与配置逻辑,是管理网站搜索表现的基础技能。
robots.txt 文件必须位于网站根目录,确保通过 https://域名/robots.txt 可以直接访问。文件本身是纯文本格式,推荐使用 UTF-8 编码,避免因编码问题导致中文路径乱码。每行只写一条规则,路径区分大小写,这一点常被忽视。
文件内容由若干"规则组"构成,每组通常包含以下声明:
一个基础配置示例:
User-agent: *
Disallow: /tmp/
Allow: /tmp/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段规则的含义是:所有爬虫默认可以抓取全站,但 /tmp/ 目录被屏蔽,不过其中的 /tmp/public/ 子目录特意放行。同时,在文件末尾声明了站点地图的地址,便于爬虫更快发现新内容。
请注意,Allow 并非万能开关。如果某个爬虫不识别 Allow 指令,它仍然会遵守 Disallow 的屏蔽规则。因此在部署前,建议先用搜索引擎官方提供的检测工具验证一下效果。
根据网站类型和运营需求不同,robots.txt 的写法也各有侧重。下面是几种实际工作中最常遇到的配置需求。
对于内容型新站,目标是让搜索引擎尽可能多且快地收录页面。此时配置最简单:
User-agent: *
Disallow:
Disallow 后面什么都不写,等同于允许抓取所有路径。也可以直接省略 Disallow 这一行,效果相同。避坑提示:千万不要习惯性地写成 Disallow: /,那会直接阻断所有爬虫,导致站点在搜索结果中“消失”。
如果出于流量或安全考虑,不想让某个特定引擎抓取,可以单独为它设置规则,并不影响其他搜索引擎:
User-agent: Bingbot
Disallow: /
这样设置后,必应爬虫就无法访问站点,而谷歌等其它爬虫不受影响。需要注意的是,爬虫名称必须拼写准确,常见的包括 Googlebot、Bingbot、Baiduspider、YandexBot 等,建议以各搜索引擎官方文档为准。
企业站常见的做法是允许抓取所有前台页面,同时封锁后台管理入口、内部测试目录和临时文件:
User-agent: *
Disallow: /wp-admin/
Disallow: /backup/
Disallow: /temp/
如果某个子路径确实需要被索引,可以在该规则组下方追加对应的 Allow 语句。另外,后台登录页面通常还依赖密码保护,robots.txt 只能减少被发现概率,并非安全屏障。
配置 errors 往往发生在细节上。以下几条需要重点检查:
文件配置完成后,并非一劳永逸。通常通过以下步骤确认无误:
是的,影响很直接。例如误写为 Disallow: /,搜索引擎通常会在下一次抓取时停止收录新页面,已收录页面的排名也可能逐步下滑。不过发现后及时修正即可恢复,不会造成永久性惩罚。
两者用途不同。robots.txt 的 Disallow 是阻止爬虫抓取,但页面若被外部链接引用,仍可能出现在搜索结果中(只是没有摘要)。而 noindex 标签则明确指示搜索引擎不要索引页面,适合不想让页面进入搜索结果、但仍希望爬虫抓取以提取链接等情况。需要彻底禁止索引时,noindex 更可靠。
可以。文件里可以按顺序写多个规则组,分别对应不同爬虫。搜索引擎会按自身名称做最长匹配,找到对应规则组后遵循其内部指令。如果找不到匹配项,则默认遵循 User-agent: * 的规则。
设置 robots.txt 的要点可以概括为:明确目标、正确命名爬虫、避免写错 Disallow 的斜杠、及时验证效果。在实际操作中,建议先从“全站放行”开始,然后根据业务需要逐步增加屏蔽规则,每次修改后都通过后台工具检查抓取日志。一个干净、准确的 robots.txt 虽然不能提升排名,但能确保搜索引擎把精力花在你真正想让用户看到的内容上。