robots.txt 文件是网站与搜索引擎爬虫之间的沟通协议,它决定了哪些页面能被收录、哪些需要屏蔽。正确配置它,既能保护后台、测试页等敏感区域,也能让爬虫集中资源抓取核心内容;而配置稍有疏漏,就可能造成整站收录异常或重要页面被误屏蔽。下面这份指南,从文件基础到常见误区,帮你理清完整写法。
robots.txt 文件必须命名为全小写的 robots.txt,且只能放在网站的根目录下,也就是域名解析后的首页所在目录。整个文件由一条或多条规则组成,规则与规则之间需要用空行隔开。每条规则内部包含若干指令行,每行格式固定为“字段: 值”,比如 Disallow: /private/。字段名不区分大小写,但路径值通常区分大小写,注释则用 # 符号标记,既可以独占一行,也可以写在指令后面。
从逻辑上看,每条规则先声明 User-agent(也就是针对哪个爬虫),然后列出对应的 Disallow(禁止)或 Allow(允许)指令。一个 User-agent 声明后面可以跟随多条指令,但一组规则只能对应一个 User-agent。绝大多数搜索引擎都支持用 Allow 去覆盖更具体的 Disallow,不过不同爬虫对优先级的具体解释有微妙差别,跨搜索引擎配置时需要注意兼容性。
最常见的需求是屏蔽所有爬虫,禁止其抓取整站内容,写法非常简单:
User-agent: *
Disallow: /
如果只想屏蔽某个目录,比如后台管理或临时文件夹,可以按下面这样配置:
User-agent: *
Disallow: /admin/
Disallow: /tmp/
这里一个高频易错点是目录末尾的斜杠。写成 /admin/ 只匹配 admin 目录本身及其下级页面;如果省略斜杠写成 /admin,则会匹配所有以 admin 开头的路径,比如 /administrator、/admin-panel,很容易误伤正常内容。
当你想要屏蔽整个目录,却单独放行其中的某个子路径时,Allow 指令就派上用场了。例如,只让爬虫抓取博客中的专题栏目,其余博客页面全部屏蔽:
User-agent: *
Disallow: /blog/
Allow: /blog/special/
这种场景下,匹配优先级遵循一条核心原则:如果两条规则匹配的路径长度一致,Allow 优先于 Disallow;如果路径长度不同,则以路径更长的那条规则为准。所以上述写法能确保 /blog/special/ 正常被抓取,不会因为上层的 Disallow 而被遗漏。
不同搜索引擎的爬虫可以分别设置抓取策略。比如你对 Google 完全开放,但对百度暂时关闭抓取,写法如下:
User-agent: Baiduspider
Disallow: /
User-agent: Googlebot
Disallow:
这里的 Disallow: 留空,表示允许该爬虫抓取全部内容,注意冒号后不要有空格。另外,Sitemap 指令不属于任何 User-agent 规则,应单独放在文件末尾,用于告知爬虫站点地图的位置,例如:
Sitemap: https://www.example.com/sitemap.xml
前面提到的斜杠问题是最典型的误区。除此以外,通配符的使用也需要谨慎。部分搜索引擎支持 $ 符号表示路径结尾,比如 Disallow: /print$ 只匹配以 print 结尾的 URL,但并非所有爬虫都支持这一语法。在不确定的情况下,尽量用完整的目录路径来匹配,避免使用通配符,减少兼容性风险。
修改 robots.txt 后,搜索引擎爬虫通常不会立即响应,抓取策略的更新可能需要几天时间。因此,调整文件后要有耐心,不要频繁改动。另外,建议定期通过搜索引擎的站点管理工具检查抓取报告,确认屏蔽规则是否按预期生效。
CSS、JavaScript 文件如果被 Disallow 屏蔽,可能导致搜索引擎无法完整渲染页面,从而影响页面质量评估。在设置屏蔽规则时,要逐一确认这些资源文件是否在允许抓取的范围内。
写完 robots.txt 后,最直接的验证方式是直接在浏览器地址栏输入 https://你的域名/robots.txt,检查文件是否可正常访问且内容正确。多数搜索引擎的站长工具也提供了 robots.txt 测试功能,能模拟爬虫抓取并显示匹配结果。进行验证时,至少应检查三个要点:文件是否能被公开访问、规则语法是否正确、目标路径是否被正确匹配或排除。
不能。robots.txt 只是声明禁止抓取,但如果其他网站链接了该页面,搜索引擎仍可能通过外部链接发现它。若想彻底阻止收录,应配合使用 noindex 标签或密码保护。
可以。每个 User-agent 声明对应一组独立的规则,你可以按需为不同爬虫分别配置。但要注意,不同爬虫间不要混用指令,否则可能出现规则冲突或无法识别的情况。
有。文件内容应尽量精简,一般建议控制在 500 KiB 以内,否则部分搜索引擎可能无法完整读取。如果规则过于庞大,应反思是否有必要简化屏蔽策略。
写好 robots.txt 的核心在于明确目标、使用精确路径、并在修改后及时验证。动手前,建议先梳理出需要屏蔽的目录清单,确认每个路径末尾的斜杠书写无误;配置完成后,通过浏览器访问和站长工具双重验证。定期复查文件,确保它始终符合网站的当前结构,才能真正发挥它的作用。