Gravity Forms version: 3.1.0.2
reCAPTCHA Add-On version: 2.2.2
Hosting: SiteGround (Speed Optimizer)
I’ve added a CAPTCHA field (reCAPTCHA v2 Checkbox) to a form via the standard Form Editor. It saves correctly and is visible in the editor on reload, but it never appears in the actual front-end rendered HTML — no CAPTCHA container, no reCAPTCHA iframe, nothing. The form just goes straight from the last content field to Submit.
What I’ve already ruled out:
- Caching: purged both page-level (SG Optimizer dynamic/file cache) and object-level (Memcached) repeatedly; issue persists on fresh loads with cache-busting query strings.
- reCAPTCHA keys: confirmed valid and authorized for the domain. Manually called grecaptcha.render() with the site’s actual site key directly in the browser console on the live domain — it rendered fine, no domain-mismatch error from Google.
- Domain authorization: found and fixed a real issue where the domain in Google’s reCAPTCHA admin console only listed a subdomain. Added the root domain too. Didn’t fix this issue.
- reCAPTCHA type: confirmed the plugin’s Type setting (Checkbox) matches what’s registered in Google’s console (v2 Checkbox).
- Script enqueuing: this site embeds GF shortcodes inside ACF custom fields rather than native post_content, which caused GF to skip enqueueing front-end assets entirely (its detection scans post_content for the shortcode). Fixed with a custom snippet calling gravity_form_enqueue_scripts() after scanning raw ACF field values for the shortcode. After this fix, window.grecaptcha and the recaptcha api.js script now load correctly on the page — but the field/container itself is still never printed in the form’s HTML.
- Conditional logic: confirmed inactive on the CAPTCHA field.
- Script optimizers: confirmed Minify JS, Combine JS, and Defer Render-blocking JS are all disabled in SG Optimizer.
- Console errors: confirmed zero JS errors on a fresh page load.
One more relevant detail: this particular form shows a “This form uses Ready Classes, which will be removed in Gravity Forms 4.0” notice, and other forms on the same site show a full “legacy markup enabled” notice. Wondering if there’s a known incompatibility between legacy markup and the CAPTCHA field type that would cause it to be silently omitted from render?
Any ideas on what else could cause a saved CAPTCHA field to be completely absent from the front-end HTML output, despite the underlying script/keys/domain all being fine? Happy to share more debug output if useful. Thanks!
Backend:
Frontend:

