Migre do reCAPTCHA para o CaptchaLa
Substituição plug-and-play em menos de 10 minutos. Mantenha seus formulários, troque o provedor de verificação. Funciona com HTML puro, WordPress, Flarum e qualquer backend.
Como fica a mudança de código
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></script><button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
.onSuccess(res => onToken(res.token))
.bindTo('#login-btn'));
</script>const res = await fetch('https://www.google.com/recaptcha/api/siteverify', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
secret: process.env.RECAPTCHA_SECRET,
response: req.body['g-recaptcha-response'],
}),
})
const data = await res.json()
if (!data.success) return res.status(400).json({ error: 'bot' })const res = await fetch('https://apiv1.captcha.la/v1/validate', {
method: 'POST',
headers: {
'X-App-Key': process.env.CAPTCHALA_APP_KEY,
'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })Passos da migração
- 1
Cadastre-se e pegue sua App Key + Secret
Crie uma conta gratuita no CaptchaLa, adicione um site e copie a App Key (pública) e o App Secret (lado do servidor). Sem cartão de crédito.
- 2
Troque a tag do widget no seu formulário
Substitua a div e o script do reCAPTCHA pelos equivalentes do CaptchaLa. A classe da tag muda de g-recaptcha para captchala, data-sitekey vira data-app-key e a URL do script aponta para o nosso CDN.
- 3
Atualize o nome do campo enviado pelo formulário
O reCAPTCHA injeta um campo oculto chamado g-recaptcha-response. O CaptchaLa usa captchala-token. Se o seu handler de formulário lê o campo pelo nome, renomeie a constante; caso contrário, o input oculto flui automaticamente.
- 4
Atualize a verificação no servidor
Aponte a requisição de verificação para apiv1.captcha.la/v1/validate com as credenciais do app nos headers (X-App-Key / X-App-Secret) e o pass_token em um corpo JSON. A resposta retorna a mesma flag valid (data.valid) que o reCAPTCHA, então seu código de ramificação existente permanece.
- 5
Faça o rollout gradualmente
A maioria das equipes coloca primeiro em um formulário (geralmente o de menor tráfego — cadastro de newsletter ou contato), observa a conversão e a taxa de desafio por algumas horas e então expande. Não há mínimo nem contrato, então o canary deployment é gratuito.
Mais rápido: use um plugin
WordPress + WooCommerce
Instale o plugin CaptchaLa do diretório do WordPress, cole sua App Key + Secret, e o plugin cuida de login, cadastro, comentários, checkout do WooCommerce e CF7/Gravity/WPForms num só lugar.
View integration →Flarum
Instale a extensão CaptchaLa via Composer, ative-a no admin, e ela cobre cadastro, login, redefinição de senha e respostas a posts.
View integration →Perguntas frequentes
Preciso migrar todos os formulários de uma vez?
Não. Os dois sistemas coexistem no mesmo site — eles não compartilham estado nem cookies. Migre um formulário de cada vez.
E os scores de risco do reCAPTCHA Enterprise? Os scores são transferidos?
Os scores não são transferidos (são internos do fornecedor), mas o CaptchaLa retorna seu próprio score de risco na resposta de verificação. A faixa numérica e a lógica de decisão estão documentadas; as equipes normalmente mapeiam o threshold de score existente (ex. 0,5) para o nosso em menos de uma hora.
Minha Verificação de Site do Google ou outras integrações do Google vão quebrar?
Não. O reCAPTCHA é separado do Search Console / Verificação de Site / Analytics. Remover a tag do reCAPTCHA não afeta nenhum outro serviço do Google.
Existe um script de migração para sites com muitas tags reCAPTCHA embutidas?
Não fornecemos um (o find-and-replace é uma regex por repositório, e a templatização de cada base de código é diferente). O trecho de shell de 10 linhas que a maioria das equipes usa está na documentação.