当爬虫首次访问网站时,它通常会在根目录寻找 robots.txt 这个文件。这份文档相当于给搜索引擎蜘蛛的一份通行指南,用来告知哪些页面允许被检索,哪些目录应该避开。合理设置该文件,不仅能防止后台数据被搜索到,还能提升抓取效率,让搜索引擎更专注于你的优质内容。
robots.txt 必须存放在网站的根目录下,通常通过 example.com/robots.txt 即可访问。这是一个纯文本文件,每条命令占据一行,且路径大小写敏感,例如 /Admin 和 /admin 会被视为两个不同的路径。
一个规范的 robots 文件包含以下核心字段:
我们来看一个典型配置示例:
User-agent: *
Disallow: /admin/
Allow: /admin/free/
Sitemap: https://example.com/sitemap.xml
这段规则的含义是:网站整体允许抓取,但 /admin/ 目录被纳入禁止抓取的范围,不过其下的 /admin/free/ 子目录又被单独放行。需要提醒的是,如果搜索引擎不支持 Allow 指令,那么它只会执行 Disallow 的限制,该子目录依然无法被抓取。
不同网站的抓取策略差异较大,以下提供三种高频场景的配置参考。
对于内容型网站或新上线的站点,通常希望每篇文章都能被搜索引擎收录。此时仅需添加一行声明即可:
User-agent: *
Disallow:
当然,也可以直接省略 Disallow 这一行,因为默认状态下爬虫有权抓取全站内容。新手常犯的误区是误写成 Disallow: /,这一指令会阻止爬虫访问任何页面,直接导致网站长期不被收录。
当你不希望某个特定的搜索引擎收录内容时,可以为该爬虫单独设置一个规则区块:
User-agent: YandexBot
Disallow: /
这种方式的好处是,其他搜索引擎的抓取行为不受任何影响。在写爬虫名称之前,记得去访问对应官方文档核实准确的拼写,常见的名称有 Googlebot、Bingbot、YandexBot 等,拼写错误会让屏蔽规则失去作用。
企业网站常常需要屏蔽后台管理页面、临时目录和脚本文件夹,同时确保前台访客内容正常收录:
User-agent: *
Disallow: /admin/
Disallow: /temp/
Disallow: /scripts/
这是一种常见且安全的配置思路。建议在每次修改后,通过站点日志观察蜘蛛的访问频率是否恢复正常,排查是否有必要的页面被误拦截。
在配置过程中,掌握一些关键细节能让你少走弯路,避免给网站带来不必要的负面影响。
每次更新完 robots 文件后,不应立即停止调整,而是需要经过验证和观察。
在搜索引擎的站长工具中,通常都内置了 robots 测试功能,你可以粘贴文件内容并输入 URL 进行模拟抓取,查看该链接是否被允许访问。这个步骤能帮助你在线上环境生效之前,提前发现并修正配置逻辑。
配置生效后,建议持续关注服务器访问日志,查看目标搜索引擎蜘蛛的抓取数量是否合理。如果发现核心页面未被抓取,而日志中又显示正常访问,那很可能是路径规则出现了细微的写法偏差。
随着网站的迭代,原先需要屏蔽的目录也许早已废弃。建议每隔一段时间对 robots.txt 做一次复审,删除无用的 Disallow 条目,及时补充新生成的敏感目录,确保规则始终贴合网站当前的实际状态。
这通常是因为爬虫名称拼写不准确,或者规则中的路径与页面实际路径不匹配。请先确认文件中的 User-agent 是否与百度官方文档一致(Baiduspider),并核实路径大小写及子目录伸缩范围。另外,服务端缓存也可能导致新规则未及时生效,建议等待数小时后再查询日志。
不能。robots.txt 只负责控制蜘蛛的抓取行为,如果页面已经收录但排名很差或无快照,多半涉及内容质量、页面加载速度或外链策略等问题。此时更适合通过优化网页内容和改善内链结构来解决。
每个子域名都是独立站点,需要分别放置自己的 robots 文件。例如 m.example.com 与 www.example.com 的抓取规则需要各自维护,无法通过一个根目录文件统一管理所有子域名。
合理设置 robots.txt 是保障网站抓取效率的基础工作。先从理解 User-agent、Disallow、Allow 和 Sitemap 等指令的作用入手,再根据站点类型套用合适的模板。配置完成后,记得借助站长工具验证,并定期查看日志跟踪效果。建议你从本周开始检查现有文件的语法,逐步建立一个适合自己站点的规则体系。