robots.txt配置全攻略:语法规则与常见避坑指南

📍 WDQWDWQD987AAAAA:216.73.216.176
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /478291d4add3.html
📄

robots.txt是放在网站根目录的一个纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些应该跳过。设置得好,爬虫会把精力集中在重要页面上,新内容收录速度明显加快;设置错了,可能整站被抓取受阻,甚至已有的排名也会受到影响。学会它的语法规则和那些容易被忽略的细节,是每个做网站运营的人都该掌握的技能。

1. 先搞清它的本质:一份建议书,不是安全门

robots.txt本质上是一份写给爬虫的“建议清单”,没有强制力。任何人只要在浏览器里输入“域名/robots.txt”,就能直接看到文件内容。它就像园区入口的指示牌,告诉访客哪些区域可以参观,但真正存放贵重物品的地方,绝对不可能只靠一块牌子来防护。

这份文件只管爬虫要不要发抓取请求,并不决定页面最终是否进索引。比如某个页面被Disallow屏蔽了,但站外有很多链接指向它,搜索引擎照样有可能把它收录,只是展示的快照可能来自缓存片段而已。

更关键的是,这套协议全靠爬虫自觉遵守。主流搜索引擎的蜘蛛一般都会按规矩来,但大量第三方采集脚本和恶意爬虫根本不理会。凡是涉及用户隐私、登录后台、支付流程这些敏感区域,一定要同时启用登录验证、IP白名单或防火墙等硬性拦截措施,别把安全寄托在这份“君子协定”上。

2. 语法结构拆解:规则组与匹配逻辑

robots.txt由若干规则组构成,每个规则组以User-agent行开头,声明这组规则针对哪类爬虫。指令格式统一为“名称: 值”,冒号必须用英文半角,建议冒号后面留一个空格。多数爬虫对格式有一定容忍度,但规范书写能避免以后解析出各种莫名其妙的问题。

2.1 User-agent:这条规则管谁

这一行决定了当前规则组约束哪类爬虫。只想针对谷歌蜘蛛,就写User-agent: Googlebot;希望所有搜索引擎统一适用,用通配符User-agent: *。通过拆分多个规则组,可以实现差异化策略,比如对谷歌放开权限,同时对必应限制抓取频率。

2.2 Allow与Disallow:一放一禁怎么搭配

Disallow声明禁止访问的路径,Allow声明允许访问的路径,两者经常配合使用。这里有个特别容易踩坑的细节:当Disallow后面留空时,表示清除所有限制,爬虫可以抓取全站。当同一条URL命中多条规则时,搜索引擎普遍采用“最长匹配优先”原则——路径越具体,优先级越高。比如同时存在Disallow: /api/和Allow: /api/public/,后面这条匹配了更长的路径,所以public子目录下的内容会被正常放行。

2.3 Sitemap与Crawl-delay:辅助性指令怎么用

Sitemap指令用来声明站点地图的完整URL地址,帮助爬虫快速了解网站结构,一般放在文件末尾。Crawl-delay指令用来设定爬虫两次抓取之间的间隔秒数。但要特别注意:谷歌的蜘蛛不支持Crawl-delay,它的抓取频率由自身算法决定,设置这条指令对它无效。如果强行依赖这个功能,最后可能期望落空。

3. 常见误配置:容易踩中的坑

配置语法本身不复杂,但很多站点在细节上栽了跟头。下面这几类错误特别高发:

4. 动手配置:从零到可用的实操流程

把理论落地到实践,可以按下面这几步来操作,每一步都顺手检查一下,减少返工成本。

  1. 先列清单:把网站目录梳理一遍,区分出必须开放(首页、文章详情、产品页)、可选开放(分类页、标签页)和必须屏蔽(后台、购物车、个人中心、搜索结果页)三类。
  2. 写文件:按“User-agent + Allow/Disallow”的格式逐组写清楚,屏蔽区域用具体路径而非模糊匹配,域名和路径大小写一定要核对。
  3. 访问验证:直接在浏览器访问“域名/robots.txt”,检查文件是否能正常打开、格式是否正确。
  4. 用站长工具检测:百度搜索资源平台、Google Search Console里都有robots检测工具,输入URL就能看到爬虫视角下的匹配结果。
  5. 上线后观察:正常情况下,有效页面覆盖率应该提升;如果发现收录量大幅下滑,优先检查是不是某条规则写得太宽,把不该屏蔽的也封了。

5. 常见问题

5.1 修改robots.txt后,搜索引擎多久能生效?

没有固定的生效时间。百度站长后台和Google Search Console都支持手动提交更新请求,提交后一般几个小时到几天内会重新抓取。如果没提交,就得等爬虫自然周期访问,可能拖到一两周。

5.2 屏蔽了页面之后,网站排名会发生什么变化?

如果页面本来没有排名,屏蔽后对整站没什么影响。但如果屏蔽的是有排名的页面,收录和索引会逐步退出,相应的关键词流量也会随之下降。因此屏蔽前最好先核实页面是否有实际搜索价值。

5.3 网站有多个子域名,robots.txt要怎么放?

每个子域名都是独立的站点,需要在各自根目录下单独放置robots.txt。比如www.example.com和m.example.com是两套文件,互相之间不通用。改动一个子域名的规则,不会影响另一个子域名的抓取行为。

6. 结语

robots.txt看似一个不起眼的文本文件,但配置的好坏直接影响爬虫效率和收录质量。建议你在改完文件后,至少隔一周观察一次抓取报告和收录数据,看看规则有没有按预期生效。同时养成记录变更的习惯——哪次改了什么、为什么改,都留个备注,方便日后追溯。把这些基本功练扎实了,网站的搜索引擎友好度自然会提升一个台阶。

图1 图2

nginx