网站根目录下的 robots.txt 文件,是站长与搜索引擎蜘蛛之间约定抓取范围的规则文件,直接影响页面的收录效率与服务器负载。合理配置既能保护后台数据不被索引,又能引导蜘蛛聚焦核心内容,是每个网站上线前都该完成的功课。
蜘蛛访问站点时,会先请求根目录下的 robots.txt 文件。如果文件不存在或内容为空,蜘蛛默认有权抓取站点内所有公开可访问的 URL。这意味着,未主动声明限制的站点,任何未受密码保护的页面都可能进入搜索引擎索引库。
这是一套行业普遍遵守的君子协定,只对规范运营的搜索引擎蜘蛛有效。对恶意采集脚本或绕过规则的非法程序没有强制约束力,因此千万不能把它当作安全屏障,涉及敏感数据的目录仍需通过登录验证或服务器层面限制访问。
核心语法并不复杂,主要依靠两条基础指令:User-agent指定规则适用的蜘蛛名称,Disallow声明禁止抓取的路径。此外,Allow可以在被禁止的目录下单独放行指定子路径,Sitemap指令则能直接把站点地图地址提交给蜘蛛,加快新页面被发现的速度。
对内容全部公开、无需隐私保护的网站,这是最简明的声明方式:
User-agent: * Disallow:关键在第二行,Disallow 后留空才表示不拦截任何路径。若误写成 Disallow: /,等于封锁全部蜘蛛,全站将无法被收录,这种写法一般只用于站点临时维护或测试环境。
当发现某个蜘蛛频繁抓取消耗流量却并未带来有效收录时,可单独限制它。蜘蛛标识必须准确填写官方名称,例如谷歌蜘蛛常见为 Googlebot,百度蜘蛛为 Baiduspider:
User-agent: BadBot Disallow: /需要注意的是,规则只能按名称匹配,无法识别爬虫的 IP 地址,因此对恶意访问并无完全屏蔽作用。
若站点仅希望少数栏目被收录,可采取先全站禁用、再局部放行的策略:
User-agent: * Disallow: / Allow: /articles/ Allow: /about/ Allow: /sitemap.xml此方案中,Allow 的优先级高于 Disallow,且两者可以多次叠加使用。为兼容多数蜘蛛的解析习惯,建议把 Allow 统一写在 Disallow 之后,并保证路径以 / 开头、与站点实际目录完全一致。
一份看似正常的 robots.txt 也可能引发严重问题,以下错误在运维中最为频发,务必留意。
路径大小写不匹配:蜘蛛区分路径大小写,若实际目录是 /Public/,规则里却写成 /public/,Disallow 会失效,内容被意外抓取。写完后逐一核对目录大小写,最稳妥。
多个 User-agent 块互相覆盖:当同时存在多个 User-agent 分组,蜘蛛会优先匹配最具体的组名,其次才轮到通配符组。若不同组规则矛盾,可能导致特定蜘蛛执行了错误的策略,建议按蜘蛛类型分开写清。
过分依赖文件而忽视真安全:把后台地址写进 Disallow 只是隐藏而非保护,某些无良采集器不遵守协议依然抓取。真正需要保密的数据应配合服务器访问控制。
在文件末尾添加 Sitemap 指令,可将地图地址直接揭示给蜘蛛,省去搜索引擎站长平台提交的等待时间:
Sitemap: https://www.example.com/sitemap.xml但此指令仅对支持它的搜索引擎有效,且不影响抓取规则本身的判断。
撰写完毕后,务必进行完整校验:打开浏览器直接访问 域名/robots.txt 确认可正常打开,逐条检查路径拼写,甚至可以使用搜索引擎站长工具中的检测功能模拟蜘蛛抓取,验证规则是否如预期生效。
并无统一时间表。多数搜索引擎会在数小时到一周内重新抓取该文件,但已收录页面的清理或新页面的抓取仍需蜘蛛回访。若情况紧急,可通过站长平台的抓取诊断工具主动推送。
不能。该文件只约束遵守协议的常规搜索引擎蜘蛛。若外部站点直接链接了该页面,且用户凭 URL 访问,页面仍可能因其他因素被收录。若要绝对禁止索引,还应配合页面的 noindex 标签共同使用。
站点会回到无规则约束的默认状态,蜘蛛默认可抓取全部公开 URL。若先前有屏蔽目录的规则,这些目录会立即重新暴露给蜘蛛。删除前务必确认原有限制是否仍需保留。
Robots 协议虽只是几行简单文本,却要兼顾语义准确与细节校对。配置前先梳理出需保护的目录与期望收录的栏目,再针对蜘蛛类型分别书写规则;配置完成后,务必通过真实路径访问模拟蜘蛛行为逐项验证。牢记它是抓取引导工具而非安全手段,敏感数据仍需密码与服务器层面的防护,才能实现安全与收录效率的双重平衡。