robots协议全称是机器人排除标准,它是网站与爬虫之间的一种约定文件。当搜索引擎或者各类自动化程序准备访问站点内容时,通常会先请求根目录下的robots.txt文件,读取其中的指令来决定后续抓取范围。这种机制并不具备技术强制力,但主流合规爬虫都会遵守,因此成为站点梳理抓取优先级的第一道软性门槛。

robots协议的基础语法与文件写法
一个标准的robots.txt文件由若干组记录块构成,每一组以User-agent开头,用于指定生效的爬虫名称,例如Googlebot或通配符*。紧随其后的Disallow声明禁止抓取的路径,Allow则可放行被父级目录禁止中的子路径。文件必须采用纯文本UTF-8编码,放置在域名根目录,且文件名全小写。
下面是一段最基础的写法示例,禁止所有爬虫访问后台与临时目录,但允许抓取后台下的登录页公开图标。注意路径区分大小写,结尾斜杠代表目录,否则代表前缀匹配。
User-agent: * Disallow: /admin/ Disallow: /tmp/ Allow: /admin/login-icon.png Sitemap: https://ipipp.com/sitemap.xml
除了上述字段,还可以使用Crawl-delay减缓爬虫请求频率,不过并非所有引擎都支持。编写时应避免在同一组里出现矛盾指令,比如先Disallow: /又Allow: /会导致不可预期结果。建议每组规则独立成块,方便后续维护与排查。
robots协议在站点管理中的实际作用
很多站长误以为robots协议只是防采集工具,其实它的核心作用是引导抓取预算。大中型站点收录量受限于爬虫每日分配的时间,若低价值页面如筛选页、测试页被频繁抓取,真正重要的商品详情反而迟迟不入库。通过精准Disallow,能把有限预算留给核心内容,间接提升SEO表现。
另一个常见场景是屏蔽内部系统。例如运营后台、接口调试页一旦被搜入索引,既泄露路径又可能引来恶意探测。将这些目录写入robots后,合规爬虫不再收录,普通用户也不会从搜索结果撞见。但必须强调,这仅是“告知”而非“鉴权”,敏感系统仍需账号与防火墙保护。
从架构视角看,robots协议降低了无效流量。某资讯站未做约束时,爬虫重复抓取千人千面推荐接口,带宽峰值翻倍;添加Disallow: /recommend/后,无效请求下降七成。可见它在成本与效率上的价值,远不止“不让人看”这么简单。
编写robots协议时的典型误区与正确思路
第一个误区是把robots当安全屏障。由于文件本身可被任何人直接访问,恶意程序完全可以无视规则肆意扫描。曾有人把备份压缩包放在/backup/并仅在robots中禁止,结果被批量下载。正确思路是配合服务器权限、 robots元标签与鉴权,多层防护才是稳妥做法。
第二个误区是通配符滥用。部分人写Disallow: /*.php$想禁脚本,却因引擎对美元符号支持不一而失效。更稳妥的是明确列出目录,或改用Disallow: /cgi-bin/这类确定路径。如下代码展示如何用规则屏蔽带参数的追踪链接,避免重复页泛滥。
User-agent: Bingbot Disallow: /*?*utm_source= Disallow: /search Allow: /search/public User-agent: * Disallow: /private-api/
最后要注意,修改robots后搜索引擎未必立刻重抓,可用站长平台手动提交更新。同时保留Sitemap指向,让合规爬虫快速发现新页面。把robots视为动态运营文档,随业务迭代调整,才能持续发挥它在爬虫控制与SEO优化中的真正作用。