当搜索引擎的抓取机器人访问一个网站时,它通常会在根目录寻找一份名为 robots.txt 的文本文件。这份文件相当于网站对爬虫的"访问须知",向其说明哪些页面允许被索引、哪些区域需要避让。合理的 robots 配置不仅能避免后台敏感数据被搜索引擎收录,还能减少无意义的爬取请求,让网站的抓取配额用在关键页面上。
robots.txt 文件必须存放于网站的根目录,且文件名和路径区分大小写,例如 https://yourdomain.com/robots.txt。文件采用纯文本格式,每一条指令单独占据一行,注释以井号开头。
一个标准的 robots 文件主要由四条指令构成,它们各自承担不同的职责:
下面是一份常见的配置示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
以上规则表示除 /admin/ 目录之外全站允许抓取,同时 /admin/public/ 这个子目录又被单独放行。这里需要特别提醒,如果你的网站仅利用 Allow 指令来开放这个子目录,而某个搜索引擎不支持 Allow,那么 Disallow 的限制仍然生效,该子目录依旧无法被抓取。
不同业务类型的网站,对搜索引擎抓取的需求也不尽相同。以下是三套适用于常见场景的配置方案,可根据自身情况直接套用。
对于以内容为主的博客或新上线的站点,最理想的状态是让蜘蛛尽可能全面地索引页面。这时的配置只需要一行:
User-agent: *
Disallow:
也可以直接省略 Disallow 行,因为默认情况下爬虫就拥有访问所有内容的权限。很多新手会误写为 Disallow: /,这一行会导致蜘蛛完全放弃对全站的抓取,网站收录数据将长时间停留在零。
如果你不希望某一家搜索引擎收录内容,可以只为它单独编写一个规则段落:
User-agent: Baiduspider
Disallow: /
这样的写法可以确保其他搜索引擎的抓取行为不受任何影响。在填写爬虫名称之前,建议先去对方官方文档核实准确的拼写,像 Googlebot、Bingbot、Baiduspider 这些名称一旦拼写有误,规则就会自动失效。
企业网站的常规做法是把管理后台、临时目录和内部脚本路径全部拦截,同时保证前台页面能够顺利收录:
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Disallow: /includes/
Allow: /
需要注意的是,一旦有了 Disallow 指令后,Allow: / 的存在就显得很关键,它代表除了被明确拒绝的路径外,其余内容蜘蛛均可抓取。
robots.txt 语法不复杂,但一个小小的笔误就可能引发严重的抓取问题,以下是几个高频出现的坑:
建议在更新 robots 文件后,使用谷歌搜索控制台或必应站长工具提供的 robots 测试功能进行验证。这样可以直观看到某条具体链接会被允许还是拒绝,同时也能及时发现语法层面的报错。
robots.txt 只负责引导爬虫的访问路径,并不保证绝对安全。对于真正需要保密的后台页面,应该配合登录身份验证加以保护,因为不同搜索引擎对 robots 的遵守程度存在差异。
此外,可以在 robots 文件中添加指向站点地图的 Sitemap 行。这条指令有利于加快新页面的发现速度,尤其适合新闻资讯站或产品更新频繁的电商网站。但不要同时放置多个失效的旧版站点地图链接,这会干扰爬虫对有效内容的判断。
当发现某个目录已从网站彻底下线后,记得及时同步更新 robots.txt,移除对应的 Disallow 和 Allow 规则,保持文件内容的整洁与准确。
不能完全阻止。robots 只是向爬虫声明规则,其他外部站点如果直接链接了该页面的 URL,搜索引擎仍然可能不通过爬取而将其收录。如果希望彻底阻断索引,更稳妥的方式是配合使用 noindex 元标记或登录认证。
如果文件存在但没有任何规则,或文件内仅包含注释,爬虫会把它当作一项空配置处理,默认可以访问全站。这并不会造成拦截,但网站会失去对无效目录的精细管理能力。
robots.txt 不支持区分设备类型。它只面向不同的蜘蛛,例如 Googlebot Desktop 与 Googlebot Smartphone 被视作不同的用户代理,你可以分别为它们书写规则,但这是基于爬虫名称,而不是针对页面中的响应式判断。
一套严谨的 robots.txt 配置是网站 SEO 工作的基本功。建议你先梳理当前站点哪些路径必须屏蔽,哪些内容需要重点让蜘蛛抓取,再动笔编写规则。配置完成后,务必通过站长工具做一次全路径验证,同时定期复查文件,确保没有残留的无效项,这样既不浪费抓取配额,也能为搜索引擎提供一个清晰的访问地图。