WordPress优化之Nginx一键拦截垃圾爬虫,减负服务器

自建WordPress博客一段时间发现:服务器日志天天刷屏,网站偶尔加载卡顿。排查日志得知:大量海外AI爬虫、采集工具、扫描机器人,24小时爬取网站,占用服务器带宽,还影响正规爬虫抓取时机。单纯靠robots屏蔽没用,恶意爬虫基本无视规则。

分享自用简易Nginx拦截代码,不影响正常搜索引擎收录、不误拦正常访客,一键屏蔽无用爬虫,新手直接复制使用即可。


一、拦截垃圾爬虫,对网站有什么好处?

  1. 加快搜索引擎收录:释放抓取名额,优先抓取本站原创文章
  2. 服务器更流畅:减少无效访问,降低CPU、带宽占用,网站打开更快
  3. 保护原创文章:阻止AI爬虫直接扒取文章训练模型,守住站内流量
  4. 过滤虚假流量:屏蔽刷量脚本,后台访客数据更真实
  5. 减少攻击探测:拦截全网扫描工具,降低网站被探测攻击风险

二、哪些爬虫可以放心屏蔽?(国内站点无用)

下面这些爬虫,不会给国内博客带来访客,放心拦截即可:

  • 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: /

修改完成重新加载配置生效:

  1. 打开网站Nginx配置文件,粘贴上方拦截代码
  2. 终端执行命令校验+生效:
nginx -t
systemctl reload nginx
  1. 查看日志出现大量403,即为拦截成功

常见疑问:

1、会不会拦截百度爬虫?

不会,代码专门放行百度、搜狗、头条正规爬虫,收录完全不受影响。

2、会不会影响网站自动发文、后台任务?

不会,WordPress自带定时访问不会被拦截,网站功能全部正常。

3、之前robots屏蔽还有用吗?

用处很小,恶意爬虫大多无视robots,依靠Nginx拦截最靠谱。

写在最后

做国内中文博客不用放任海外爬虫抓取,简单添加两行Nginx规则,就能减少服务器压力、加快百度收录,零成本优化网站,新手直接照搬配置即可。我也是经过两周的测试使用,觉得这样配置还不错。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress