robots屏蔽无效垃圾爬虫恢复搜索引擎收录量
网站的搜索引擎收录量突然下滑,不一定是你内容出了问题,很可能是大量垃圾爬虫占用了服务器带宽和抓取资源。
用 robots.txt 屏蔽这些无效爬虫,让搜索爬虫重新优先抓取正常页面,收录量通常会在几周内逐步回升。
本文针对零基础用户,讲清从日志确认、规则配置到效果验证的完整流程。
为什么垃圾爬虫会拖累搜索引擎收录
垃圾爬虫就是那些不是搜索引擎官方的抓取程序,常见的有采集站爬虫、AI 训练爬虫、扫描漏洞的安全工具等。
它们并不会给你带来流量,却会频繁请求页面,导致服务器负载变高、日志刷屏,甚至把带宽占满。
当搜索引擎的蜘蛛(比如百度的 Baiduspider、谷歌的 Googlebot)按计划来抓取时,遇到响应变慢或超时,就会降低抓取频率。
抓取频次降低后,新页面和新改动就无法及时被发现,已收录页面的更新和验证也会延迟,最终表现为收录量下降、快照陈旧。
开始配置前先确认两件事
配置屏蔽规则前,先做两步检查,避免误伤正常搜索引擎。
第一步:查看服务器访问日志,找出高频垃圾爬虫。
如果你用的是宝塔面板,直接在“日志”里看网站访问日志即可;
如果是命令行服务器,可以用下面命令查看最近 5000 条请求里有哪些蜘蛛 UA:
awk '{print $6}' /www/wwwlogs/*.log | sort | uniq -c | sort -nr | head -20
命令会把 User-Agent(用户代理标识,即爬虫自称的身份)做个统计,哪个 UA 请求次数最多,基本就是最需要屏蔽的对象。
第二步:备份当前 robots.txt。
修改前先去网站根目录(通常是 /www/wwwroot/你的站点域名/)下载一份现有 robots.txt,以防配置错误后能立即恢复。
编写 robots.txt 屏蔽垃圾爬虫规则
robots.txt 支持用 User-agent 指定爬虫名,用 Disallow 禁止抓取。
可以先屏蔽确定没用的垃圾爬虫。
比如要屏蔽常见的采集爬虫 AhrefsBot、SemrushBot,以及 AI 训练爬虫 GPTBot,规则这样写:
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: GPTBot
Disallow: /
如果垃圾爬虫太多,想用通配符屏蔽一组可疑 UA,可以这样写:
User-agent: *
Disallow: /*?spm=*
Disallow: /*.exe
规则含义是:禁止所有爬虫抓取带 spm 参数和 .exe 文件链接。
注意这些只会屏蔽某类链接,不会封锁整个站点。
保存文件后,先不要急着提交给搜索引擎。
很多爬虫会先看规则再抓取,建议让小部分规则先运行 24-48 小时,观察日志里这些 UA 的请求是否明显减少。
屏蔽之后如何验证收录恢复情况
配置生效后,至少需要等 1-2 周才能看到收录层面的变化。
日志验证:再次运行开头那条统计命令,看目标垃圾爬虫的请求数是否已经归零或大幅下降。
蜘蛛抓取验证:登录百度搜索资源平台,在“抓取诊断”或“抓取频次”里手动提交一条 URL,看百度蜘蛛能否正常抓取并返回 200 状态码。
收录量验证:使用 site:你的域名 命令在搜索引擎里查询,观察收录页数量是否停止下跌并缓慢回升。
收录量变化较慢,建议每周记录一次数据对比。
常见的坑和一些提醒
- 不要屏蔽所有未识别的 UA。部分正常搜索引擎会使用新 UA,若一刀切全部屏蔽,反而会把真正的搜索蜘蛛挡在门外。
- robots.txt 无法阻止恶意爬虫。像扫描器这类不守规矩的爬虫,根本不看 robots.txt。想彻底拦截,需要在防火墙或 CDN 层面封禁 IP 或 UA,宝塔面板可以在“Nginx 防火墙”里配置 UA 拦截规则。
- 配置错误后及时回滚。如果屏蔽范围过大导致搜索引擎蜘蛛也无法抓取,请立即用备份文件恢复原配置,再细分屏蔽对象。
如果你正在处理 robots屏蔽无效垃圾爬虫恢复搜索引擎收录量,建议先按本文步骤确认垃圾爬虫身份,再分步写入规则,不要一次屏蔽过多对象。
等日志里垃圾流量明显下降后,持续观察两周收录数据,再用防火墙拦掉仍不守规矩的 IP。
这样操作下来,收录下滑的问题基本都能得到控制。