Simple CAPTCHA with Cloudflare Turnstile

How can we help?

Search the documentation or ask the AI agent anything about the plugin.

The Turnstile widget is not appearing

Updated September 13, 2026

If a form shows no Turnstile widget, work through these in order. The first three account for the great majority of cases.

1. Has the API test passed?

The plugin does not load any form integration until TEST RESPONSE on Settings › Cloudflare Turnstile has succeeded. If it has not, no widget appears anywhere and WordPress shows an admin notice saying Turnstile is not currently showing on your forms.

Run the test. If the widget does not appear next to the button either, your site key is wrong or the hostname in your Cloudflare widget configuration does not match this domain. See Test the API response.

2. Are you whitelisted?

Whitelisted visitors see no widget — that is what whitelisting does. If Logged In Users is ticked and you are testing as an administrator, you will never see it. Check the form in a private window instead, and review your IP and user agent lists.

3. Is a caching or optimisation plugin interfering?

Delaying, combining or lazy-loading the Turnstile scripts stops the widget rendering. Clear all caches and test again; if it appears with optimisation off, that is your answer. See Caching and optimisation plugins.

4. Is the form actually enabled?

Open the relevant panel under Enable Turnstile on your forms and confirm the specific form is ticked and saved. Check too whether the form’s ID appears in a Disabled Form IDs box, or whether a Guest Checkout Only option is hiding it from you because you are logged in.

5. Elementor popups and cached elements

If the form is inside an Elementor popup or a global template, set Load Scripts to All pages in the Elementor panel, and turn off Elementor’s element caching for that form. Autodetection cannot see forms that only exist inside popups.

6. Page builder checkouts

On a Divi or similar builder-built WooCommerce checkout, the template can be rendered several times per page. The plugin places the widget on the real form only. If the position you chose in Widget Location does not exist on your checkout, it falls back above the Place Order button — so look there before assuming it is missing.

Still nothing?

Enable debug logging on the Analytics tab, submit the form, and look at what was recorded. Then post on the WordPress.org support forum with the log, the form plugin and version, and whether the API test passes.

Related

Was this article helpful?