← Volver al blog
WordPressContact Form 7SpamProtección contra bots

Reducir el spam en Contact Form 7 de forma específica

Marc Wagner·5 de octubre de 2026·6 min de lectura

¿Qué problema tiene?

Tres casos se parecen, pero tienen causas distintas:

  • Llega spam. Su bandeja de entrada se llena de publicidad, enlaces o textos sin sentido. El formulario deja pasar a los bots.
  • El formulario muestra un error. Los visitantes ven «There was an error trying to send your message. Please try again later.» (traducido en sitios en otros idiomas). Puede ser la protección antispam o un problema con el envío del correo.
  • Faltan consultas auténticas. Nadie se queja, pero tampoco llega nada. En ese caso, la protección puede estar rechazando a personas o los correos no llegan a su bandeja de entrada.

Identifique primero el caso antes de añadir protección. Cómo hacerlo se describe en la sección «¿Envío de correo o protección contra bots?».

Lo que Contact Form 7 trae de serie

Contact Form 7 incorpora varias medidas contra el spam (comprobado en la versión 6.1.7):

  • Lista de bloqueo. CF7 compara cada envío con la lista de «Ajustes → Comentarios» («Disallowed Comment Keys»). Una coincidencia cuenta como spam. Esto ayuda contra palabras y dominios recurrentes, no contra textos nuevos.
  • Campo de cuestionario. Con la etiqueta [quiz], el formulario hace una pregunta que usted mismo define. Los bots que rellenan cualquier formulario fallan; los que atacan su sitio en concreto la superan.
  • Akismet. Con el plugin Akismet y una clave de Akismet, CF7 comprueba el nombre, la dirección de correo y el texto a través del servicio Akismet.
  • reCAPTCHA v3. CF7 carga el script desde Google y rechaza los envíos por debajo de un umbral de puntuación.
  • Cloudflare Turnstile. CF7 integra Turnstile; el script procede de Cloudflare.

La lista de bloqueo y el cuestionario funcionan sin un servicio externo. Akismet, reCAPTCHA y Turnstile envían los datos de sus visitantes al proveedor correspondiente, y eso debe figurar en su política de privacidad.

Cuándo tiene sentido una protección adicional contra bots

Una protección dedicada contra bots merece la pena si

  • sigue llegando spam a pesar de la lista de bloqueo y el cuestionario,
  • no quiere cargar scripts de Google ni de Cloudflare,
  • quiere ver en cada envío rechazado por qué se rechazó.

Si el cuestionario basta para su formulario, no necesita nada más. Una protección que nadie necesita es solo otra fuente de errores.

Configurar SilentShield para Contact Form 7

El plugin oficial «SilentShield – Captcha & Anti-Spam» protege Contact Form 7 sin código propio. Lo hemos probado con Contact Form 7 6.1.7 y WordPress 7.0.

  1. Instale y active el plugin desde el directorio de WordPress.
  2. En «SilentShield → API / SilentShield», introduzca su clave, haga clic en «Validate», active «Activate API» y guarde.
  3. En «SilentShield → Forms», active Contact Form 7.

El sitio debe funcionar con https; de lo contrario, el formulario no se puede enviar. Todos los pasos y los plugins de formularios probados están en la guía de WordPress. Cada envío cuenta para la cuota, consulte precios y cuotas.

Probar envíos auténticos e intentos rechazados

Un envío auténtico: abra la página en una ventana privada, rellene el formulario a mano y envíelo. Debería ver la confirmación de CF7 con un borde verde.

Un intento rechazado: envíe el mismo formulario sin navegador a la interfaz de CF7. El ID del formulario y el valor de _wpcf7_unit_tag se encuentran en el código fuente de la página, en los campos ocultos del formulario.

curl -X POST "https://example.com/?rest_route=/contact-form-7/v1/contact-forms/123/feedback" \
  -F "_wpcf7=123" -F "_wpcf7_unit_tag=wpcf7-f123-p45-o1" -F "_wpcf7_container_post=45" \
  -F "your-name=Test" -F "[email protected]" -F "your-message=Test"

Debería recibir una respuesta con "status":"spam". Con SilentShield, el mensaje dice «Behavior check».

¿Envío de correo o protección contra bots?

En Contact Form 7, «spam» y «no se pudo enviar el correo» tienen el mismo texto predeterminado. Puede distinguirlos en dos lugares:

  • Color del borde del mensaje: naranja significa spam, rojo significa que falló el envío del correo, siempre que su tema no sobrescriba los colores de CF7.
  • Respuesta en el navegador: en las herramientas para desarrolladores (pestaña Red), la respuesta a feedback contiene el status, ya sea spam o mail_failed.

Si es mail_failed, la protección contra bots dejó pasar el envío; el problema está en el envío de correo de WordPress. Revise entonces la configuración del correo, por ejemplo con un plugin SMTP. Si es spam, lo rechazó una medida de protección. Con SilentShield, el mensaje indica el motivo, por ejemplo «Behavior check».

Límites

  • Ninguna protección detiene el spam que una persona escribe a mano.
  • Sin JavaScript en el navegador, un envío a un formulario protegido se rechaza.
  • SilentShield protege los formularios contra bots. No sustituye a un firewall de aplicaciones web ni a una protección DDoS.

Configurar la protección de formularios

Páginas relacionadas

¿Listo para deshacerse del CAPTCHA?

Proteja sus formularios — de forma invisible. Sin tarjeta de crédito.