Simple CAPTCHA with Cloudflare Turnstile

How can we help?

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

Customise the error messages

Updated September 13, 2026

Two separate messages can be customised, in the Custom Messages section of the Advanced Settings panel on Settings › Cloudflare Turnstile. They fire in different circumstances and it is worth being clear which is which.

Custom Error Message

Shown by the form when a submission is rejected because the Turnstile check did not pass — usually because the visitor submitted without completing the challenge, or the token had already been used or expired. It appears wherever the form plugin normally shows validation errors.

Leave the field blank to use the translated default, “Please verify that you are human.” Write your own if you want something friendlier or want to point people at a contact route.

Extra Failure Message

A different thing entirely. Turn on Extra Failure Message to display a message directly beneath the widget when the widget itself reports a failure — the state where Turnstile shows “Failure!” in the box rather than a tick. This happens in browsers that block the challenge, on heavily filtered networks, and very occasionally to a legitimate visitor Cloudflare cannot score confidently.

This message accepts HTML, so you can include a link. It is the right place to give instructions, for example asking the visitor to disable a privacy extension or offering another way to get in touch:

Failed to verify you are human. Please try disabling any ad blocker, or <a href="/contact/">contact us</a> and we will help.

Leave the option off if you would rather not draw attention to the widget. The default text is used if you enable it but leave the box empty.

What cannot be changed

The text inside the widget itself — the “Success!”, “Failure!” and verifying states — is rendered by Cloudflare, not by WordPress, and cannot be edited. You can change the widget’s language, which changes that wording to the translated equivalent, but not the strings themselves.

Translations

Both default messages go through the plugin’s text domain, so they appear in the site’s language where a translation exists. If you type your own text it is used exactly as written, in every language — so on a multilingual site, either leave the defaults in place or run your custom strings through your translation plugin.

Related

Was this article helpful?