Skip to content

Todo para WordPress, el desarrollo web — y mucho más

🚫 Cómo detener el spam de Contact Form 7 en WordPress

🚫 Cómo detener el spam de Contact Form 7 en WordPress

Formulario de comentarios ¿ahogado en spam? Docenas de envíos vacíos al día saturan su bandeja de entrada mientras las consultas reales de clientes se pierden entre la basura.

Contact Form 7, el plugin de formulario de contacto gratuito más popular para WordPress, cuenta con más de 5 millones de instalaciones activas. Esta popularidad lo ha convertido en el blanco número uno de los bots de spam: localizan sitios WordPress, identifican la URL estándar del formulario y lo inundan con miles de envíos automatizados.

Mensajes de spam en la interfaz del formulario de contacto de WordPress

No necesita desactivar el formulario ni añadir un CAPTCHA engorroso. A continuación, cinco métodos que funcionan, desde funciones integradas de CF7 hasta plugins especializados. Ninguno requiere código: todo se configura desde el panel de administración en 10 a 15 minutos.

💡 Resumen rápido:

  • Active el cuestionario integrado de CF7 (los bots no pueden responder preguntas)
  • Establezca una longitud mínima de mensaje para bloquear el spam de una sola palabra
  • Conecte Akismet para un filtrado inteligente basado en una base de datos global de spammers
  • Instale CF7 Apps con una trampa honeypot (un campo oculto que solo los bots ven)
  • Último recurso: Really Simple CAPTCHA (protección simple pero anticuada)

1. Cuestionario integrado de Contact Form 7

El método más infravalorado y a la vez eficaz. CF7 le permite añadir una etiqueta [quiz] a su formulario: una pregunta sencilla que cualquier humano puede responder, pero un bot no.

Funciona así: usted plantea una pregunta como «¿Cuánto es tres más cuatro?» o «¿En qué año estamos?» y especifica la respuesta correcta después de una barra vertical. Si el visitante responde incorrectamente, el formulario no se envía.

1[quiz math-test "Сколько будет три плюс четыре?|7"]

Los bots no interpretan el contexto de una pregunta; simplemente rellenan campos y pulsan «Enviar». El cuestionario rompe esta lógica por completo.

Ventajas: gratuito, funciona nada más instalarlo, no ralentiza el sitio, no añade plugins. Solo hay un inconveniente: en teoría, un bot dirigido y creado para un sitio específico podría entrenarse para responder. Pero para la gran mayoría de los sitios, este escenario es desproporcionado: los spammers no dedican tiempo a saltarse manualmente un solo blog.

2. Longitud mínima y máxima del mensaje

Resultados de la encuesta sobre métodos de prevención de spam en CF7

Una parte significativa del spam automatizado consiste en mensajes cortos de dos o tres palabras, o incluso un solo número. La lógica de los spammers es simple: inundar tantos formularios como sea posible en el mínimo tiempo. Nadie va a gastar recursos generando texto coherente.

CF7 admite los parámetros minlength y maxlength directamente en el shortcode del campo:

1[textarea your-message minlength:20 maxlength:500]

Veinte caracteres es un mínimo seguro: un cliente real escribe «Hola, me interesan los gastos de envío», mientras que un bot envía «12345» o «Compre ahora barato». Cualquier cosa inferior a 20 caracteres se rechaza antes del envío.

El parámetro maxlength también protege contra otro vector: mensajes extremadamente largos donde los bots insertan miles de palabras clave para spam SEO. Quinientos caracteres cubren cualquier consulta normal, pero cortan los bloques de texto interminables.

Aquí no hay desventajas; este método debería estar siempre activado, independientemente de otras medidas.

3. Akismet: filtrado inteligente de spam

Akismet es un servicio antispam en la nube de Automattic (el equipo de WordPress). Analiza el contenido de los envíos, lo cruza con una base de datos global de remitentes de spam conocidos y toma una decisión en milisegundos. Según el propio servicio, Akismet bloquea el 99,8% del spam en sitios WordPress.

No todo el mundo sabe que Akismet funciona con algo más que comentarios; también funciona con Contact Form 7. Tras instalar el plugin y activar la clave API (gratuita para sitios no comerciales), usted añade una pequeña integración y Akismet revisa automáticamente los campos del formulario de CF7 en busca de patrones de spam.

En pruebas reales sobre un sitio de alto tráfico, Akismet por sí solo redujo el volumen de spam en aproximadamente dos tercios. El tercio restante se gestiona combinándolo con la pregunta de control y la longitud mínima, lo que da como resultado prácticamente cero envíos basura sin un solo CAPTCHA.

🔗 Akismet en WordPress.org

4. CF7 Apps: honeypot y hCaptcha en un solo plugin

El clásico Contact Form 7 Honeypot ha evolucionado hasta convertirse en CF7 Apps, un plugin modular que añade varias funciones a CF7 de una sola vez. Dos de ellas son relevantes aquí.

Honeypot es un campo trampa oculto. Se añade al formulario un campo invisible, estilizado mediante CSS para que los visitantes reales no puedan verlo ni rellenarlo. Un bot, sin embargo, analiza el código HTML, encuentra el campo y lo rellena, y así es como queda atrapado. El plugin detecta el honeypot rellenado y bloquea el envío.

Se añade con un único shortcode:

1[honeypot honeypot-837]

Usted puede cambiar los números en el nombre; esto dificulta la tarea a los bots que aprenden a eludir nombres de campo estándar.

hCaptcha es una alternativa moderna a reCAPTCHA que no recopila datos del usuario. Tras obtener las claves del sitio web de hCaptcha, se habilita con una sola casilla de verificación en los ajustes de CF7 Apps, y aparece un widget en el formulario que la mayoría de los visitantes reales ni siquiera notan.

Ambas funciones operan de forma independiente: usted puede habilitar solo el honeypot, solo hCaptcha o ambos. El plugin recibe mantenimiento activo (última versión: 2026), a diferencia de muchos competidores.

🔗 CF7 Apps en WordPress.org

5. Really Simple CAPTCHA: una opción de respaldo

Really Simple CAPTCHA fue creado por el mismo desarrollador de Contact Form 7, por lo que ambos plugins funcionan juntos sin conflictos. Genera una imagen simple con un código que debe introducirse para enviar el formulario.

La configuración es sencilla: instale el plugin, añada la etiqueta [captchac] a su formulario de CF7 y funciona.

Sin embargo, este método tiene algunas salvedades. Primero, el plugin no ha recibido actualizaciones importantes en mucho tiempo y no ha sido probado oficialmente con las últimas versiones de WordPress, aunque los usuarios confirman que funciona hasta WP 6.9. Segundo, requiere la biblioteca GD + FreeType en el servidor, la cual puede faltar en hostings económicos. Tercero, un CAPTCHA basado en texto molesta notablemente a los usuarios y algunos visitantes reales simplemente se van sin completar el formulario.

Recomendamos probar Really Simple CAPTCHA solo si los primeros cuatro métodos no dieron resultado. En la mayoría de los casos, una combinación de la pregunta de verificación, la longitud mínima y Akismet es suficiente.

🔗 Really Simple CAPTCHA en WordPress.org

Qué funcionó en nuestro caso

Un cliente nos llegó con un problema: el Contact Form 7 en un sitio con alrededor de 10 000 visitantes únicos al mes recibía docenas de envíos de spam a diario. Procedimos paso a paso:

  • Instalamos Akismet y el spam bajó de varias docenas a entre 5 y 10 mensajes al día.
  • Añadimos un [quiz] con la pregunta «¿Cuánto es dos más dos?» y solo se colaba spam ocasional.
  • Activamos minlength:20 para el campo de mensaje y el spam desapareció por completo.

La combinación de tres métodos sin un solo CAPTCHA resolvió el problema en media hora de trabajo. Ni un solo cliente real se quejó de molestias: ni siquiera notaron los cambios porque la pregunta de verificación se ve natural y un límite de 20 caracteres es invisible durante una comunicación normal.

Si usted apenas está empezando a combatir el spam, instale Akismet como su primera línea de defensa. Es la solución independiente más potente que no necesita un honeypot ni CAPTCHA para una protección básica. Luego añada capas según sea necesario, mediante prueba y error, monitoreando las estadísticas de spam después de cada cambio.

⁉️🤔 Preguntas frecuentes

¿Por qué no usar Google reCAPTCHA?

reCAPTCHA v2, con sus semáforos y puentes, sí bloquea bots, pero a costa de la experiencia de usuario. Según investigaciones de laboratorios de usabilidad, uno de cada cinco visitantes abandona un formulario al ver un CAPTCHA. reCAPTCHA v3 funciona de forma invisible, pero requiere integración mediante un plugin adicional para CF7 y tiene problemas de falsos positivos. El quiz integrado de CF7 resuelve el mismo problema sin servicios externos. No usamos reCAPTCHA donde un quiz de CF7 y un honeypot son suficientes: el quiz no carga el sitio con peticiones externas a Google y no recolecta datos de los visitantes. Para proyectos donde el antispam de Google es esencial, existen plugins puente independientes en el directorio de WordPress.

¿Puedo arreglármelas con un solo método?

Depende del volumen de spam. Un sitio de bajo tráfico a menudo se las arregla solo con Akismet o únicamente con el quiz. Un sitio con miles de visitantes diarios casi con toda seguridad requerirá una combinación de 2 o 3 métodos: los spammers usan granjas de bots en la nube, y lo que detuvo a uno será burlado por otro.

En la práctica, empezamos con Akismet. Si el spam baja a un nivel aceptable, nos detenemos ahí. Si no, añadimos el quiz. Si eso aún no es suficiente, añadimos un honeypot mediante CF7 Apps. La superposición gradual es mejor que instalar cinco plugins de golpe; cada nueva capa solo tiene sentido cuando la anterior no es suficiente.

¿En qué es mejor CF7 Apps que el antiguo Contact Form 7 Honeypot?

El antiguo plugin Contact Form 7 Honeypot hacía exactamente una cosa: añadía un campo oculto. CF7 Apps es su sucesor moderno, del desarrollador activo Saad Iqbal. Además del honeypot, gestiona hCaptcha, guarda los envíos en la base de datos, redirecciones tras el envío, webhooks e integración con ACF, todo en un solo plugin.

Todos los módulos son independientes: si solo habilita el honeypot, eso es lo único que se ejecuta, sin código adicional. El plugin se actualiza en 2026 y es compatible con las versiones actuales de WordPress, a diferencia del antiguo Honeypot monofunción, que ya no recibe mantenimiento.

¿Debería instalar los cinco métodos a la vez?

No, y no lo recomendamos. Cada plugin adicional ralentiza el sitio y añade un posible punto de fallo. Empiece con uno o dos métodos, monitorice los resultados durante una semana y luego decida si añadir otra capa.

La configuración mínima para la mayoría de los sitios: Akismet + longitud mínima de mensaje. Esto es suficiente en la gran mayoría de los casos. Añada el quiz cuando el spam siga llegando a pesar de Akismet. Añada el honeypot si los bots aprenden a burlar el quiz (un escenario poco frecuente). Añada un CAPTCHA solo cuando nada más haya funcionado.

¿Qué hago si el spam continúa a pesar de todo?

Compruebe si el spam está burlando CF7: algunos temas y plugins añaden sus propios formularios de contacto que CF7 no controla. Descartar también el spam manual: si los mensajes son coherentes y pertinentes pero promocionales, se trata de personas reales, contra las cuales los métodos técnicos son ineficaces.

Como último recurso, considere cambiar de plugin de formularios. Gravity Forms y WPForms tienen mecanismos antispam integrados más agresivos y soporte oficial nativo para Google reCAPTCHA sin plugins adicionales.

Qué método de protección antispam elegir

La elección depende de un parámetro: el volumen de tráfico basura en un sitio concreto. No existe una «bala de plata» universal: un sitio folleto de tres páginas y un foro con mil usuarios requieren niveles de protección diferentes.

Si está empezando, active Akismet y establezca una longitud mínima de mensaje (minlength:20). Estos dos pasos llevan diez minutos y bloquean la mayor parte del spam automatizado sin un solo CAPTCHA y sin quejas de los usuarios.

Si el spam continúa tras Akismet, añada un [quiz]. Los bots no responden preguntas; las personas responden sin pensar. La tercera línea de defensa es CF7 Apps con una trampa honeypot: un campo oculto del que el visitante real no sabe nada.

Y recuerde: cada nuevo plugin es un equilibrio entre seguridad y velocidad del sitio. Construya la protección gradualmente, cortando el spam capa por capa. La configuración ideal es aquella en la que el spam es cero y el visitante ni siquiera se da cuenta de que el formulario tiene protección alguna.