搜索引擎的爬虫在抓取一个新网站时,第一件事往往就是查看根目录下的 robots.txt 文件。这个看似简单的文本文件,扮演着网站与搜索引擎之间"交通规则"的角色,决定了哪些页面可以进入搜索结果,哪些内容需要屏蔽。掌握它的配置逻辑,既能保护后台数据不外泄,也能让爬虫的抓取精力集中在真正重要的页面上,对网站的搜索表现有着直接影响。
robots.txt 文件必须放在网站的根目录下,并且命名为小写的 robots.txt,例如 https://example.com/robots.txt。文件采用纯文本格式,每一行即一条指令。需要特别留意的是,路径是区分大小写的,比如 /Admin 和 /admin 会被视为两个完全不同的路径,写错一个字母就可能导致规则失效,让原本想屏蔽的目录被意外抓取。
一个标准配置主要由以下几个部分组成:
下面是一个常见的组合配置示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
这段配置的意思是:整站允许被爬取,但 /admin/ 目录下的资源需要屏蔽,不过该目录下的 /admin/public/ 子目录则被单独放行。这里有一个重要的提醒:Allow 指令并非被所有搜索引擎支持,部分爬虫只识别 Disallow 指令。因此,如果某些功能页面必须保证被收录,不要过多依赖 Allow 来放行,最好确保其路径本身就不在 Disallow 的规则范围内。
不同类型的网站,对爬虫的开放程度有着不同需求。以下提供三套高频使用的配置思路,可以直接参考调整。
对于刚上线的内容站点,站长通常希望所有文章尽快被搜索引擎抓取和收录。此时最简洁的配置是:
User-agent: *
Disallow:
Disallow 后面保持空白,即表示对所有路径都不禁止访问。其实,省略这行指令也完全可以,因为爬虫的默认行为就是抓取整站。比较常见的配置失误是把这里误写成 Disallow: /,这会直接导致爬虫无法抓取任何页面,新站上线后迟迟不见收录,往往就是从这里埋下的隐患。
如果不希望某一款搜索引擎收录网站内容,或者想屏蔽某些消耗资源的爬虫,可以为它们单独配置规则段落:
User-agent: Bingbot
Disallow: /
经过这样设置,除了 Bingbot 之外,其他爬虫(例如 Googlebot)依然可以正常访问网站。需要注意的是,不同爬虫的名称必须写准确,比如字节跳动的爬虫叫 Bytespider,如果名称拼写错误,该规则段落会被爬虫直接忽略,无法起到预期的拦截作用。
当一个网站存在大量重复页面或对搜索无价值的资源目录时,建议在配置中主动进行屏蔽,同时附上站点地图信息:
User-agent: *
Disallow: /search?
Disallow: /tag/
Disallow: /wp-admin/
Sitemap: https://example.com/sitemap.xml
这样处理的好处是,能够引导爬虫把有限的抓取配额用在核心产品页或文章详情页上,避免被抓取动态的搜索结果页或低质标签页消耗掉资源。同时,站点地图的提交能让爬虫更快发现新发布的内容,提升抓取效率。
在实际操作中,即便理解了语法,还是会遇到一些隐蔽的坑,需要多加留意。
robots.txt 必须放在域名根目录下,而不是放在子目录里。将文件上传到 /public 或 /static 这类子目录中,爬虫不会去读取,所有规则都不会生效。判断文件是否配置正确的办法很简单:直接通过浏览器访问 域名/robots.txt,能够看到文件内容即为正确放置。
虽然部分搜索引擎支持在 Disallow 中使用 * 号来表示任意字符序列,但这并不是所有爬虫的通用标准。如果网站面向的是多个搜索引擎,过于依赖通配符可能会导致部分爬虫无法正确解析规则。建议在配置时尽量使用明确的目录路径,而不是含通配符的模糊匹配,以保证兼容性。
robots.txt 文件应保存为 UTF-8 编码格式的纯文本文件。如果使用系统自带的记事本保存并带有 BOM 头,可能导致第一行指令(通常是 User-agent)解析失败。建议使用专业的代码编辑器来创建和编辑文件,确保编码格式正确。
配置完成后,仅仅靠肉眼检查是不够的。目前主流的搜索引擎都提供了官方的验证工具,例如谷歌的 Search Console 中的 robots.txt 测试工具,以及必应的站长工具。这些工具可以模拟爬虫的抓取行为,直观地展示哪些 URL 被允许访问、哪些被禁止访问。对于手动修改后的文件,还可以通过工具检测语法错误,并及时进行调整。
不会立即生效。该文件只是告知爬虫不要抓取新页面,但搜索引擎可能已经在之前抓取并收录了部分内容。如果希望已收录的页面尽快从搜索结果中移除,除了修改 robots 文件外,还需要通过搜索引擎的站长后台提交 URL 移除请求。
不能。robots.txt 只是一个君子协定,它依靠爬虫自觉遵守。恶意爬虫或第三方工具并不会读取这个文件。如果涉及敏感数据或版权保护的内容,应当依靠密码保护或服务器访问权限来阻止访问,而不是依赖 robots 文件。
严格来说,Disallow 后面填写的是路径而不是完整的 URL。填写完整的 URL 虽然也能被解析,但不够规范,并且当站点从 http 切换到 https 或更换域名后,原有的完整 URL 规则可能失效。建议填写相对的路径,例如 /images/,描述会更为灵活和准确。
robots.txt 文件是网站与搜索引擎沟通的桥梁,虽然配置门槛不高,但细节却关系重大。建议在修改文件之前先备份原有内容,修改后利用官方工具进行验证,并持续观察网站索引量的变化。如果发现核心页面的收录量异常下滑,可以第一时间检查该文件是否被误改。养成定期审查配置的习惯,能让你的网站在搜索引擎面前保持友好且有序的姿态。