Robots.txt是网站根目录下一个普通的文本文件,作用是与搜索引擎爬虫“对话”,告诉它们哪些页面可以抓取、哪些应当跳过。合理设置这个文件,既能保护后台等敏感内容不被收录,又能让爬虫把有限的抓取精力集中在重要页面上。下面从基础语法到常见误区逐一说明。
Robots.txt的功能由几条简单指令实现,掌握这几个关键词就能应对绝大多数场景。
书写时每条指令独占一行,冒号后通常保留一个空格。解析顺序自上而下,遇到多条匹配规则时,长度更长或更具体的路径优先生效,这与一般人的直觉可能不同,需特别留意。
不同网站对抓取权限的需求差异很大,以下三种场景覆盖了大多数站点的常见需求,可直接参照修改。
希望全站被搜索引擎收录时,采用最宽松的配置:
User-agent: * Disallow:这里Disallow后面必须留空,而不是填写none或noindex,留空才表示“没有限制”。
需要隐藏后台、用户中心或临时文件时,逐行列出即可:
User-agent: * Disallow: /admin/ Disallow: /user/ Disallow: /tmp/路径区分大小写,例如 /Admin/ 和 /admin/ 被视为两个不同目录,建议全局统一小写命名以防疏漏。
只想屏蔽某个特定爬虫,同时放行其他爬虫时,务必注意声明顺序:
User-agent: Baiduspider Disallow: /admin/ User-agent: * Disallow:先写针对单一爬虫的规则,再写通配规则。如果顺序颠倒,后面的特定规则可能被前面的通用规则覆盖而失效。
写错robots.txt的代价往往是首页或产品页从搜索结果中消失,以下错误在实践中出现频率最高。
写完文件并非万事大吉,上线前和运行中都需要持续检查,以下是推荐的检查步骤。
网站改版或目录结构调整时,务必同步更新该文件,删除已失效的路径并新增当前结构对应的规则。
不会。默认情况下,爬虫有权抓取网站所有公开页面。没有该文件时,搜索引擎会自行决定抓取范围和频次,对一般小站影响不大。只有当需要限制特定目录或管理抓取频率时,才有必要主动配置。
取决于目标。Disallow: /admin 会同时匹配 /admin.html、/admin/index.php 等同类路径;而Disallow: /admin/ 只匹配admin目录下的内容。若只想屏蔽整个文件夹,建议带尾斜杠;若想屏蔽一类特定命名,可不带。
文件本身是公开的,任何人访问域名加/robots.txt都能看到全部规则。这相当于向所有人明示了后台路径,反而可能为攻击者提供线索。切勿在该文件中放置任何形式的密码、内网IP或真实服务器路径,只做抓取层面的“软性”限制。
编写robots.txt的核心是“明确需求、规则简洁、持续验证”。先明确哪些区域必须开放给搜索引擎,哪些区域无论如何都要封锁,再动手书写;完成后一定通过站长平台的工具实际测试,并定期复查索引报告。建议每季度检查一次文件内容,确保与网站当前结构保持一致,这样既能保护隐私又能让优质页面获得充分的收录机会。