搜索引擎蜘蛛来到你的网站,最先访问的不是首页,而是根目录下那个不起眼的robots.txt文件。这份文件相当于给蜘蛛的"通行说明书",写清楚了哪些页面可以进、哪些页面要绕开。配置得当,重要内容能更快被收录,后台或临时目录也能得到保护;配置失误,则可能导致整站收录出问题,甚至彻底从搜索结果中消失。
Robots协议是一种基于服务器根目录的公开约定。蜘蛛每次发起抓取前,都会先请求并解析这个文件。如果文件不存在或里面没有任何内容,蜘蛛会默认所有未被密码保护的链接都能访问并进入索引。想限制某个区域,就一定要主动把规则写出来。
这种协议的本质是"君子协定",对遵守规范的主流搜索引擎有效,却无法拦截恶意采集的脚本或蓄意绕过的爬虫。涉及登录后台、用户隐私数据这类敏感目录,还必须配合登录验证、IP白名单等手段进行硬性拦截,不能只依赖robots.txt。
规则语法由两条基础指令构成:User-agent用来指定规则适用的蜘蛛名称,Disallow用来指定禁止访问的路径。此外,Allow能在被整体禁止的目录中单独放行某个子路径,Sitemap则可以直接把站点地图地址提交给蜘蛛,加速新链接的发现。
内容全部公开的博客或展示网站,使用最简单直接的写法即可:
User-agent: * Disallow:这里需要特别注意,Disallow后面留空才表示不限制任何路径。如果误写成了"Disallow: /",含义就变成封禁全站,所有蜘蛛都无法收录任何页面。这种写法只适合维护中或测试环境的临时使用。
当某个来历不明的蜘蛛消耗大量服务器资源,却没有带来实际流量时,可以只对它做限制,不影响其他搜索引擎的正常抓取。蜘蛛名称必须准确无误,例如谷歌对应Googlebot,百度对应Baiduspider:
User-agent: BadBot Disallow: /这样配置后,尽管BadBot被完全挡在站外,其余蜘蛛依然正常访问。不过需要明白,规则只能匹配蜘蛛声明的名称,无法依据IP地址识别,换了标识的恶意爬虫依然无法拦截。
如果只想让蜘蛛收录部分频道,而把其余内容全部隐藏,应采取"全局禁止、局部放行"的组合策略:
User-agent: * Disallow: / Allow: /articles/ Allow: /about/ Allow: /sitemap.xml在这种结构中,Allow指令的优先级高于Disallow,且规则可以多次叠加使用。为保证兼容性,建议把所有Allow写在Disallow之后,路径以正斜杠开头,确保和服务器真实目录保持一致。
有些robots.txt表面上没有语法错误,却会引发反复出现的收录异常。以下几类问题在实际运维中最常见,需要重点规避。
路径大小写与目录不一致:蜘蛛对路径解析是大小写敏感的。如果站点真实目录是/Public/,规则却写成/public/,Disallow就完全失效,想屏蔽的内容照样进索引。配置前务必先用浏览器或FTP逐一核实路径的真实写法。
多个User-agent规则相互覆盖:同一条规则如果写了两次User-agent,后写的会覆盖前面的定义,容易造成规则混乱。建议一个蜘蛛单独占一段,不同蜘蛛之间用空行分隔,保证逻辑清晰。
忘记预留Allow的白名单入口:执行全站封禁后,若连CSS、JS文件也一并封锁,会导致蜘蛛抓取页面时缺少样式和脚本解析,页面权重判断和渲染质量都可能受到负面影响。即便要隐藏内容,也要给静态资源留出放行通道。
使用通配符不当:部分蜘蛛对*号支持并不完善,应尽量使用具体的目录路径来替代通配符匹配,以提高规则的兼容性和可读性。
修改robots.txt后,不能直接放在那里不管,必须经过完整验证才能上线,否则一个细微的错误可能会带来大范围收录事故。
测试工具能帮你直观看到每条规则的实际匹配效果,避免凭感觉做判断。正式环境建议先在测试站跑一遍规则,确认无异常后再应用到主站。
除了在robots.txt中声明Sitemap地址外,还应主动把站点地图提交到各搜索引擎的站长平台。同时在站内做好内链建设,让蜘蛛通过已有页面的链接更快发现新页面,这比单纯等待蜘蛛重新抓取根目录更高效。
不会立即消失。蜘蛛需要一段时间重新抓取站点并识别新规则,通常需要数天到数周不等。如果急需移除某个页面,建议配合使用noindex标签或直接在站长后台提交删除申请,效果会比单一依赖robots.txt更快。
在主流搜索引擎的规则解析中,Allow的优先级高于Disallow,且以最长匹配路径为准。因此"先禁止整个目录,再单独放行其中一个子路径"是有效的写法。但不同搜索引擎的处理细节略有差异,重要页面建议用工具逐一验证匹配结果。
Robots.txt是搜索引擎抓取的第一道关卡,配置前先理清网站的收录目标,配置时注意路径大小写和指令优先级,配置后及时用站长工具验证效果。日常维护中,建议每隔一段时间复查一次这份文件,防止规则与站点实际结构脱节。如果你的网站存在大量不需要公开的内部页面,现在就可以检查当前配置,看是否还有遗漏的目录需要保护。