如何利用 Cloudflare 保护 WordPress 站点免受恶意机器人流量侵扰

如何利用 Cloudflare 保护 WordPress 站点免受恶意机器人流量侵扰

如今的网络比以往任何时候都要繁忙,访问者不仅包括真实用户,还有日益增多的自动化机器人、网络爬虫和 AI 工具,它们持续扫描网站以获取内容和数据。

虽然有些机器人是有益的,例如帮助索引内容的搜索引擎爬虫,但其他机器人会迅速推高流量指标,扭曲分析数据,甚至导致不必要的主机资源超额使用。

本文将介绍如何使用 Cloudflare 的免费安全工具,例如 Bot Fight Mode、JavaScript 和托管质询,以及其他 Cloudflare 设置,来帮助你减少不必要的机器人流量,保护 WordPress 站点,并确保主机资源留给真实访客。

为机器人防护配置 Cloudflare

你无需高级账户或复杂配置即可通过 Cloudflare 阻止恶意机器人流量。免费的 Cloudflare 计划提供了多项强大的功能,可以带来显著效果。

下面来看具体操作。

将站点连接到 Cloudflare

如果你在 Kinsta 托管 WordPress 站点,那么你已经受益于强大的 Cloudflare 集成,包括企业级性能和全球 CDN。不过,要使用高级安全工具,你需要连接自己的 Cloudflare 账户。

幸运的是,这个过程快速且直接。我们提供了详细的、循序渐进的教程,指导你完成从添加域名到配置 DNS 记录 和域名服务器的整个过程。请按照以下指南连接站点:

👉 如何在 WordPress 站点上安装和配置 Cloudflare

一旦域名在 Cloudflare 上连接并激活,你就可以启用相关功能来保护站点免受不必要的机器人和爬虫流量侵扰,同时不影响真实访客。

启用 Bot Fight Mode

当站点连接到 Cloudflare 后,开始过滤掉不需要的自动化流量最快速、最有效的方法之一就是启用 Bot Fight Mode

这个免费的 Cloudflare 功能有助于检测和缓解可能爬取、抓取或使网站过载的已知机器人,即使它们试图伪装成人类访客。

要开启 Bot Fight Mode,请按以下步骤操作:

  1. 在左侧菜单中,进入 Security > Settings
  2. Filter by 部分下,选择 Bot traffic
  3. 找到 Bot fight mode 并将其切换为开启状态。

显示 Bot Fight Mode 配置选项的 Cloudflare 仪表板截图,用于增强安全性。

Cloudflare 仪表板中显示 Bot Fight Mode 选项。

激活后,你可以在 MyKinsta 分析 中监控效果,因为 Cloudflare 会在更多非人工请求到达站点之前将其过滤掉,访问量计数会开始下降。

如果你使用的是付费版 Cloudflare 计划,你将可以使用 Super Bot Fight Mode,这是 Bot Fight Mode 的增强版本,具有更高的灵活性。它基于相同技术构建,但允许你选择如何处理不同类型的流量,启用 JavaScript 检测来捕获无头浏览器、隐秘爬虫和其他恶意流量。

例如,你可以配置该工具仅拦截“确定是自动化的流量”,并允许“已验证的机器人”(如搜索引擎爬虫),而不是拦截所有爬虫:

显示机器人保护设置和分析的 Cloudflare Super Bot Fight Mode 仪表板。

Cloudflare 的 Super Bot Fight Mode。

设置 JavaScript 和托管质询

即使启用了 Bot Fight Mode,一些自动化爬虫或 AI 工具仍可能溜进来,尤其是那些模仿正常浏览行为的工具。

Cloudflare 的 安全规则 允许你以质询的形式应用额外的保护,在授予访问权限前验证访客是否为人类。

你可以对整个站点应用 JS 质询,但对于大多数 WordPress 站点,最好针对特定路径使用,例如:

  • /wp-login.php (WordPress 登录页面)
  • /xmlrpc.php (常见的机器人目标)
  • /wp-admin/ (管理区域)

要添加 JavaScript 或托管质询规则:

  • 导航至 Security > Security Rules
  • 点击 Create rule > Custom rules
  • 输入 Rule name (例如,JS Challenge for wp-login)。
  • When incoming requests match 下,配置:
    • Field: URI Path
    • Operator: contains
    • Value: /wp-login.php

Cloudflare 中用于管理和过滤网络流量的自定义规则设置界面。

Cloudflare 中的自定义规则设置。

你可以根据需要点击 Edit expression 添加更多条件,然后添加如下表达式:

(http.host in {"example.com" "www.example.com"} and
 starts_with(http.request.uri.path, "/wp-admin") and
 not cf.client.bot and
 not http.request.uri.path contains "/wp-admin/admin-ajax.php")

上面的示例针对 /wp-admin 区域,跳过已验证的机器人,并排除 WordPress 插件使用的 AJAX 端点。

Then take action 下,选择以下操作之一:

  • JavaScript Challenge – 对每个访客运行浏览器测试。
  • Managed Challenge – 让 Cloudflare 的 AI 根据行为和风险级别决定何时发起质询。

最后,点击 Deploy 以激活规则。如果你想先进行测试,请选择 Save as Draft

监控效果

启用 Bot Fight Mode 或设置好自己的 Cloudflare 规则后,重要的是确认更改是否生效,以及那些推高访问量的自动化流量是否被有效过滤。

Cloudflare 和 MyKinsta 都提供了分析工具,让你可以衡量其影响。下面来看如何结合使用它们。

查看 Cloudflare 的安全分析

在 Cloudflare 仪表板中,进入 Security > Analytics > Bot Analysis

显示机器人流量统计和活动趋势的 Cloudflare Bot Analytics 仪表板。

Cloudflare Bot Analysis 面板。

此视图清晰地展示了站点总流量中有多少是由人类产生,多少是由机器人产生。

Cloudflare 根据模式、机器学习和行为信号为每个传入请求分配一个机器人分数。这些分数被分组为以下流量类型:

  • Automated – 明确为非人类的机器人。
  • Likely automated – 可疑的、类似机器人的请求 (例如,无头浏览器或 AI 爬虫)。
  • Likely human – 使用真实浏览器的正常访客。
  • Verified bot – 合法的机器人 (如 Googlebot 或 PayPal)。

Bot Analysis 图表会实时显示这些类别。你可以使用过滤器(按国家/地区、IP 地址、浏览器或操作系统)来识别大部分自动化流量的来源。

显示过滤后流量分析和安全洞察的 Cloudflare 分析界面。

过滤流量分析。

查看 MyKinsta 分析

接下来,打开你的 MyKinsta 仪表板 > Analytics > Visits 报告。

MyKinsta 中显示流量趋势和使用洞察的访问量分析视图。

MyKinsta 中的访问量分析视图。

由于 Kinsta 根据每天看到的唯一 IP 地址来 衡量访问量(而非像 Google Analytics 那样使用 JavaScript 跟踪),因此它能准确反映到达站点的所有流量,包括那些绕过其他过滤器的机器人。

在 Cloudflare 开始拦截自动化请求后,你应该会注意到总访问量下降(因为机器人无法再到达源站)。

如果仍然看到流量激增,请查看 Top RequestsTop Client IPs 报告,以识别任何被重复请求的 URL 或 IP 地址。这些很可能需要新的 Cloudflare 质询或国家/地区屏蔽。

MyKinsta 分析中显示的前几位客户端 IP 地址,用于监控站点流量来源。

MyKinsta 分析中显示的前几位客户端 IP 地址。

总结

管理不需要的机器人流量已成为运营现代网站的一部分。借助 Cloudflare 的免费工具,你可以在自动化爬虫和抓取器影响性能或推高主机使用量之前,快速将其过滤掉。

对于 Kinsta 客户而言,将这些 Cloudflare 保护措施与主机设置结合使用,有助于让分析数据准确反映真实访客,并保持资源使用的稳定性。如果你希望获得更高的可预测性,Kinsta 新推出的 基于带宽的方案 提供了 基于访问量的定价 之外的另一种选择。

Cloudflare 和 Kinsta 共同为你提供了可见性和控制力,让你能够专注于内容和用户,而不是疲于应对机器人。

ESC 关闭