搭建网站时,robots.txt 常常是被忽略却又至关重要的一环。这份放在根目录的纯文本文件,直接决定了搜索引擎爬虫如何访问你的站点。配置得当,能有效节省服务器资源,引导爬虫优先抓取重要内容;配置失误,轻则收录不全,重则可能让整站从搜索结果中消失。下面这份指南会从基础语法讲到进阶技巧,帮助你避开那些容易踩中的雷区。
简单来说,robots.txt 就是网站和搜索引擎爬虫之间的一份公开协议。它告诉 Googlebot、Bingbot 或百度蜘蛛:哪些区域你可以进,哪些地方请止步。它更像是一份君子协定,而非强制的安全锁。
在实际运营中,它最常见的用途包括:
要特别留意的是,这份文件对所有人都是公开的。任何访客都能在浏览器地址栏输入你的域名加上 /robots.txt 查看全部内容。因此,那些包含用户数据、订单信息或会员专属资源的路径,绝不能只靠 robots.txt 做防护,必须借助服务器端的权限验证或登录机制来兜底。
这套语法非常简洁,每一行由“字段名: 值”构成,一行只表达一条规则。字段名不区分大小写,但冒号后面的路径是严格区分大小写的。
我们来看一组常见配置:
User-agent: *
Disallow: /admin/
Allow: /admin/login.html
Sitemap: https://www.example.com/sitemap.xml
这段规则表达了:所有未特殊指定的爬虫都不得进入 admin 目录;但登录页面被特意放行,方便它正常返回状态码;同时,站点地图的地址被通告给了所有爬虫,引导其高效抓取。
写这个文件并不难,难的是清楚地知道你要屏蔽什么。建议动手之前,先花十分钟梳理清楚站点的目录结构。
有些人认为 robots.txt 能杜绝页面被收录,这是一个危险的想法。实际上,如果 A 页面在别的网站有外部链接,爬虫照样可能抓取它,只是不会建立索引,这在搜索结果里表现为“已抓取未收录”。如果某些内容确实不便公开,请务必加上 noindex 标签或登录验证,双管齐下才稳妥。
在处理动态参数时更是要有耐心。例如 URL 中带有 ?sort= 或 ?ref= 这类追踪参数,如果不加限制,爬虫可能会陷入抓取无底洞。常见做法是屏蔽包含特定参数的文件,例如 Disallow: /*?sort=,有效避免大量重复内容的抓取压力。
还有一点容易被忽略:修改 robots.txt 后,搜索引擎重新评估需要时间,通常是以周为单位。不要指望上午改完下午就能看到效果,可以借助站长工具里的“抓取测试”功能,主动提交新的规则文件等待反馈。
当页面已被搜索引擎收录,你才加上屏蔽规则,它并不会立刻消失。robots.txt 只管“不让新抓取”,并不负责“删除已收录内容”。正确的做法是先用站长工具提交删除请求,或者在该页面的 HTML 头部添加 noindex 标签,等待搜索引擎处理后再移除规则。
很多 CMS 默认生成的 robots.txt 是允许抓取全部内容的,所以完全可以直接用模板。但如果你装了很多插件,产生了大量后台临时文件或导出文件,建议额外屏蔽相关路径。修改时更推荐通过 SEO 插件来添加规则,避免直接修改服务器文件导致权限丢失。
后果没有想象中严重。即使文件不存在,爬虫依然会正常抓取你的网站,只是不再有任何访问路径的限制。这适用于想要让所有内容都被搜索到的场景。但要注意,如果之前靠它屏蔽了某些敏感目录,删除文件就等同于放弃保护,需要确保这些目录本身有访问权限控制。
配置 robots.txt 的核心思路,其实就是“克制”二字:明确哪些资源值得被搜索引擎消耗,哪些应当果断隔离。每次修改前,先在本地模拟一遍规则,确认路径没有误伤;保存后及时通过站长工具验证。把这份文件当作网站与爬虫沟通的桥梁,而非一道封锁墙,往往就能拿捏好收录与资源之间的平衡。