WP TOOLS

EP03. “防垃圾邮件设置:reCAPTCHA 与 Cloudflare”

首页 建站工具 Email · Contact Form 7
约 8 分钟·
🔒 登录后可标记已读

这篇笔记讲怎么给 Contact Form 7 加上 reCAPTCHA v2/v3 防垃圾邮件验证,以及进阶用 Cloudflare 页面规则单独保护联系表单页面。前置知识:先看过《表单搭建完整指南》,表单已经搭建好并放到页面上。

重点内容


reCAPTCHA v2 与 v3 的差异

reCAPTCHA v2reCAPTCHA v3
用户体验需要访客手动打勾「我不是机器人」,有时还要求做图片拼图验证;交互感强完全无感,不需要访客做任何操作,背景自动监测行为
判定方式通过/不通过的挑战式验证打分制,给每次访问打 0.0~1.0 的分数,分数越低越像机器人;站主自己设定分数门槛决定放行还是拦截
是否需要额外 shortcode需要在表单末尾加 [recaptcha] shortcode不需要额外 shortcode,全自动生效

💡 reCAPTCHA 后台有 Analytics 分析面板,可以看到发出过多少次验证挑战、通过率等数据,用来评估防护效果。


📌 当前版本现状

  • Contact Form 7 5.1 版本起,已经拿掉了对 reCAPTCHA v2 的内建支持,只内建支持 v3;表单模板里残留的 [recaptcha] 旧 shortcode 会被直接忽略(当作空字符串处理)
  • 如果确实需要 v2(比如客户坚持要看到打勾框),必须额外装第三方插件「ReCaptcha v2 for Contact Form 7」(IQComputing 出品)才能补回 v2 功能和 [recaptcha] shortcode,这是「装额外插件补回来的」,不是 Contact Form 7 核心自带
  • 建议:新项目没有特殊理由,直接用内建的 v3 即可,体验更好也不用额外装插件

设置步骤(v3,Contact Form 7 内建)

  1. 后台进入表单编辑页 → Integration Tab(Integrations)
  2. 除了 reCAPTCHA,这个 Tab 也能看到 Akismet 这类反垃圾邮件整合选项,按需要一起启用
  3. 点 reCAPTCHA 的 "Setup Integration",会给一个跳转链接,在新分页打开 Google reCAPTCHA 后台(需要登录 Google 账号,第一次要先注册)
  4. 在 Google reCAPTCHA 后台点「+」注册新站点,填写:
    • Label:自己取一个方便识别的名字
    • reCAPTCHA Type:选 v3(Contact Form 7 支持的版本)
    • Domains:根域名的话,non-www 和 www 两个版本都要加;如果用子域名,只加子域名,域名不要带 https:// 或路径
    • Owners:默认会带入当前 Google 账号邮箱,可按需再加其他人
  5. 勾选服务条款 → Submit,会拿到一组 Site KeySecret Key

[截图:Google reCAPTCHA 后台注册新站点成功后显示的 Site Key 与 Secret Key 页面]

  1. 回到 WordPress 后台 → Contact → Integration,把 Site Key 和 Secret Key 分别贴进对应输入框 → Save Changes
  2. 设置成功后,前台表单页面右下角会出现「protected by reCAPTCHA」的标记,代表已生效

[截图:设置成功后前台联系表单页面右下角出现的「protected by reCAPTCHA」标记]


设置步骤(v2,需额外装插件)

  1. 安装并启用第三方插件「ReCaptcha v2 for Contact Form 7」(Plugins → Add New → 搜索安装)
  2. 到该插件的设置页,把 reCAPTCHA V2 设为默认选项(default option)
  3. 跟 v3 一样,去 Google reCAPTCHA 后台注册新站点,这次 reCAPTCHA Type 选 v2(Checkbox),其他步骤(域名、Owners、拿 Site Key/Secret Key)流程相同
  4. 回到 WordPress 后台 → Contact 表单设置页,把 Site Key、Secret Key 贴到该插件提供的 Integration 输入框,Save Changes
  5. v2 比 v3 多一步:需要手动在表单末尾加上 [recaptcha] shortcode,v3 则不需要这一步
  6. 保存后前台表单会出现 Google 的「我不是机器人」打勾框

Cloudflare 页面规则保护联系表单(可选,进阶)

如果网站本身有接 Cloudflare,可以针对联系表单页面单独设一条 Page Rule 加强防护:

  • URL Matches*your-domain.com/your-contact-page/*(只锁定联系表单所在页面,不影响站内其他页面)
  • Browser Integrity Check:开启(分析 HTTP 请求头,拦截爬虫/垃圾邮件程序常见的请求头特征)
  • Security Level:设为 High(近两周内有恶意行为记录的访客会被挑战验证)

💡 这样设置的好处是只针对联系表单页面加严,站内其他「只读」页面不受影响,不会无谓拖慢一般访客的体验。

常见误区

  • ❌ 以为装了 Contact Form 7 就自动有 v2 打勾框——5.1 版本后核心只内建 v3,v2 需要额外装第三方插件才能用
  • ❌ 用 v2 时忘记在表单末尾手动加 [recaptcha] shortcode——v2 需要这一步,v3 不需要,两者操作流程不完全一样
  • ❌ Google reCAPTCHA 后台注册域名时带上 https:// 或路径——Domains 字段只填纯域名,不要带协议前缀或路径
  • ❌ 整站都套用严格的 Cloudflare Security Level——只针对联系表单页面设 Page Rule 加严,避免拖慢站内其他只读页面的访客体验
  • 💡 reCAPTCHA v3 的分数门槛可以自己调整,被误判拦截太多正常访客时,适度调低门槛能改善体验

Sources

YouTube:

  1. Contact Form 7 Full Tutorial (Forms, Email, Flamingo, ReCAPTCHA)
  2. Contact Form 7 ReCAPTCHA V2 And V3 Setup Tutorial

Blog / Website:

  1. 如何为WordPress网站配置Contact Form 7(WBOLT_COM)