Customers see a “Please complete the reCAPTCHA” error
Updated September 13, 2026
“Please complete the reCAPTCHA to verify that you are not a robot.” is the message the plugin shows when a form is submitted without a valid reCAPTCHA token. When customers see it despite having ticked the box, the token was either missing, already used, or expired by the time the server checked it.
If you have set a Custom Failed Verification Message, your own wording appears instead, but the causes below are the same.
The customer used an express checkout button
This is the most common cause. PayPal, Apple Pay, Google Pay and Amazon Pay buttons submit the order without the customer ever reaching the main checkout form, so no token is produced.
WooPayments and Stripe express payments are detected and skipped automatically. For any other gateway that behaves this way, tick it under Payment Methods to Skip.
The token expired before submission
A reCAPTCHA token is valid for about two minutes. A customer who ticks the box and then spends longer filling in their address will have an expired token by the time they press the button.
Moving the widget lower down the form helps. Set Widget Location on Checkout to After Payment or Before Submit Button so the challenge is one of the last things the customer does.
A cached page served a stale widget
If your checkout or My Account page is being full-page cached, customers can receive a widget that was rendered for someone else, and its token will not verify. Exclude the checkout, cart and My Account pages from caching.
This usually shows up as an error that many customers hit at once, rather than an occasional one.
The widget was not reset after an earlier error
Each token can only be verified once. If the customer’s first attempt failed for an unrelated reason, such as a declined card, the same token cannot be reused on the second attempt.
The plugin resets the widget automatically when the checkout updates or returns an error. If it is not resetting, a JavaScript error elsewhere on the page is usually stopping that code from running. Check the browser console.
The server cannot reach Google
Verification is a server-side request from your site to Google. If outbound HTTPS is blocked by a firewall, every submission fails no matter what the customer does.
Re-run the Test API Response check on the settings page. If it fails there too, the problem is your server’s connection rather than anything on the checkout.


