
Los formularios de contacto llenos de ofertas falsas, los comentarios en ruso con enlaces, los registros de usuarios que nadie hizo. El spam automático es una molestia constante en WordPress, y muchas soluciones son peores que el problema: captchas que obligan a tus visitas a identificar bicicletas o que vuelven lenta la página.
Cloudflare Turnstile es una alternativa gratuita que, en la mayoría de los casos, el visitante ni siquiera nota.
Qué es y cómo funciona
Turnstile analiza señales del navegador (cómo se comporta, si ejecuta JavaScript como una persona, su historial) y decide si es humano. Casi siempre lo resuelve solo y muestra un pequeño ✓. Solo en casos dudosos pide un clic.
Ventajas frente a otros captchas:
- Gratuito y sin límite de uso razonable.
- No necesitas tener tu sitio en Cloudflare: funciona con cualquier hosting.
- No usa tus datos para publicidad, a diferencia de otras opciones.
- Liviano: casi no afecta la velocidad.
Paso 1: crear las claves
- Entra a tu cuenta de Cloudflare (gratuita) y ve a Turnstile.
- Pulsa Añadir widget, ponle un nombre y escribe tu dominio.
- Elige el modo Administrado (el recomendado: solo pide clic si hay dudas).
- Copia la clave del sitio y la clave secreta.
Paso 2: activarlo en WordPress
La forma más simple es un plugin que integre Turnstile. Hay plugins gratuitos dedicados que lo agregan con un clic en:
- La pantalla de inicio de sesión, registro y recuperación de contraseña.
- Los comentarios.
- Los formularios de los plugins más usados (Contact Form 7, WPForms, Gravity Forms, Fluent Forms y otros).
- El pago, el registro y el login de WooCommerce.
Pega las dos claves en los ajustes del plugin, marca dónde quieres activarlo y guarda.
Prueba el login antes de cerrar sesión. Abre una ventana de incógnito y comprueba que puedes entrar. Si las claves están mal, te puedes quedar afuera. Si pasa, desactiva el plugin renombrando su carpeta por FTP o con wp plugin deactivate nombre-del-plugin.
Dónde ponerlo y dónde no
Sí:
- Login, registro y recuperación de contraseña.
- Comentarios.
- Formularios de contacto.
- Pago de WooCommerce, sobre todo si has sufrido ataques de prueba de tarjetas.
Mejor no:
- Buscadores internos: molesta a la gente y los robots se frenan mejor con límites de velocidad.
- Páginas de «agregar al carrito»: interrumpe la compra.
Paso 3: comprueba que funciona
- Abre el formulario en una ventana de incógnito: debe aparecer el recuadro de Turnstile con el ✓.
- En el panel de Cloudflare → Turnstile → tu widget verás estadísticas de cuántas verificaciones se resolvieron y cuántas fallaron.
- Después de una semana, compara la cantidad de spam en Comentarios → Spam o en los mensajes de tus formularios.
Turnstile no reemplaza a Akismet ni al filtro de spam, lo complementa. Turnstile frena a los robots automáticos; el filtro atrapa el spam que escriben personas reales. Juntos, el spam prácticamente desaparece.
Nivel pro: validar en tu propio formulario
Si tienes un formulario hecho a mano, la validación en el servidor es una petición a la API de Cloudflare:
function cwp_turnstile_valido( $token ) {
$respuesta = wp_remote_post( 'https://challenges.cloudflare.com/turnstile/v0/siteverify', array(
'timeout' => 10,
'body' => array(
'secret' => CWP_TURNSTILE_SECRET, // En wp-config.php
'response' => $token,
'remoteip' => $_SERVER['REMOTE_ADDR'] ?? '',
),
) );
if ( is_wp_error( $respuesta ) ) {
return false;
}
$datos = json_decode( wp_remote_retrieve_body( $respuesta ), true );
return ! empty( $datos['success'] );
}
// Al procesar el formulario:
// if ( ! cwp_turnstile_valido( $_POST['cf-turnstile-response'] ?? '' ) ) { ... rechazar ... }
En el HTML del formulario basta con cargar el script de Turnstile y agregar <div class="cf-turnstile" data-sitekey="TU_CLAVE_DEL_SITIO"></div> antes del botón de enviar.
¿Sigues recibiendo spam con Turnstile activado? Cuéntanos en el foro en qué formulario y cómo es el spam, y vemos qué falta.





