搜索引擎爬虫访问一个站点时,通常先查看根目录下的 robots.txt 文件。这份纯文本文件相当于网站的“访客规则”,明确告诉爬虫哪些目录可以抓取、哪些页面不得进入。配置得当的 robots.txt 既能防止后台等敏感区域被索引,也能优化抓取预算,让搜索引擎更高效地收录重要内容。
robots.txt 需放置在网站根目录,例如 https://yourdomain.com/robots.txt。文件应采用 UTF-8 编码,每行只写一条指令,路径大小写敏感,这些细节都直接影响规则是否生效。
一份常见的 robots.txt 由以下几部分构成:
文件末尾追加一行 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: /
该规则生效后,其他爬虫的访问照常进行。爬虫的具体名称可在各大引擎的官方文档中查询,例如 Googlebot、Bingbot、Baiduspider 等。
企业网站往往需要保护后台、测试目录等不对外公开的路径。此时可采取白名单思路,只允许公开区域被抓取:
User-agent: *
Disallow: /admin/
Disallow: /temp/
Disallow: /backup/
采用这种按目录逐条屏蔽的方式,比使用通配符更稳妥。配置完成后,建议用搜索引擎的检测工具测试,确保公开页面能正常抓取,同时后台路径被拒绝访问。
robots.txt 看似简单,但实际使用中经常出现以下问题,直接影响网站的收录与流量。
假设站点用 Disallow: /wp-admin/ 屏蔽后台,同时用 noindex 处理部分低质页面,两种方式各司其职,分别解决抓取和展示问题。反之,如果仅用 robots.txt 屏蔽内容页,爬虫无法读取页面,noindex 也无从生效,页面上可能残留的搜索结果反而会长期存在,造成用户体验与信任度下降。
为了确保 robots.txt 真正发挥作用,编写时可遵循以下步骤:
不是。目前 Google 对 Allow 的支持较完整,而部分搜索引擎可能忽略该指令。因此,在配置时不要过度依赖 Allow,尽量通过调整 Disallow 的路径范围来实现目标,比如允许子目录时先禁止父级目录再单独放行。
生效时间并不固定。爬虫通常定期重新抓取该文件,Google 等主流引擎可能在数分钟到数小时内响应,而部分小引擎可能需要数天。修改后建议主动提交站点地图或通过站长工具请求重新抓取,以加快更新速度。
可以,但需要注意使用场景。若对某个页面同时设置 Disallow 和 noindex,爬虫可能因无法抓取而读不到 noindex 指令,导致页面仍短暂出现在搜索结果中。推荐的做法是:用 robots.txt 控制抓取范围,用 noindex 处理已抓取但不想展示的页面,两者分别管理不同环节。
robots.txt 是站点与搜索引擎之间的第一道沟通桥梁,配置得当能保护敏感数据并提升抓取效率。建议在每次改版或目录调整后重新检查文件内容,结合站长工具持续测试,避免因小失误造成收录大幅下降。先从小范围的规则改起,验证无误后再全面部署,是较为稳妥的操作方式。