robots.txt 是放置在网站根目录的纯文本指令文件,用于引导搜索引擎爬虫抓取哪些路径、绕过哪些路径。它不直接作用于排名,但一份设置得当的 robots.txt 能显著提升爬虫的抓取效率,帮助新页面更快被收录;而配置失误则可能让核心页面长期不被索引,甚至拖累整站的收录进度。以下从基础语法到典型应用场景,拆解配置过程中的关键细节与容易忽视的坑。
不少站长误以为在 robots.txt 中声明 Disallow 就能彻底隐藏页面,这是典型的理解偏差。该文件依赖爬虫自觉遵守,对主流搜索引擎有效,但对恶意采集程序或非标准爬虫毫无约束力。涉及敏感数据的路径,例如管理后台、用户数据接口,必须依靠登录验证、IP 白名单等硬性防护措施,不能将安全防线寄托在这个文本文件上。
同时需要注意,robots.txt 只管理爬虫“是否抓取”,并不决定页面“是否展示”。若想让某个页面彻底不出现在搜索结果中,仅靠 robots.txt 无法实现,需在页面头部添加 noindex 标签。两者职责不同,需要配合使用,在操作时也应区分对待,避免混淆。
robots.txt 由若干规则组构成,每组以 User-agent 字段开始,后跟一条或多条 Allow 或 Disallow 指令。书写格式为“字段名: 值”,冒号后建议保留一个空格,字段名统一使用小写字母,以降低不同解析器之间的兼容性差异。
User-agent 用于声明该组规则对哪个爬虫生效。例如 User-agent: Googlebot 只针对谷歌爬虫;User-agent: * 则适用于所有爬虫。你可以针对不同搜索引擎配置差异化策略,比如对百度屏蔽某个目录,而对谷歌开放,这种精细控制在多搜索引擎优化时非常实用。
Disallow 规定禁止抓取的路径,Allow 规定允许访问的路径。当两条规则同时命中一个链接时,遵循“最长匹配优先”原则——字符数更多的规则胜出。举例说明,若同时设置 Disallow: /api/ 和 Allow: /api/public/,那么 /api/public/ 下的内容可以被正常抓取,而 /api/ 下其他路径仍被禁止。此外,Disallow 留空表示解除所有限制,适合全站完全开放的场景。
Sitemap 指令提供站点地图的完整地址,有助于爬虫快速发现新页面,减少自行扫描链接的时间成本。Crawl-delay 用于设定两次抓取请求之间的间隔秒数,对服务器性能较弱的网站能起到缓冲作用。但并非所有搜索引擎都支持 Crawl-delay,部分爬虫会忽略该字段,因此控制抓取频率不能只依赖这一项。
不同站点的需求千差万别,以下配置思路可根据实际情况灵活调整:
配置 robots.txt 时,有几个高频错误值得特别留意:
完成 robots.txt 配置后,别急着结束,后续的验证步骤同样关键:
不会受到直接惩罚。但配置错误可能导致爬虫无法正常抓取有效内容,造成重要页面收录延迟或丢失,间接影响网站的曝光与流量。因此,每次修改后都应尽快验证。
Disallow 只阻止抓取,页面理论上仍可被外部链接带入索引;noindex 则明确告知搜索引擎不要将该页面加入结果索引。两者应用场景不同:对于不想被抓取的后台路径用 Disallow;对于不想展示但在站内存在的页面用 noindex。
没有统一标准。如果服务器响应较快,设置 1-2 秒即可;若服务器负载较高,可适当增加到 5-10 秒。但需留意,该指令对不同搜索引擎的生效情况不同,部分爬虫会直接忽略,因此不能作为唯一的频控手段。
robots.txt 是搜索引擎优化中容易被忽视却影响深远的一环。建议在配置时先明确目标路径清单,再逐条写入规则并验证匹配逻辑;同时定期复查文件内容,尤其是在网站结构变更或功能更新后。把这份文件当作抓取路线的“交通指示牌”,而非“安全门”,才能让爬虫高效工作,为页面收录创造良好条件。若不确定某项规则的影响,宁可先不添加,也不要贸然屏蔽可能影响整站的关键路径。