robots.txt是站长与搜索引擎爬虫之间的沟通文件,它位于网站根目录,用来告知爬虫哪些内容可以抓取、哪些需要避开。合理的配置能保护后台数据和隐私页面,也有助于核心内容被正常收录;而配置失误则可能导致页面漏抓甚至整站索引异常。因此,掌握它的语法和设置方法对每个网站运营者都很重要。
robots.txt由多个规则块组成,各规则块之间以空行分隔。每个块通过不同指令来定义爬虫的访问行为,常见的指令有以下几种:
路径匹配遵循前缀匹配原则且区分大小写,例如“/User”和“/user”会被视为两个不同的路径。需要留意的是,虽然Allow指令被主要搜索引擎广泛支持,但仍有部分爬虫不会严格执行,因此对重要的流量页面,不要把开放权限完全寄托于Allow指令上。
一个简单的配置示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
为了让隐私保护与索引效率兼得,建议按照以下流程来设置:
在实际操作中,以下几类错误比较常见,需要格外留意:
一是文件位置放错。robots.txt必须位于域名根目录下,若误传到子目录或二级文件夹,爬虫无法读取。例如“https://example.com/robots.txt”应该能直接访问,否则视为无效。
二是Disallow误用导致整站被封。当“Disallow: /”时,表示禁止爬虫抓取全站所有路径。如果本意只是屏蔽某一个目录,却写成这样,就会造成整站无法收录,影响极大。写入规则前应对照目录清单逐条确认。
三是混淆“允许”和“不禁止”的概念。robots.txt不存在的路径默认允许抓取,因此在配置时只需写明需要禁止的路径即可,无需对每个公开页面都写Allow。不然文件会越来越长,增加维护成本,也容易出错。
四是忽略了文件编码。文件应保存为UTF-8无BOM格式,使用纯文本编辑器编辑。若在Windows记事本中直接保存为带BOM的编码,部分爬虫可能解析异常。
除了基础的全局规则,还可以对不同类型的爬虫采取差异化管理。比如,允许某一搜索引擎收录但限制另一搜索引擎,可以使用多个User-agent块分别设置。
以下是一个多爬虫配置示例:
User-agent: Googlebot
Disallow: /private/
User-agent: bingbot
Disallow: /private/
Disallow: /internal/
User-agent: *
Disallow: /search
这种写法能让不同爬虫访问到不同的路径范围。但要注意,不同搜索引擎对规则的支持程度不完全一致,配置完成后应分别在各站长平台进行验证。另外,不要滥用Sitemap指令以外的扩展语法,非标准指令可能被忽略或造成误解。
如果只是个别路径屏蔽错误,影响相对有限;但若是误写成“Disallow: /”屏蔽全站,则会导致整站不被收录,权重自然大幅下降。因此写入后务必立即验证抓取结果,发现异常及时修正。
一般没有固定时间。搜索引擎爬虫会定期重新抓取该文件,短则数小时,长则数天。如果需要加速,可以在站长平台手动提交更新,并利用抓取测试工具重新检测。
不能。它只能约束遵守协议的搜索引擎爬虫,无法阻止恶意爬虫或采集工具。要彻底屏蔽不良访问,还需配合服务器层面的IP限制或其他防护措施。
合理配置robots.txt,既要准确掌握语法,也要结合自身站点结构灵活运用。建议每次改动后都进行一次完整的检查:先确认文件位置无误,再核对关键页面是否被屏蔽,最后通过站长工具验证实际抓取效果。养成定期回顾规则的习惯,能让网站在保护隐私的同时保持稳定的索引表现。