Robots.txt 是网站与搜索引擎爬虫之间的"君子协定",通过它你可以明确告知爬虫哪些内容欢迎抓取、哪些区域谢绝访问。一份配置得当的 robots.txt,既能保护后台或隐私页面不被收录,又能减少无效抓取带来的服务器压力,让爬虫把精力集中在你真正想展示的页面上。
robots.txt 必须存放于网站根目录下,例如 https://yourdomain.com/robots.txt。文件采用纯文本格式,内容由数个规则块构成,每个规则块以 User-agent 开头,后接若干条指令。
常用的指令主要有以下几种:
一个最简单的全开放示例:
User-agent: * Disallow: Sitemap: https://yourdomain.com/sitemap.xml这段配置指明所有爬虫均可抓取全站内容,并提供地图文件方便其快速索引。
实际项目里,我们往往需要针对网站的具体结构做精细控制。下面梳理几种最常见的配置需求。
当网站处于开发中、改版调试或需要暂时下线时,用一行代码即可关闭所有爬虫通道:
User-agent: * Disallow: /此时爬虫会被告知禁止访问任何路径,通常也会放弃收录该域名下的页面。
若只想阻止爬虫进入管理后台、购物车、筛选页等无价值的区域,可精确列出这些路径:
User-agent: * Disallow: /admin/ Disallow: /cart/ Disallow: /filter?sort=这里一个容易犯的错误是:爬虫解析规则时采用"最长前缀匹配",若你同时写了 Disallow: / 和 Allow: /public/,因为 Disallow 的目录范围更大,可能导致 Allow 不生效。最佳做法是,在 Disallow 中只列出需要屏蔽的明确路径,剩余内容默认允许抓取,这样即兼容性最强,也不易出错。
不同搜索引擎的抓取策略和资源消耗差异很大,例如你可以允许 Google 抓取图片资源,却限制其他爬虫抓取:
User-agent: Googlebot Allow: /images/ User-agent: * Disallow: /images/ Disallow: /assets/请注意声明顺序:必须先写特定爬虫的规则块,再将通用规则(*)放在最后。爬虫会优先匹配并执行与自身名称相符的段落,匹配到后将忽略后续通用规则。
很多网站因细节疏忽,导致 robots.txt 没有发挥预期作用。以下是容易被忽视的几点。
写完 robots.txt 并上传后,不能只靠肉眼检查,还应该借助以下手段确认生效:
不会直接导致降权。但如果误写了 Disallow: / 却并未打算屏蔽全站,会使得爬虫长期无法抓取新内容,间接影响新页面的收录和排名,建议上线后尽快检查并纠正。
并非所有爬虫都支持 Allow 指令,例如百度官方文档明确指出其只识别 Disallow,不识别 Allow。如果你的站点面向百度优化,建议仅使用 Disallow 列出需屏蔽的路径,其余路径天然允许抓取,避免依赖 Allow 来放行。
需要。若旧域名仍处于可访问状态,应保留其 robots.txt 内容或直接返回 404,避免旧规则影响新站。同时,务必在新域名根目录上传一份全新的、路径正确的 robots.txt,并更新 Sitemap 地址。
robots.txt 虽是一份简单文本文件,却直接影响爬虫效率与网站安全性。建议遵循"尽量只禁止明确无用的目录"的原则,避免过度限制;每块 User-agent 规则保持精简;上线前务必通过站长平台工具实测抓取结果。把精力花在优化页面质量上,robots.txt 只需做到不添乱、保隐私、引导核心资源即可。