Joomla 5 & 6 CAPTCHA: reCAPTCHA, Turnstile and Built-in Proof-of-Work

recaptcha3

Written by

in

Short answer: Joomla 5 has no CAPTCHA in core, because the Google reCAPTCHA plugins were removed in Joomla 5. You either install a CAPTCHA extension (reCAPTCHA, hCaptcha, Cloudflare Turnstile or a self-hosted option) or upgrade to Joomla 6.1 or later, which includes a built-in, privacy-friendly Proof-of-Work CAPTCHA based on ALTCHA. In every case, you then set it as the Default Captcha in Global Configuration and switch it on for the forms you want to protect.

What changed with CAPTCHA in Joomla 5 and 6

Joomla versionCAPTCHA in coreWhat to do
Joomla 4Captcha – reCAPTCHA (v2) and Invisible reCAPTCHA pluginsPlan the move: these plugins are gone in Joomla 5
Joomla 5.xNone (reCAPTCHA plugins removed)Install a CAPTCHA extension from the JED
Joomla 6.0NoneInstall a CAPTCHA extension, or update to 6.1+
Joomla 6.1+Proof-of-Work CAPTCHA (ALTCHA-based, no API key)Enable the core plugin and set it as the default

Sources: Joomla Community Magazine, January 2026 and the Joomla 6.1 pull request that added the plugin.

Choose a CAPTCHA: the options compared

OptionHow it worksPrivacy (EU/GDPR)AccessibilitySetup
Joomla 6.1 Proof-of-Work (core)Browser solves a small task in the backgroundSelf-hosted, no third partyGood: nothing for the visitor to solveEnable the plugin; no keys
Google reCAPTCHA v2 / v3 (extension)Checkbox/images (v2) or a background score (v3)Data goes to Google: needs privacy-policy and consent reviewv2 image challenges can be hard; v3 is invisibleSite + secret key from Google
hCaptcha (extension)Checkbox/challenge or invisible modeThird-party service: review its termsChallenges can be hard; accessibility options existSite + secret key
Cloudflare Turnstile (extension)Mostly non-interactive checkThird-party service: review its termsUsually no challengeSite + secret key
Honeypot / anti-spam extensionsHidden fields and timing checksSelf-hostedNo visitor interactionInstall and configure

How to set up CAPTCHA in Joomla 6.1+ (core Proof-of-Work)

  1. Go to System → Manage → Plugins and search for “captcha”.
  2. Open the Proof-of-Work captcha plugin, set Status: Enabled, review its options and save.
  3. Go to System → Global Configuration → Site and set Default Captcha to the Proof-of-Work plugin.
  4. Check each component that has its own CAPTCHA setting (for example Users → Options → User Options for registration, and Contacts → Options → Form) so it uses the default.
  5. Log out and submit the registration and contact forms as a guest to confirm it works.

How to set up CAPTCHA in Joomla 5 (extension)

  1. Pick a maintained CAPTCHA extension from the Joomla Extensions Directory that lists Joomla 5 (and 6, if you plan to upgrade) compatibility.
  2. Install it via System → Install → Extensions and enable its plugin.
  3. If the service needs keys (reCAPTCHA, hCaptcha, Turnstile), create a site key and secret key for your exact domain(s) and paste them into the plugin.
  4. Set it as Default Captcha in Global Configuration, then check the per-component settings as above.
  5. Test as a guest, on mobile and with your page cache enabled.

Where Joomla uses CAPTCHA

  • User registration, login (if the extension supports it), password and username reminders
  • Contact forms (com_contact)
  • Third-party forms and comments that support Joomla’s captcha plugin event (RSForm, Convert Forms, comments extensions and others): check each extension’s settings

Troubleshooting: CAPTCHA not showing or always failing

SymptomLikely causeFix
Nothing appears on the formPlugin disabled, or Default Captcha is “None”Enable the plugin and set it in Global Configuration
Works on registration but not contactComponent-level CAPTCHA set to “None”Check Contacts → Options
“Invalid domain” or key errorsKeys created for another domain or environmentCreate keys for the live domain (and staging separately)
Fails only for guests on cached pagesPage cache serves an old token or scriptExclude form pages from System – Page Cache
Script missing after optimisationJS combine/defer plugin breaks the CAPTCHA scriptExclude the CAPTCHA script from optimisation
Old reCAPTCHA plugin after upgrade to 5/6Legacy plugin no longer maintained in coreReplace it with a maintained extension or the 6.1 core plugin

CAPTCHA, privacy and accessibility

If you serve visitors in the EU, UK or Switzerland, a third-party CAPTCHA can transfer personal data (IP address, browser data) to the provider. List it in your privacy policy and check with your consent setup whether it must wait for consent. A self-hosted option avoids most of this.

For accessibility, avoid image puzzles where you can. WCAG 2.2 criterion 3.3.8 (Accessible Authentication) requires an alternative to cognitive tests on login, which matters under the European Accessibility Act. See our guide on Joomla and the European Accessibility Act.

Related guides

Frequently asked questions

Does Joomla 5 have a built-in CAPTCHA?

No. The Google reCAPTCHA plugins were removed from core in Joomla 5, so a clean Joomla 5 install has no CAPTCHA plugin. Install a CAPTCHA extension from the Joomla Extensions Directory (JED), or upgrade to Joomla 6.1+, which ships a built-in Proof-of-Work CAPTCHA.

What is the Joomla 6.1 Proof-of-Work CAPTCHA?

It is a core captcha plugin based on the open-source ALTCHA library. The visitor’s browser solves a small computational task in the background, so there is no image puzzle, no external service and no API key. That makes it privacy-friendly (useful for GDPR) and accessible.

Can I still use Google reCAPTCHA on Joomla 5 or 6?

Yes, through a third-party extension from the JED. If an old core reCAPTCHA plugin survived an upgrade, replace it with a maintained extension, because it is no longer part of core and will not get core updates.

Which CAPTCHA is best for GDPR in the EU?

A self-hosted option such as the Joomla 6.1 Proof-of-Work CAPTCHA avoids sending visitor data to a third party. If you use reCAPTCHA, hCaptcha or Turnstile, mention it in your privacy policy and check whether your cookie-consent setup must block it until consent.

Why is my Joomla CAPTCHA not showing?

The usual causes: the plugin is not enabled, Global Configuration → Default Captcha is still “None”, the form or component has its own CAPTCHA setting overriding the default, the site/secret keys belong to another domain, or a page-cache or JavaScript optimiser is stripping the script.

Do CAPTCHAs affect accessibility?

They can. Image or puzzle CAPTCHAs can block people with disabilities, and WCAG 2.2 success criterion 3.3.8 (Accessible Authentication) says login must not depend on a cognitive test without an alternative. Invisible and proof-of-work methods are the most accessible choices.