当搜索引擎的爬虫造访你的网站时,它第一眼看到的往往不是首页内容,而是根目录下那个名为 robots.txt 的文本文件。这个文件如同网站门口的“访客须知”,专门用来告诉爬虫哪些页面可以逛、哪些房间不能进。设置得当的 robots.txt 不仅能让后台、测试页面等敏感信息远离搜索结果,还能帮搜索引擎把宝贵的抓取配额用在刀刃上,从而提升核心内容的收录效果。
robots.txt 文件必须放在网站根目录,比如 https://yourdomain.com/robots.txt,放在子目录里是无效的。文件保存时建议使用 UTF-8 编码,文件名全部用小写字母,而且路径是区分大小写的。
整个文件由若干规则组构成,每个规则组对应特定类型的爬虫。最核心的指令有三个:
常在文件最后加一行 Sitemap 声明,这样可以引导爬虫更快地发现并处理你的站点地图。下面是一个综合性的配置示例:
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/login/
Sitemap: https://yourdomain.com/sitemap.xml
这段配置的意思是:所有爬虫都被禁止访问 admin 和 tmp 这两个目录,但 admin/login 页面例外,依然可以抓取。务必留意,路径匹配是前缀匹配规则,Disallow: /admin/ 会把 /admin/ 下的所有子路径都屏蔽掉,除非有更具体的 Allow 指令来覆盖。
不同类型网站的 robots.txt 需求差别很大,以下提供三种最常见场景的模板,你可以直接参考修改。
对于博客、新闻站或产品展示页来说,目标是让尽量多的页面被索引。此时配置要精简,直接表示不限制任何路径:
User-agent: *
Disallow:
这里也可以直接省略 Disallow 那一行。一个常见且危险的误操作是写成 Disallow: /,这等于整站屏蔽,会导致网站所有页面逐渐从搜索结果中消失,而且恢复收录过程相当漫长,所以一定要仔细核对。
如果某个爬虫抓取频率过高拖慢了服务器,或者你单纯不想被它索引,可以单独为它写规则,完全不影响其他蜘蛛:
User-agent: Bytespider
Disallow: /
User-agent: Googlebot
Disallow:
上面的规则里,Bytespider 被完全屏蔽,而 Googlebot 则不受任何限制。想识别来抓取的爬虫身份,可以通过服务器访问日志查看 UA 信息,再决定是否针对性屏蔽。
电商网站页面数量庞大,其中购物车、排序参数、搜索结果页等价值很低,白白消耗抓取资源。合理的做法是屏蔽这些动态页面,同时放开商品详情和分类页:
User-agent: *
Disallow: /cart
Disallow: /search?
Disallow: /sort?
Allow: /product/
Allow: /category/
这样的配置能引导爬虫把精力集中在真正有转化价值的页面上。注意,屏蔽路径要写清楚,比如 /search? 可以拦截所有带 search 参数的网址,避免参数变体造成的大量重复抓取。
在实际操作中,不少站长在配置 robots.txt 时容易踩坑。下面列举几个高频问题及应对思路。
首先,大小写敏感问题。路径 /Admin/ 和 /admin/ 是两个不同的地址,写错就无法起到预期屏蔽作用。建议在配置后,通过浏览器直接访问测试路径,或使用搜索引擎提供的 robots 测试工具进行验证。
其次,注释的运用。robots.txt 支持以 # 开头的注释行,可以用来标记规则组的用途或备注修改日期。多写注释能方便团队协作,也方便后续自己回顾调整。
最后,不要依赖 robots.txt 来保护敏感数据。它只是君子协定,恶意爬虫根本不理会。对于后台、用户隐私文件等,务必通过密码认证或服务器权限来真正隔绝访问,而不是仅仅在 robots.txt 里写一条禁止规则。
写好 robots.txt 并不算完事,提交上线后还需要确认它真的在按预期工作。一个简单的检查流程如下:
如果发现某个本应展示的页面在搜索结果中消失,优先检查 robots.txt 是否误挡了它。反过来,若服务器负载过高,也可以考虑临时用 robots.txt 限制某些爬虫的访问频率。
如果网站根目录下没有 robots.txt 文件,搜索引擎会认为网站允许抓取所有页面。对于绝大多数需要被收录的网站来说,这并不受影响。不过,建议仍然创建一份最简单的文件(如 User-agent: * 加空 Disallow),明确表达开放意图,避免因某些爬虫的默认行为差异而产生不必要的抓取问题。
可以,而且非常常见。每个规则组以 User-agent 开头,可以针对不同爬虫设置差异化规则。爬虫会匹配与自己名称最相符的那一组,如果都匹配不上,则忽略文件内容。例如你可以给 Googlebot 开放全部内容,但对某个广告爬虫设定更严格的限制。
对于支持 Allow 指令的搜索引擎(如 Google),当 Allow 和 Disallow 同时匹配时,最具体、最长的那条规则生效。比如 Disallow: /admin/ 和 Allow: /admin/login 同时存在时,后者的路径更长,因此 login 页面会被允许抓取。这个机制就是用来在屏蔽目录的同时单独开放某个页面的。
合理配置 robots.txt 是站点 SEO 的基础工作之一,它并不复杂,但需要细致对待。核心要点是:文件放在根目录,只用小写字母和 UTF-8 编码;根据网站类型选择最小化开放或定向屏蔽的策略;配置完成后务必用测试工具验证效果。建议你现在就去检查一下自己网站的 robots.txt 文件,确认没有误伤重要页面,同时确保低价值内容已被合理屏蔽,这样搜索引擎的爬虫才能把更多精力放在你的优质内容上。