当站长想要控制搜索引擎爬虫的行为时,robots.txt 是首选工具。它决定了哪些页面允许被搜索引擎抓取和收录,哪些隐私目录应该被屏蔽。合理设置这份文件,既能让重要内容获得充分索引,也能防止敏感信息意外出现在搜索结果中。下面从语法细节到实战配置,系统说明 robots.txt 的完整用法。
robots.txt 文件必须存放于网站根目录,命名必须全部小写。文件本身以记录为单位,每条记录包含一个 User-agent 指令以及若干条 Allow 或 Disallow 指令,不同搜索引擎的规则之间用空行隔开。井号用于添加注释,可独立占一行。
基础的全局配置只需两行内容。第一行设置 User-agent: * 对所有主流搜索爬虫生效,第二行通过 Allow 或 Disallow 指定具体范围即可。建议在此之上为不同搜索引擎单独编写规则块,便于后续精细管理。
不同业务类型的网站在配置 robots.txt 时侧重点明显不同,以下针对几个典型场景给出设置思路。
如果同一网站中存在多个类别不同且规则互不干扰的爬虫,建议分别配置。例如允许 Googlebot 抓取图片资源,同时禁止其他对图片识别较弱的爬虫访问相同路径。此时注意每个爬虫需要单独书写 User-agent 块,不得合并写在同一行。
robots.txt 并非强制性的访问控制机制,它只属于君子协定。恶意的程序可以无视规则直接抓取,真正敏感的地址必须依靠服务器配置、登录鉴权或密码保护来确保安全。此外不同搜索引擎对 Allow 与 Disallow 的优先级处理存在差异,因此部署后应采用以下流程验证配置是否生效。
调试过程中最容易忽视的情况是端口与协议问题。如果网站本身采用 HTTPS 加密,务必通过 https 地址验证文件可以正常返回,否则部分爬虫可能因访问失败而忽略全部规则。
不要把 robots.txt 当作阻止重复内容收录的手段。处理大量重复页面应该依靠 canonical 标签或者参数处理工具,依赖 robots 规则反而容易失效。不要试图靠它彻底隐藏某个网页,因为规则可能被忽略或配置错误导致预期落空。
务必警惕以下常见错误:文件中多次出现 User-agent: * 的重复块,这会令后续规则覆盖前者,造成配置混乱;Disallow 与 Allow 规则顺序颠倒,可能令本应屏蔽的目录被误放行;忘记将 Sitemap 指令顶格写入独立行,导致爬虫无法识别站点地图位置。
避坑实例:某资讯站点曾误将首页路径写成 Disallow: /index.php,导致搜索入口消失;另一电商平台因为书写 Disallow: /*sort 误伤了所有排序商品页,大幅减少收录数量。调整规则之后,应当立刻执行二次验证并观察一段时间内的日志和索引变化。
不会直接导致惩罚,但会带来严重的意外后果。最常见的误操作是写成 Disallow: /,此时所有页面都会被阻止抓取,网站在搜索结果的展示量可能迅速归零。好在解除规则之后,重新提交 URL 给搜索引擎即可逐步恢复,无需过度担忧。
存在几种可能:先前已被收录的页面可能仍然存在于索引中,需要一段时间才会更新移除;其次某些搜索引擎对 Allow 与 Disallow 的优先级处理规则不同;此外部分爬虫对路径大小写敏感,规则匹配失败。
不能。该文件只是礼貌性建议,对遵守协议的搜索爬虫有效,但无法限制任何其他用途的下载工具或爬虫。如果需要保护文件内容本身,建议结合服务器防盗链设置或者加设访问权限。
robots.txt 的正确配置重在清晰与克制。初次设置时可以从全局放行入手,仅屏蔽后台目录、隐私接口,以及不需要被索引的搜索参数页;随后区分不同爬虫细化规则;每次修改后立即进行一次可用性验证。始终牢记:越是重要的内容越要保持开放,越是敏感的数据越要依赖服务器层面的认证措施。