robots.txt 是放在网站根目录的纯文本文件,用来向搜索引擎爬虫说明哪些页面可以抓取、哪些不能抓取。它依赖搜索引擎的自觉遵守,属于协作约定而非安全机制。正确配置 robots.txt,有助于爬虫集中抓取核心页面,同时减轻服务器无谓的访问压力。
爬虫访问站点时,习惯性地先请求根目录下的 robots.txt。文件中规定了抓取边界,爬虫便会依此行动;若文件缺失,则默认可抓取所有公开链接。这一机制常用于达成几种目标:不让后台登录入口被索引、避开搜索结果页和分类标签等低价值页面、通过设定抓取频率减少服务器开销。
需要特别提醒,robots.txt 只对遵守协议的搜索引擎有效,各类恶意爬虫或采集工具根本不会理会它,所以不要把任何敏感数据寄托在这个文件上。凡是真正需要保护的内容,必须通过登录验证或访问权限来限制。
robots.txt 的结构由分组记录构成,每一组都以 User-agent 开头,随后是具体的指令。熟悉下列核心指令,可应对大多数需求:
下面这份配置示例可供直接套用理解:
User-agent: *
Disallow: /tmp/
Disallow: /private/
Allow: /private/special.html
Sitemap: https://www.example.com/sitemap.xml
以上规则表示:所有搜索引擎不得抓取 tmp 整个目录,private 目录除 special.html 外也被屏蔽,同时声明了站点地图位置。每次改动后,最好借助搜索引擎的站点管理工具验证匹配结果,避免等周期更新才发现问题。
robots.txt 看似简约,却最易因细节疏忽造成屏蔽失效或误伤正常内容。以下几类情况值得反复核查:
robots.txt 并不是一劳永逸的,随着站点结构变化需要同步更新。建议每次调整后通过在线工具模拟测试,确认目标路径被正确拦截或放行。另外,Sitemap 声明务必使用完整域名形式,避免因协议或域名不匹配导致无法识别。对于不希望被搜索的全站搜索页、筛选器生成的重复 URL,用 robots.txt 统一屏蔽可有效控制抓取预算,但请记住,真正敏感的私密文件永远不要只靠此文件保护。
必须位于网站根目录,且文件名必须严格为全小写的 robots.txt,例如 https://www.example.com/robots.txt。放在子目录或改动大小写都会让爬虫无法识别,规则自然不生效。
这个时间不固定,通常取决于搜索引擎自身的抓取频率。快则数小时,慢则数周。若要加速,可以到搜索引擎的站长工具中提交更新并请求重新抓取,这样能明显缩短等待窗口。
目前主流的 Google、Bing 等搜索引擎均支持 Allow 指令,但仍有少数小型或较老的搜索引擎只识别 Disallow。为稳妥起见,可在核心规则中兼用两种指令,并借用抓取测试工具逐一核对关键引擎的表现。
配置 robots.txt 的关键在于厘清“协作规则”的本质:它优化抓取效率、收敛无谓流量,却无法充当访问控制。动手修改前,先梳理自己的目录结构,明确哪些路径必须隐藏、哪些允许公开,并结合 Allow 精确放行个例。定期检查抓取报告和测试工具输出,及时修正规则,才能让这份简单的文件持续为网站带来正面价值。