在搜索引擎蜘蛛的抓取流程中,第一步往往会先检查网站根目录下的 robots.txt 文件。这个简单文本文件扮演着"通行守则"的角色,它直接告诉蜘蛛哪些页面可以收录、哪些区域应该绕行。合理的配置不仅能保护后台等私密目录不被索引,还有助于集中服务器资源,优先处理重点页面的抓取工作。
robots.txt 需存放在网站根目录,以确保可通过 https://example.com/robots.txt 直接访问。文件须以 UTF-8 编码保存,每条规则独立成行,且路径区分大小写。
一个标准文件包含如下几个关键部分:
以下为一份通用示例:
User-agent: *
Disallow: /private/
Allow: /private/public/
Sitemap: https://example.com/sitemap.xml
此示例表达的含义是:所有蜘蛛均可进入,但 /private/ 整个路径下不允许抓取,唯独名为 public 的子目录属于例外。需要留意的是,并非所有引擎都认可 Allow 指令,若遇到不支持的蜘蛛,则更严苛的 Disallow 规则会优先执行,因此切不可依赖 Allow 来覆盖禁止权限。
不同定位的站点,对蜘蛛访问的宽容度存在明显差异。下面介绍三种需求与对应配置思路。
对于新上线或期望快速被收录的资讯站,通常希望蜘蛛访问全部页面。这时只需要声明一个空值的 Disallow 指令即可:
User-agent: *
Disallow:
即使省略 Disallow 这一整行,效果也完全一样。此方案最易出现的失误,是将 Disallow 误填写为 /,只要出现该值,所有蜘蛛就会暂停本网站的抓取,网站收录也随之停滞。修改后建议立即通过爬虫模拟工具验证。
例如,出于流量控制的目的,仅阻止特定搜索引擎的蜘蛛,而不干扰其他引擎,可单独编写规则:
User-agent: Googlebot
Disallow: /
上述规则只对 Googlebot 生效,Bing、搜狗等其他蜘蛛完全不受影响。在动手前,务必去各搜索引擎的官方帮助中心,查找其蜘蛛的确切 UA 名称,不可凭印象随意猜测,常见的蜘蛛标识还包括 YandexBot 与 Sogou 等。
比如,站点后台路径为 /admin/,但需要让其中的 /admin/api/ 被第三方工具访问,则可借助配对写法完成:
User-agent: *
Disallow: /admin/
Allow: /admin/api/
在 Google 的解析逻辑中,最长匹配规则具有最高优先级,因此上述配置可正常生效。但若目标引擎不识别 Allow,该接口路径仍会被禁止连接,此时建议将接口改放在非禁止目录下,以避开此歧义。
实际维护中,许多网站因疏忽而写错文件,常犯的错误主要有以下几点:
对于动态生成 URL 的站点,比如带有参数的筛选页,建议使用 Disallow 将这些带问号的链接屏蔽,避免产生大量低质量重复收录。而静态页面,如品牌故事或帮助中心,则尽量不要出现在禁止列表中,以免误伤正常收录。
值得注意的是,robots.txt 本身仅是一种君子协定,并不能完全阻止恶意抓取。对于需要认证登录或包含敏感数据的目录,更稳妥的防护方式,是结合服务器权限与登录验证共同实现。
不同搜索引擎对规则变更的响应周期不同。通常,Google 会在数小时到几天内重新抓取该文件并更新缓存,而其他引擎可能需要更长时间。想要验证最新规则是否生效,最直接的办法是使用各站长平台自带的分析工具,模拟抓取一次页面即可看到拦截反馈。
可以。对于某些需要临时封禁或保护的区域,可通过服务器配置文件与 CDN 层面实施更严格的访问控制,比如针对 IP 段或特定 UA 做拦截。而 robots.txt 更适合作为第一道粗粒度筛选,将不需收录的路径提前排除在抓取列表外。
当站点迁移到新域名后,旧域名下的 robots.txt 文件应保留并调整内容,放置新域名的完整地址,同时添加对应的 Sitemap 行。这能引导蜘蛛逐步过渡到新站点上,减少旧站收录中断带来的流量损失。
合理运用 robots.txt 是保障站点收录质量的基础环节。给站点的实际建议是:先明确禁止区域,再对需放行的子路径单独配置;每次修改后,都利用主流搜索引擎工具做一次抓取检查。同时,将文件保持精简,配合其他安全手段,才能实现爬虫资源的高效利用,真实提升搜索表现。