Google reCAPTCHA V3子域名站点异常:无图标且表单无法提交求助
检查reCAPTCHA密钥的隐性域名绑定问题
即便你已经添加了子域名,Google reCAPTCHA对通配符的解析可能存在延迟,或者你漏加了子域名的完整格式(比如带www的版本)。可以临时替换为Google官方测试密钥6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI,如果测试密钥能正常加载图标,说明是正式密钥的域名绑定问题,需要在Google后台重新确认子域名的添加状态。排查Cookie域隔离问题
WordPress的COOKIE_DOMAIN常量如果设置为主域名,会导致子域名无法读取reCAPTCHA依赖的Google Cookie。打开wp-config.php,添加或修改:define('COOKIE_DOMAIN', '');空值会让WordPress自动适配当前访问的域名,测试是否能加载reCAPTCHA。
强制手动加载reCAPTCHA脚本
迁移后可能存在脚本加载优先级或异步冲突,导致CF7的reCAPTCHA脚本未被正确加载。在主题的functions.php中添加以下代码,强制加载官方脚本:add_action('wp_enqueue_scripts', function() { $site_key = get_option('wpcf7_recaptcha_site_key'); if ($site_key) { wp_enqueue_script('google-recaptcha', 'https://www.google.com/recaptcha/api.js?render=' . $site_key, array(), null, true); } });同时打开浏览器控制台的网络面板,确认
api.js是否返回200状态码。调整HTTP Referrer Policy
服务器如果设置了严格的Referrer-Policy,会导致Google无法验证请求来源。检查.htaccess(Apache)或Nginx配置,若存在Header set Referrer-Policy strict-origin-when-cross-origin,临时改为Header set Referrer-Policy origin;或者在主题header.php的<head>中添加:<meta name="referrer" content="origin">清理数据库中的序列化域名残留
即便你迁移时替换了域名,数据库中某些序列化字段(比如CF7的reCAPTCHA相关配置)可能残留主域名。执行SQL查询定位相关数据:SELECT * FROM wp_options WHERE option_value LIKE '%旧域名%' AND (option_name LIKE '%recaptcha%' OR option_name LIKE '%wpcf7%');找到后手动更新字段值,注意序列化数据的长度要匹配,或者用支持序列化替换的工具处理。
调整reCAPTCHA v3的验证阈值
新子域名可能因Google信任度低,所有请求被判定为垃圾。登录Google reCAPTCHA后台,将验证阈值从默认0.5调低至0.1,同时查看后台统计面板,确认是否有大量请求被拒绝。检查PHP open_basedir限制
部分服务器的open_basedir设置会阻止CF7调用远程资源。查看php.ini或服务器配置,若存在open_basedir规则,临时移除或添加Google API域名到允许列表,测试是否解决问题。
内容的提问来源于stack exchange,提问作者Catsy

