Guía de migración

Migra de reCAPTCHA a CaptchaLa

Reemplazo directo en menos de 10 minutos. Conserva tus formularios y cambia el proveedor de verificación. Funciona con HTML puro, WordPress, Flarum y cualquier backend.

GreCAPTCHACurrent setup~10 minCaptchaLaDrop-in target

Cómo es el cambio de código

Before — reCAPTCHA v2
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
After — CaptchaLa
<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>
Before — reCAPTCHA server verify (Node)
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' })
After — CaptchaLa server verify (Node)
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' })

Pasos de migración

  1. 1

    Regístrate y obtén tu App Key + Secret

    Crea una cuenta gratuita en CaptchaLa, añade un sitio y copia la App Key (pública) y el App Secret (lado servidor). Sin tarjeta requerida.

  2. 2

    Cambia la etiqueta del widget en tu formulario

    Reemplaza el div y el script src de reCAPTCHA por los equivalentes de CaptchaLa. La clase de la etiqueta cambia de g-recaptcha a captchala, data-sitekey pasa a ser data-app-key, y la URL del script apunta a nuestro CDN.

  3. 3

    Actualiza el nombre del campo de envío del formulario

    reCAPTCHA inyecta un campo oculto llamado g-recaptcha-response. CaptchaLa usa captchala-token. Si tu manejador de formularios lee el campo por su nombre, renombra la constante; de lo contrario, el input oculto fluye automáticamente.

  4. 4

    Actualiza la verificación del lado servidor

    Apunta la petición de verificación a apiv1.captcha.la/v1/validate con las credenciales de la app en las cabeceras (X-App-Key / X-App-Secret) y pass_token en un cuerpo JSON. La respuesta devuelve el mismo flag valid (data.valid) que reCAPTCHA, así que tu lógica de ramificación existente se mantiene.

  5. 5

    Despliega de forma gradual

    La mayoría de los equipos lo lanzan primero en un formulario (a menudo el de menor tráfico — alta al boletín o contacto), observan la conversión y la tasa de desafíos durante unas horas, y luego expanden. No hay mínimo ni contrato, así que probar con un canario es gratis.

Preguntas frecuentes

¿Necesito migrar todos los formularios a la vez?

No. Los dos sistemas coexisten en el mismo sitio — no comparten estado ni cookies. Migra un formulario a la vez.

¿Y las puntuaciones de riesgo de reCAPTCHA Enterprise? ¿Se transfieren las puntuaciones?

Las puntuaciones no se transfieren (son internas del proveedor), pero CaptchaLa devuelve su propia puntuación de riesgo en la respuesta de verificación. El rango numérico y la lógica de decisión están documentados; los equipos suelen mapear su umbral de puntuación existente (p. ej. 0,5) al nuestro en una hora.

¿Se romperá mi verificación de sitio de Google u otras integraciones de Google?

No. reCAPTCHA es independiente de Search Console / Site Verification / Analytics. Eliminar la etiqueta de reCAPTCHA no afecta a ningún otro servicio de Google.

¿Hay un script de migración para sitios con muchas etiquetas de reCAPTCHA incrustadas?

No ofrecemos uno (el buscar y reemplazar es una expresión regular por repositorio, y la plantilla de cada base de código difiere). El fragmento de shell de 10 líneas que usan la mayoría de los equipos está en la documentación.