在服务器根目录下,爬虫访问站点时通常会优先读取 robots.txt。这份纯文本文件负责告知搜索引擎,哪些页面值得抓取,哪些区域应当回避。配置得当,既能防止后台、测试目录等敏感信息进入索引,也能让有限的抓取配额发挥在核心内容上,提升站点整体的收录效率。
robots.txt 必须存放在站点根目录,并采用 UTF-8 编码。每行一条指令,文件中的路径严格区分大小写。理解以下四个核心字段,是写好这份文件的前提。
一个典型的配置写法如下:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
这段代码的意思是:全部爬虫均可访问站点,但 /private/ 整个目录被屏蔽,其中 /shared/ 子目录是例外,可以正常抓取。须注意,由于并非所有搜索引擎都识别 Allow 指令,遇到不支持的爬虫时,更严格的 Disallow 规则依然会生效。
不同站点的抓取策略差异很大。以下三种需求最为常见,对应的配置方案可以直接套用。
对新站或资讯站点而言,核心诉求是尽快被收录。此时只需让 Disallow 保持为空即可:
User-agent: *
Disallow:
省略 Disallow 这行也能达到相同效果。最常见的失误是把值误填为 /,一旦出现该行,所有爬虫将立刻停止访问,收录随即中断,恢复还需要时间,务必反复核对。
假如想禁止某个特定搜索引擎抓取,同时不影响其他引擎,可以单独为该爬虫设置规则:
User-agent: Baiduspider
Disallow: /
此处仅对百度爬虫产生约束,Google、Bing 等不受影响。动手之前,建议先查阅各搜索引擎的官方文档以确认爬虫的确切名称,例如 Googlebot、Bingbot 等,避免写错名称导致规则失效。
部分爬虫(如 Googlebot)支持 Crawl-delay 指令,用于调低抓取节奏,防止服务器压力过大。不过该字段并未被所有引擎认可,使用前先确认兼容性,否则可能被直接忽略。
配置完成后,最常见的坑往往藏在不显眼的地方。以下几点值得逐条检查。
写完文件后,不妨直接在浏览器中打开 robots.txt 的 URL,检查语法是否合规。这样做既能看到爬虫视角的原始文件,也能快速定位格式错误。
当站点结构日趋复杂,简单规则往往不足以应对。此时可以从两个方向优化配置:一是将不影响收录的静态资源(如图片、CSS)明确放行,避免爬虫反复探测无效请求;二是在多语言站点中,为不同语言版本的页面标注清晰的 Sitemap 入口,帮助爬虫更快锁定目标内容。
不过要留意,robots.txt 并非权限控制工具。它只告诉合规的爬虫“别来”,恶意爬虫或程序仍可能强行访问。真正需要保密的数据,应通过登录验证或服务器层的访问控制来保护,而非依赖这份文件。
能。robots.txt 是行业约定,不具强制力。搜索引擎会遵守,但恶意脚本未必理会,因此敏感数据绝不能靠它来封锁。
不同爬虫的解析规则略有差异。Google 等支持 Allow 的引擎会以路径匹配长度来决定,即更精准的规则优先;不认识的爬虫则将 Disallow 视为更严格的一方。为了稳妥,尽量让规则之间不要互相矛盾。
它可以作为额外通道,让爬虫在读取 robots 的同时发现站点地图,提升新链接的发现速度。但这属于锦上添花,即使不写,站点地图也能通过其他途径提交。
robots.txt 并不复杂,但每个字段都可能影响收录走向。建议先明确站点是全面开放、局部屏蔽还是定向控制,再动手写规则。配置完成后,用浏览器检查原始文件、拿搜索引擎的测试工具验证一遍,并确认敏感目录已用其他手段保护,这样既能提升抓取效率,也能规避不必要的收录风险。