网站上线后,搜索引擎爬虫会定期前来抓取页面。如果不对抓取范围做任何限制,爬虫可能会访问后台目录或大量无价值的参数页面,既浪费服务器资源,又可能影响收录质量。robots.txt 文件正是用来与爬虫约定抓取规则的文本文件,它位于网站根目录,是每个站长都应了解的基础配置。
robots.txt 文件的全称是 Robots Exclusion Protocol,通常直接写成 robots.txt。它是一个放在网站根目录下的纯文本文件,任何人通过输入 域名/robots.txt 都能直接看到其内容。该文件的作用是向搜索引擎爬虫声明:哪些路径允许抓取,哪些路径需要跳过。
需要特别注意的是,robots.txt 属于君子协议,并非强制性的技术屏障。正规搜索引擎(如百度、Google)会遵守其中的规则,但恶意采集程序完全可以无视。因此,不要用它来保护涉及隐私或商业机密的数据,这类内容应当依靠登录验证或 IP 访问控制。
在实际运营中,robots.txt 的常见用途包括:
编写 robots.txt 并不复杂,但语法错误容易导致规则失效。文件必须是纯文本格式,编码建议使用 UTF-8,每行只能写一条指令。同时,路径和指令名是区分大小写的,例如 /Admin/ 与 /admin/ 是两个不同的路径。
场景一:允许所有爬虫抓取全部内容。
User-agent: *
Disallow:
场景二:禁止所有爬虫访问整站(仅用于特定情况,如网站未完成)。
User-agent: *
Disallow: /
场景三:屏蔽部分目录,但放行其中有价值的公开页面。
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
在第三个例子中,爬虫虽然被禁止进入 /admin/ 目录,但通过 Allow 指令仍然可以抓取该目录下的 public 子目录。值得注意的是,Allow 只对路径前缀匹配生效,无法精确控制到具体某一个文件。
不少站长在编写时容易踩坑,以下是最常见的几类问题。
第一,把 Disallow 与 noindex 混淆。Disallow 只是阻止抓取,但页面如果被外部链接指向,仍有可能被收录并显示空白摘要。若希望页面彻底不进索引,应使用 noindex 标签。第二,过度屏蔽资源文件。部分站长习惯屏蔽所有 JS 和 CSS,这会增加搜索引擎理解页面的难度,反而拖累排名,除非资源体积过大造成抓取压力,否则不建议屏蔽。
第三,忽略语法细节。比如在 Disallow 的路径末尾少写了斜杠,可能会导致整个目录规则失效。第四,文件放置在错误位置。robots.txt 必须放在网站主域名的根目录下,放置在子目录中不会被任何爬虫读取。
实际使用时,建议遵循下面几个操作方法,能帮助你少走弯路。
修改规则不会直接删除已收录的页面。搜索引擎需要在下一次抓取时发现规则变化,再决定是否移除页面。这个过程通常需要几天到几周不等,若急需移除,可借助百度搜索资源平台或 Google Search Console 的删除工具。
协议中预留了 Crawl-delay 指令,用于声明两次抓取间隔的秒数。但百度、Google 等主流搜索引擎均不承认该指令,它们会根据自身系统自动调节抓取频率。因此,通过 robots.txt 控制抓取速度的效果有限,更推荐在站长平台后台设置抓取速率。
一个站点只能有一个有效的 robots.txt 文件。不同子域名(如 m.example.com 和 www.example.com)属于独立站点,需分别在各自的根目录放置一份。若出现多个文件,只会有一个被爬虫读取,通常是直接返回的那一个。
robots.txt 是网站与搜索引擎沟通的重要工具,掌握它的语法和语义能帮助你更高效地管理抓取预算。建议你根据上文的基础规则,先梳理出网站的目录结构,列出需要屏蔽的路径,再动手编写文件。上线后别忘了定期检查抓取日志,及时调整规则。记住,它只是一个配合搜索引擎的约定文件,真正的敏感数据还需依靠访问控制来保护。