robots.txt 是一个存放在网站根目录下的纯文本文件,通过几条简单的指令告知搜索引擎爬虫哪些内容可以抓取、哪些应当略过。合理的配置既能保护私密目录,也能减少无效抓取、节省服务器资源。本文将从核心语法入手,逐步讲解从零编写到灵活部署的完整流程。
robots.txt 的语法并不复杂,记住下面三个关键词,就掌握了配置逻辑的主体。
关键注意点:每个 User-agent 块之后至少要跟上一条 Disallow 或 Allow 指令,否则该块无效。需要特别留意的是,robots.txt 仅约束搜索引擎爬虫,对普通用户访问没有任何拦截作用,敏感数据必须依靠登录验证或服务器权限来保护。
对于多数中小型网站,建议从简洁可靠的模板起步,之后再逐步细化。部署步骤如下:
User-agent: *
Disallow: /wp-admin/
Disallow: /private/
Sitemap: https://www.yourdomain.com/sitemap.xml
验证与避坑:部署后直接在浏览器输入 yourdomain.com/robots.txt,能看到内容即表示生效。新手最常犯的错误是误写 Disallow: / 试图屏蔽某个目录,实际上这行代码会阻止所有爬虫抓取全站页面,极易导致整站从搜索结果中被移除。若只想屏蔽局部,务必写明精确的目录路径,且目录结尾的斜杠不能省略。
当站点目录层级复杂时,单纯靠 Disallow 容易误伤。Allow 指令适合在封锁范围内打开一个口子。典型应用场景如下:假设你屏蔽了 /assets/img/ 整个素材目录,但希望爬虫能够抓取其中一张用于外部引用的品牌封面图。
User-agent: *
Disallow: /assets/img/
Allow: /assets/img/brand-cover.jpg
这段配置会让爬虫跳过整个图片目录,同时单独放行那张封面。需要注意,Allow 规则只在匹配到对应的 Disallow 时才有意义,单独使用不会产生额外效果。此外,多数搜索引擎在一条规则冲突时以更精确的路径长度为准,因此建议将例外路径写得越具体越稳妥。
不同搜索引擎的爬虫对语法的支持程度存在差异。Google 支持使用 * 通配符和 $ 表示路径结尾,而百度等部分爬虫对这些符号的解析能力有限。以下是一个多爬虫配置示例:
User-agent: Googlebot
Disallow: /old/
User-agent: Baiduspider
Disallow: /old/
User-agent: *
Disallow: /tmp/
对于普通站点,建议以 User-agent: * 设置默认规则,再为特定爬虫单独追加精确限制。务必避免为同一个爬虫编写多段互相矛盾的规则块,以免造成抓取行为难以预期。定期检查搜索引擎站长平台中的抓取报告,若发现重要页面长时间未被收录,可以优先排查 robots.txt 是否配错。
网站改版或目录调整后,robots.txt 也需要同步更新。修改后同样通过浏览器访问文件确认语法无误,并留意以下高发问题:
如果发现某类重要内容本应被收录却毫无流量,可以先用在线 robots 检测工具模拟爬虫抓取路径,快速定位是哪一条规则拦截了目标页面。
不能。它只是向遵守协议的爬虫发出请求,对普通访客的浏览器毫无约束力。任何机密内容都要通过服务端权限验证来保护,robots.txt 不等于安全屏障。
搜索引擎爬虫抓取文件存在周期,短则几小时,长则数周。通常可通过各平台站长工具中的 Robots 抓取工具提交更新请求,以缩短等待时间,但无法保证瞬间生效。
写入 Disallow: / 可阻止所有爬虫抓取全站,这通常用于开发中的站点。对正式运营的网站来说,此操作风险极高,建议改用 404 状态或 meta noindex 标签,以免误伤后难以恢复。
配置 robots.txt 时应优先采用最简单的规则组合,明确区分需要屏蔽的目录与需要放行的例外,并针对不同爬虫按需设定独立规则。每完成一次修改,务必访问根目录文件核验语法和路径。保持规则精简、与站点结构同步更新,就能在保护资源的同时让搜索引擎更高效地索引你的核心内容。