robots.txt是放在网站根目录下的一个纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些应当避开。它好比是网站给蜘蛛划定的一块活动范围,既能让蜘蛛把精力集中在有价值的内容上,也能保护后台和隐私目录不被收录。写得好,收录稳步增长;写错了,可能整站都不进索引。下面梳理一下语法规则、实用写法和常见问题。
文件内容由若干行指令构成,每条指令后有具体的值。真正常用的字段只有四个,掌握了它们就基本够用:
一个完整的例子如下:
User-agent: *
Disallow: /temp/
Allow: /temp/public/
Sitemap: https://www.yourdomain.com/sitemap.xml
书写时有两点必须注意:路径区分大小写,/User/和/user/属于两个不同的目录;请使用半角的英文冒号和斜杠,一旦误打成全角符号,整行规则可能直接失效。
网站所处阶段不同,robots.txt写法的侧重点也各不相同。以下列举三种最常见的配置情形。
改版调试、暂时下线或迁移期间,需要暂时拒绝所有蜘蛛访问。用一条全局规则即可达到目的。但要清楚,这只阻止之后的抓取,搜索引擎里已有的旧快照不会自动消失,清除历史索引还得另外到百度搜索资源平台或Google Search Console提交申请。
User-agent: *
Disallow: /
对内容展示型网站或博客,若没有必须隐藏的文件,其实不用写任何Disallow,只声明Sitemap就足够。这种极简写法对蜘蛛最为友好,有助于整站内容被充分遍历和收录。
User-agent: *
Sitemap: https://www.yourdomain.com/sitemap.xml
企业站和内容平台通常要隐藏后台入口、会员中心及临时上传目录,避免关键数据被搜索引擎收录,同时降低根据搜索结果找到后台入口的风险。
User-agent: *
Disallow: /admin/
Disallow: /member/
Disallow: /uploads/tmp/
配置完成后,建议在浏览器地址栏输入“域名/robots.txt”验证文件已经生效,确认返回内容与预期完全一致。
学会基础语法只是第一步,真正拉开差距的是对各种细节坑点的把握。下面几个方面容易出错,值得特别留意。
默认情况下,越长的匹配路径优先度越高。若要放行某个子目录,又不想开放整个父级目录,可以这样写:Disallow: /upload/ 配合 Allow: /upload/public/。这样蜘蛛对upload整体绕行,但public子目录仍可正常抓取。
Disallow后面不跟任何内容,代表完全允许抓取。很多新手误以为写Disallow: 就能禁抓全部,实际效果恰恰相反。在修改或排查时,一定要确认冒号后是否为需要禁用的路径,避免留下开放风险。
部分蜘蛛支持正则在路径中匹配任意字符,但各引擎兼容程度不一致。例如 Disallow: /*.jpg$ 这类写法在个别蜘蛛上并不被识别,反而可能导致某些图片被错误拦截或误放。常规网站用简单的目录层级就足够了,无需引入复杂的通配规则。
文件写好并上传后,主动检查能及时发现问题,避免等待蜘蛛偶然访问发现异常。
不会立刻生效。蜘蛛按自身抓取周期访问文件,改完以后的规则通常需要等待下一次抓取才会真正被采用,部分情况下可能耗时数天。若希望加急处理,可在搜索引擎站长平台内手动提交抓取请求。
能降低被搜索引擎收录的概率,但无法防止直接访问。任何人都可以通过浏览器输入后台域名地址来访问,robots.txt只是对善意遵守规则的爬虫生效。真正的后台安全还必须依靠权限验证、口令保护和IP白名单等手段。
对于遵守规则的搜索引擎蜘蛛,Disallow一般会有效阻止新页面的抓取。但个别情况下,外部链接带来的权重可能让蜘蛛尝试去访问这类路径,因此仍要做好敏感信息的隔离,不要把robots.txt当作唯一防线。
robots.txt虽然是一个很小的文件,却对网站收录和内容安全起着实际作用。配置时重点关注四件事:写准语法、注意大小写与半角符号、按网站阶段选择开放或屏蔽策略、上传后用浏览器主动验证。遇到收录异常时,优先检查该文件是否误拦截了正常页面,而不是反复改动抓取设置。把基础做扎实,蜘蛛自然会走得更顺畅。