自建WordPress博客一段时间发现:服务器日志天天刷屏,网站偶尔加载卡顿。排查日志得知:大量海外AI爬虫、采集工具、扫描机器人,24小时爬取网站,占用服务器带宽,还影响正规爬虫抓取时机。单纯靠robots屏蔽没用,恶意爬虫基本无视规则。
分享自用简易Nginx拦截代码,不影响正常搜索引擎收录、不误拦正常访客,一键屏蔽无用爬虫,新手直接复制使用即可。
一、拦截垃圾爬虫,对网站有什么好处?
- 加快搜索引擎收录:释放抓取名额,优先抓取本站原创文章
- 服务器更流畅:减少无效访问,降低CPU、带宽占用,网站打开更快
- 保护原创文章:阻止AI爬虫直接扒取文章训练模型,守住站内流量
- 过滤虚假流量:屏蔽刷量脚本,后台访客数据更真实
- 减少攻击探测:拦截全网扫描工具,降低网站被探测攻击风险
二、哪些爬虫可以放心屏蔽?(国内站点无用)
下面这些爬虫,不会给国内博客带来访客,放心拦截即可:
- AI爬虫:GPTBot、Claude、ChatGPT采集机器人
- 海外采集爬虫:Semrush、Yandex、亚马逊爬虫
- 安全测绘、端口扫描工具
- 脸书、海外归档爬虫
- 极简pc、空UA刷量垃圾访问
那么如何操作?由于使用Nginx所以我就以它为例:
简易Nginx拦截代码(直接复制)
适配宝塔、原生Nginx,粘贴到网站配置server{}内,不误拦百度/必应/谷哥等搜索引擎爬取。
# 一键屏蔽所有垃圾爬虫、恶意访问
if ($http_user_agent ~* "(DotBot|Amazonbot|ClaudeBot|SemrushBot|YandexBot|GPTBot|CCBot|anthropic-ai|^pc$)") {
return 403;
}
# 拦截空白UA恶意扫描
if ($http_user_agent = "") {
return 403;
}
配套robots简易屏蔽(双重防护)
网站根目录robots.txt添加,合规屏蔽爬虫,不影响SEO:
# 屏蔽海外无用爬虫
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: YandexBot
Disallow: /
# 放行国内搜索引擎
User-agent: Baiduspider
Allow: /
User-agent: Sogouspider
Allow: /
User-agent: ToutiaoSpider
Allow: /
修改完成重新加载配置生效:
- 打开网站Nginx配置文件,粘贴上方拦截代码
- 终端执行命令校验+生效:
nginx -t
systemctl reload nginx
- 查看日志出现大量403,即为拦截成功
常见疑问:
1、会不会拦截百度爬虫?
不会,代码专门放行百度、搜狗、头条正规爬虫,收录完全不受影响。
2、会不会影响网站自动发文、后台任务?
不会,WordPress自带定时访问不会被拦截,网站功能全部正常。
3、之前robots屏蔽还有用吗?
用处很小,恶意爬虫大多无视robots,依靠Nginx拦截最靠谱。
写在最后
做国内中文博客不用放任海外爬虫抓取,简单添加两行Nginx规则,就能减少服务器压力、加快百度收录,零成本优化网站,新手直接照搬配置即可。我也是经过两周的测试使用,觉得这样配置还不错。