规范robots屏蔽垃圾爬虫恢复搜索引擎收录量
如果你发现网站日志里出现大量陌生 UA(User-Agent,即爬虫标识),服务器负载莫名升高,同时搜索引擎收录量不涨反降,多半是垃圾爬虫抢占了抓取配额。
规范 robots.txt 可以明确告诉搜索引擎哪些内容可以抓,哪些不能抓,同时拦截无意义的垃圾爬虫,为真实收录腾出空间。
本文就带零基础用户从零写好 robots 规则,屏蔽垃圾爬虫,逐步恢复搜索收录量。
垃圾爬虫为什么会拖累收录
垃圾爬虫通常指那些不遵守 robots 协议的采集程序、AI 抓取工具或恶意扫描器。
它们不会为网站带来搜索流量,反而会造成几类问题:
- 挤占带宽和 CPU:大量并发请求让服务器响应变慢,影响真实用户访问。
- 干扰日志分析:后台统计被无效抓取污染,你很难看清真实蜘蛛行为。
- 触发防护机制:某些主机商或 CDN 可能因异常流量封禁 IP,误伤搜索引擎蜘蛛。
搜索引擎分配抓取预算时,如果发现站点大量请求来自无效爬虫,会降低抓取频率,导致新内容收录变慢、旧页面被遗忘。
所以控制垃圾爬虫、保护抓取预算,是恢复收录量的前置条件。
动手前先备份当前 robots.txt
修改 robots 规则前,一定先备份现有文件。
用宝塔面板或命令行都行,核心是别把原有规则弄丢。
宝塔面板操作路径:
- 打开宝塔面板,进入「文件」→ 找到网站根目录(一般如
/www/wwwroot/你的域名)。 - 找到
robots.txt,右键选择「下载」,保存到本地。 - 若没有此文件,记住网站根目录位置,后续直接新建。
命令行备份(SSH 登录服务器后执行):
cd /www/wwwroot/你的域名
cp robots.txt robots.txt.bak.$(date +%F)
执行完成后,robots.txt.bak.2025-06-01 这样的备份文件就生成了。
后面改坏了还能恢复。
规范 robots 屏蔽垃圾爬虫的关键写法
robots.txt 不是写得越多越有效,关键在于结构清晰、规则明确。
下面是一份可直接套用的精简配置,适合大多数企业站、个人博客和中小型网站:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /cache/
Disallow: /temp/
# 屏蔽常见垃圾爬虫和采集器
User-agent: MJ12bot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: DotBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: PetalBot
Disallow: /
# 允许主流搜索引擎蜘蛛
User-agent: Baiduspider
Allow: /
User-agent: Googlebot
Allow: /
User-agent: 360Spider
Allow: /
User-agent: Sogou web spider
Allow: /
User-agent: bingbot
Allow: /
几点说明:
User-agent: *部分只屏蔽后台、缓存等不必要页面,不要把你所有页面都 Disallow,否则搜索引擎连页面都打不开。- 针对垃圾爬虫单独写
Disallow: /,表示整个站点都不欢迎它们。 - 不要把所有你不认识的爬虫都屏蔽,有些搜索引擎的新蜘蛛 UA 可能还不在名单里,一刀切可能误伤。
如果你想屏蔽更多垃圾爬虫,可以在网络日志中抓取 UA 列表。
这里面的名字可能随着时间变化,建议以你站点实际日志为准,定期更新。
保存并测试 robots 文件是否生效
修改完成后,把文件保存回网站根目录,然后做两件事:
1. 用浏览器直接访问验证:打开 https://你的域名/robots.txt,能正常看到刚才的内容即可。
2. 用搜索引擎站长工具验证:
- 百度搜索资源平台 → 「抓取诊断」→ 输入
robots.txt地址,查看是否可抓取。 - Google Search Console → 「robots.txt 测试工具」→ 查看报告,确认没有语法错误。
3. 命令行快速验证(Linux 服务器):
curl -I https://你的域名/robots.txt
返回 200 OK 且内容为文本即可。
如果返回 404,说明文件路径不对或未保存成功。
验证垃圾爬虫是否真的被拦截
屏蔽配置生效后,别急着看收录量,先观察垃圾爬虫是否还来。
可以在服务器日志里过滤一下 UA:
grep -i "MJ12bot\|AhrefsBot\|Bytespider" /www/wwwlogs/你的域名.log | tail -20
如果还有新纪录,排查两点:
- 爬虫可能绕过了 robots.txt 直接抓取(这样的爬虫本身就是恶意采集器)。
- 你使用的是 CDN 节点 IP,日志来自 CDN 回源请求,需要在 CDN 后台也配置对应的拦截策略。
真正的收录恢复需要时间。
robots 规则修改后,搜索引擎可能需要几天到几周才重新抓取。
建议每 3 天看一次百度站长平台或 Google Search Console 的抓取统计,重点观察「抓取量」和「页面收录数」的变化,而不是盯着某一天的数据波动。
避坑提醒:这些做法容易让收录更差
规范 robots 时,下面几个坑最容易踩:
- 把主流搜索引擎也屏蔽:有些站长为了拦截垃圾爬虫,用了
User-agent: *然后Disallow: /,结果百度、Google 都进不来,收录直接归零。一定要保留主流蜘蛛的 Allow 规则。 - 写成反斜杠路径:robots 只支持正斜杠路径,
Disallow: \wp-admin是错误写法,会导致规则失效。 - 只屏蔽不观察:屏蔽垃圾爬虫后,如果日志明显减少,但收录量还是不动,问题可能出在内容质量、站点结构或外链上,别只盯着 robots 文件。
- 用 robots 屏蔽 JS/CSS:很多新手会把静态资源全部 Disallow,这会影响搜索引擎渲染页面,反而降低收录质量。
常见问题解答
垃圾爬虫根本不看 robots.txt,屏蔽有用吗?
仍有意义。
规规矩矩的垃圾爬虫会遵守规则,拦截一部分就能减轻压力。
完全不遵守的恶意爬虫属于扫描攻击,需要配合防火墙 IP 封禁和 UA 拦截,建议同时开启 CDN 的 Bot 防护功能。
屏蔽垃圾爬虫后,收录量多久能恢复?
没有固定时间。
一般 1-4 周内能看到抓取频率变化,具体取决于搜索引擎重新抓取的周期。
重点观察百度搜索资源平台和 Google Search Console 的抓取报告,不要频繁改动 robots.txt。
如何知道哪些爬虫是垃圾爬虫?
打开服务器访问日志,统计 UA 出现频率。
出现频率高但对你的站点没有实际转化价值的,往往就是垃圾爬虫。
也可以参考各大搜索引擎官方公布的蜘蛛 IP 段,反向比对。
可以用 robots 把某个页面直接屏蔽来提升权重吗?
不建议这样做。
robots 的 Disallow 只是禁止抓取,不等于删除页面。
如果某些页面不需要收录,建议使用 noindex 标签,而不是用 robots 屏蔽。
屏蔽后如果页面还停留在线索引中,反而失去更新机会。
规范 robots 屏蔽垃圾爬虫,根本目的是把有限的抓取配额留给真正有用的页面。
按照本文步骤调整后,建议持续观察两周左右,配合日志分析再微调规则。
如果你的服务器经常被垃圾爬虫打到高负载,除了 robots 外,还可以考虑在 Nginx 或 CDN 层面做 UA 拦截,这样更彻底。
多尝试多记录,收录量会逐步回到正常水平。