{"id":3023,"date":"2025-12-27T20:58:18","date_gmt":"2025-12-27T20:58:18","guid":{"rendered":"https:\/\/www.swiftcommerce.io\/help\/?post_type=docs&#038;p=3023"},"modified":"2026-11-07T11:46:24","modified_gmt":"2026-11-07T11:46:24","password":"","slug":"recaptcha","status":"publish","type":"docs","link":"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/","title":{"rendered":"reCAPTCHA"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Protect selected WordPress and WooCommerce forms from automated submissions. Free supports Google reCAPTCHA; Pro adds Cloudflare Turnstile and hCaptcha, more protected forms, exemptions, and optional verification analytics.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Set up protection<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"650\" src=\"https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-8.jpeg\" alt=\"reCAPTCHA setup screen showing provider selection and protection sections\" class=\"wp-image-3356\" srcset=\"https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-8.jpeg 950w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-8-300x205.jpeg 300w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-8-767x525.jpeg 767w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-8-360x246.jpeg 360w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable reCAPTCHA in Swift Commerce \u2192 Security &amp; Privacy \u2192 reCAPTCHA.<\/li>\n\n\n\n<li>In <strong>Setup<\/strong>, choose a CAPTCHA Provider. Register the exact site domain with that provider and copy its site and secret keys into the matching fields. Keep secret keys private.<\/li>\n\n\n\n<li>Open <strong>Protection<\/strong> and select the forms to protect. Save Changes, then test each selected form while signed out.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Setup: provider and keys<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Google reCAPTCHA (Free)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose <strong>v2<\/strong> for a checkbox or invisible challenge, or <strong>v3<\/strong> for a background score. Each version requires keys created for that same version. v3 includes a score threshold: lower values are more permissive; raise it if unwanted submissions pass, or lower it if legitimate submissions fail. Choose whether to show the v3 badge or display Google attribution beside protected forms when hidden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Turnstile or hCaptcha (Pro)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose Cloudflare Turnstile or hCaptcha, enter that provider\u2019s site and secret keys, then choose the supported widget mode. Turnstile offers always visible, execute, or interaction-only modes. hCaptcha offers visible checkbox or invisible mode. Keys from one provider cannot be used for another.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Protection: forms and exceptions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Select the forms that need CAPTCHA: <strong>WordPress Login, WordPress Registration, Lost Password, WooCommerce Login, WooCommerce Registration, Checkout Page,<\/strong> and <strong>Comment Forms<\/strong>. Pro also offers <strong>Add Payment Method<\/strong> and <strong>Product Reviews<\/strong>. WooCommerce surfaces only apply when WooCommerce and the relevant form are available.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pro adds <strong>Widget appearance<\/strong> (light\/dark theme and normal\/compact size for supported widgets), an <strong>IP whitelist<\/strong> (one IP address, CIDR range or supported start\u2013end range per line), and <strong>Role bypass<\/strong>. Role bypass affects logged-in users only; it does not exempt anonymous visitors at login or registration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Analytics (Pro)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In Protection \u2192 <strong>Verification analytics<\/strong>, turn on collection if you need reporting; it is off by default. The dashboard stores IP addresses as one-way fingerprints and does not store browser user-agent strings. Set retention to 1\u2013365 days; a scheduled cleanup removes expired records. The <strong>Analytics<\/strong> tab shows daily results, results by form, clients with failed checks, and recent failures. When collection is off or there are no checks, the report shows an explicit empty state.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Test and troubleshoot<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use a private browser window to submit each protected form. Verify that the chosen provider loads and a legitimate submission completes.<\/li>\n\n\n\n<li>If a widget does not load, confirm the site domain, provider, version, and matching site\/secret keys. Check for script blocking or caching on the protected page.<\/li>\n\n\n\n<li>If legitimate traffic is blocked by v3, review the threshold and analytics before changing it. If a whitelisted IP or exempt role bypasses a check, confirm that the exception is intentional.<\/li>\n\n\n\n<li>After switching providers, re-test all selected forms; each provider uses different keys and widget behavior.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Free and Pro<\/h2>\n\n\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Free:<\/strong> Google reCAPTCHA v2\/v3 and the seven core forms. <strong>Pro:<\/strong> Turnstile, hCaptcha, two additional WooCommerce forms, widget appearance, IP and role exceptions, and optional verification analytics.<\/p>\n\n\n\n\n\n\n\n<h2 id=\"captcha-questions\" class=\"wp-block-heading\">Questions about protection and account access<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does CAPTCHA also verify a customer&#8217;s email address?<\/strong> No. A CAPTCHA checks a form submission; it does not confirm access to an inbox or approve an account. Configure <a href=\"https:\/\/www.swiftcommerce.io\/help\/customization\/registration-access\/\">Registration &amp; Access<\/a> separately if new accounts must verify their email or wait for a review.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can I choose a different provider for each form?<\/strong> No. The selected provider is shared by the forms enabled in Protection. Changing providers requires the new provider&#8217;s matching keys and a fresh test of every selected form.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does role bypass exempt a customer before they log in?<\/strong> No. Role checks apply only to an already signed-in user. An IP whitelist can bypass verification regardless of the visitor&#8217;s role, so test from an address outside your whitelist when checking login or registration protection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does a passed check mean the visitor is definitely human?<\/strong> No. It records the outcome of the provider&#8217;s verification. Analytics are not proof of a person&#8217;s identity, a successful purchase or inbox ownership.<\/p>\n\n\n\n<h2 id=\"captcha-tutorials\" class=\"wp-block-heading\">Follow a form-specific tutorial<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For the WordPress login screen, follow the <a href=\"https:\/\/swiftcommerce.io\/how-to-add-recaptcha-to-wordpress-admin-login-page\/\">Google reCAPTCHA login guide<\/a>, <a href=\"https:\/\/swiftcommerce.io\/add-cloudflare-turnstile-wordpress-admin-login-page\/\">Turnstile login guide<\/a> or <a href=\"https:\/\/swiftcommerce.io\/add-hcaptcha-wordpress-admin-login-page\/\">hCaptcha login guide<\/a>. To protect the customer signup form on My Account, use the <a href=\"https:\/\/swiftcommerce.io\/add-cloudflare-turnstile-woocommerce-registration-form\/\">Turnstile WooCommerce registration guide<\/a>.<\/p>\n\n\n\n<script type=\"application\/ld+json\" data-swift-commerce-documentation-schema=\"1\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/#article\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/\",\"headline\":\"reCAPTCHA\",\"description\":\"Configure Google reCAPTCHA for WordPress and WooCommerce forms. Set up Pro Turnstile or hCaptcha, trusted exceptions and verification analytics.\",\"inLanguage\":\"en\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/#webpage\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Swift Commerce\",\"url\":\"https:\/\/swiftcommerce.io\/\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/#webpage\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/\",\"name\":\"reCAPTCHA\",\"description\":\"Configure Google reCAPTCHA for WordPress and WooCommerce forms. Set up Pro Turnstile or hCaptcha, trusted exceptions and verification analytics.\",\"inLanguage\":\"en\",\"breadcrumb\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spam\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/docs-category\/spam\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"reCAPTCHA\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/recaptcha\/\"}]}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Configure Google reCAPTCHA for WordPress and WooCommerce forms. Set up Pro Turnstile or hCaptcha, trusted exceptions and verification analytics.<\/p>\n","protected":false},"author":101,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[78],"doc_tag":[],"class_list":["post-3023","docs","type-docs","status-publish","hentry","doc_category-spam"],"year_month":"2026-11","word_count":700,"total_views":"127","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Mansoor Ahmad","author_nicename":"helpadmin","author_url":"https:\/\/www.swiftcommerce.io\/help\/author\/helpadmin\/"},"doc_category_info":[{"term_name":"Spam","term_url":"https:\/\/www.swiftcommerce.io\/help\/docs-category\/spam\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/users\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/comments?post=3023"}],"version-history":[{"count":7,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3023\/revisions"}],"predecessor-version":[{"id":3406,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3023\/revisions\/3406"}],"wp:attachment":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/media?parent=3023"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_category?post=3023"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_tag?post=3023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}