搜索引擎爬虫访问网站时,第一步通常是读取根目录下的 robots.txt 文件。这个文件以纯文本形式存在,相当于你给爬虫下发的"访问守则",明确告知哪些目录可以抓取、哪些区域需要回避。合理的配置既能保护后台数据不被索引,也能降低服务器压力,帮助爬虫聚焦在工作更有价值的页面上。
robots.txt 文件必须放在网站根目录下,且文件名、位置不能更改。它采用 UTF-8 编码,每条规则单独占一行。需要注意的是,路径匹配是区分大小写的,这一点在实际操作中极易被忽视。文件的常见组成项如下:
此外,你还可以添加一条 Sitemap 声明,把站点地图的地址提供给爬虫。下面是一个通用的配置例子:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
这段内容的意思是:所有爬虫都可以进入网站,但是 /private/ 目录不允许访问;其中 /private/shared/ 这个子目录又重新开放了。这里有个容易出错的细节:Allow 指令不被所有爬虫识别,如果对方忽略这一项,它还是会按照 Disallow 的规则去执行,导致你本想放开的子目录同样被屏蔽。
网站的类型和发展阶段不同,robots.txt 的写法也应当相应调整。下面提供三套常见方案,你可以直接复制并替换为自己的域名。
对于内容型网站或刚上线的新站,通常希望所有页面都能被爬虫抓取。此时只需声明一个空的 Disallow 字段:
User-agent: *
Disallow:
你甚至可以省略 Disallow 那一行,效果完全相同。这里最需要避免的错误是把 Disallow 写成单个斜杠,一旦如此,整个网站都将无法被索引,收录工作会直接停滞。检查时记得确认冒号后面是空的,而不是斜杠或其他字符。
如果你希望拒绝某个特定的搜索引擎,但不想影响其他爬虫的正常抓取,可以给它单独设置规则:
User-agent: Baiduspider
Disallow: /
这段设置只对百度蜘蛛生效,Google、Bing 等其他搜索引擎的爬虫并不会受到任何影响。
如果你需要屏蔽某个目录,但其中少数页面仍有收录价值,可以结合 Allow 和 Disallow 一起使用。前提是目标搜索引擎支持 Allow 指令,否则你只能改变目录结构,或者用更精确的 Disallow 路径来规避问题。
实际运维中,很多站点因为 robots.txt 配置不当而出现收录异常。下面归纳几类最常见的错误,并给出规避建议。
写完配置后,不能只是保存上传就算结束。你需要通过以下几个步骤确认规则真的按照设想执行:
不能完全保证。robots.txt 是给"遵守规则"的爬虫看的,它并不具备强制约束力。此外,如果其他网站主动引用了你页面上的链接,搜索引擎仍可能通过外部链接发现并索引该网址,只是不会抓取页面正文。
不是。Allow 指令起源于 Google 的扩展支持,随后被部分搜索引擎采纳,但并非所有爬虫都能识别。如果爬虫不支持这项指令,建议只用 Disallow 来规划路径,或者通过调整目录结构来配合规则。
没有固定时间。搜索引擎爬虫的抓取周期各不相同,短则几小时,长则数周。修改后建议通过站长平台提交更新或触发抓取,同时定期观察日志验证结果。
robots.txt 虽然文件很小,却直接关系到抓取效率和敏感信息的保护。配置时优先确认 User-agent 与 Disallow 的组合,谨慎处理 Allow 的可兼容性,并始终用检测工具验证再上线。每当你调整规则,最好保留一份改动记录,方便后续排查异常收录或服务器压力变化时回溯问题。同时要明确一个边界:robots.txt 只是协议层面的拦截,真正需要保密的数据应当依靠权限验证来保护,而不是依赖这种声明式的规则。