🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo evitar el spam en los formularios de contacto de WordPress

Actualizado el 25 de diciembre de 2025

El spam en los formularios de contacto de WordPress puede convertirse en una pesadilla. No solo llena tu bandeja de entrada con mensajes basura, sino que también puede ralentizar tu sitio web, dañar tu reputación online y, en casos extremos, comprometer la seguridad de tu base de datos.

Los bots automatizados rastrean la web en busca de formularios vulnerables. No discriminan: atacan desde una simple página de contacto hasta un formulario de pedido complejo. La buena noticia es que proteger tu sitio no requiere ser un experto en programación.

En esta guía extensa y práctica, vamos a desglosar, paso a paso, las mejores estrategias para evitar el spam en formularios WordPress, desde las soluciones más sencillas hasta las más avanzadas. Al final, tendrás un plan de acción claro para blindar tu sitio.

¿Por qué los bots atacan tu formulario de contacto?

Antes de lanzarnos a las soluciones, es útil entender por qué te atacan. Los spammers no te odian personalmente; simplemente automatizan procesos.

1. Para SEO negativo: Rellenan tu formulario con enlaces a sitios de apuestas o pornografía. Si esos enlaces quedan publicados (por ejemplo, en un área de comentarios o en un formulario que envía datos a una página pública), pueden dañar tu posicionamiento en Google.

2. Para phishing: Intentan engañarte a ti (el administrador) para que hagas clic en enlaces maliciosos que roban tus credenciales de acceso al hosting o a tu panel de administración.

3. Para sobrecargar el servidor: Envían miles de solicitudes por minuto. Esto consume los recursos de tu hosting (CPU y memoria), lo que ralentiza tu web o la deja inaccesible (caída del servidor).

4. Simplemente por diversión o prueba: Algunos hackers novatos prueban la seguridad de tu sitio para ver si pueden inyectar código malicioso.

El resultado: Pierdes tiempo, tu bandeja de entrada se satura y tu web se vuelve lenta.

Configuración básica: Los primeros escudos anti-spam WordPress

Si no has hecho nada todavía, empieza por aquí. Son ajustes que se hacen en el propio WordPress y que eliminan el 70% del spam básico.

1. Activa la moderación de comentarios (aunque no uses comentarios)

Aunque tu formulario de contacto no sea un blog, el sistema de comentarios de WordPress a veces se usa como vía de ataque si tu plugin de contacto tiene fallos.

Ve a Ajustes > Discusión.

Marca las casillas de:

  • "Un comentario debe ser aprobado manualmente".
  • "El autor del comentario debe tener comentarios previamente aprobados".

Esto no afecta a tu formulario de contacto, pero cierra una puerta trasera común.

2. Desactiva los "Pings" y "Trackbacks"

Estos protocolos antiguos permiten que otros sitios te notifiquen cuando enlazan tu contenido. Los bots los utilizan para generar spam masivo.

En el mismo menú de Discusión, desmarca la opción:

  • "Intentar notificar a los blogs que enlazan con este artículo (pingbacks y trackbacks)".

3. Limita los intentos de acceso (Login Lockdown)

El spam en formularios a menudo viene acompañado de intentos de fuerza bruta para entrar en tu panel de administración (wp-admin). Si un bot logra entrar, podrá inyectar spam directamente en tu base de datos.

Instala un plugin como Limit Login Attempts Reloaded o WP Cerber Security.

Configúralo para que después de 3 o 5 intentos fallidos, la IP sea bloqueada durante 15 minutos.

[TIP] Te recomiendo que además cambies la URL de acceso a tu panel de administración. Puedes hacerlo con plugins como WPS Hide Login. Así, los bots que buscan /wp-admin no encontrarán nada.

Soluciones intermedias: La capa de protección invisible

Si el spam básico sigue llegando, es hora de añadir lógica más inteligente.

4. Honeypot: El truco del tarro de miel

Esta es una de las técnicas más efectivas y elegantes. Consiste en añadir un campo oculto en tu formulario que los humanos no pueden ver (porque está oculto con CSS), pero los bots sí rellenan (porque rellenan todos los campos que encuentran).

Cuando el formulario se envía con ese campo oculto relleno, WordPress sabe que es un bot y lo descarta silenciosamente, sin mostrar error.

¿Cómo implementarlo?

  • Opción A (sin plugin): Si usas un plugin de formularios como Contact Form 7 o WPForms, suelen tener esta opción integrada. En Contact Form 7, por ejemplo, solo tienes que añadir una línea de código en el formulario: [honeypot honeypot-1].
  • Opción B (con plugin): El plugin Anti-Spam Bee (muy ligero y eficaz) activa el honeypot automáticamente sin que tengas que tocar código.

[INFO] El honeypot es invisible para el usuario, así que no molesta a nadie. Es la solución perfecta para no perder conversiones.

5. Validación de tiempo (Time Check)

Los humanos tardamos al menos 3 o 4 segundos en escribir un mensaje. Los bots lo hacen en milisegundos.

Algunos plugins de seguridad añaden un campo oculto que registra la hora en que se cargó el formulario. Si el envío se produce en menos de 2 segundos, lo marcan como spam.

¿Dónde activarlo?

  • WPForms: En Ajustes > Seguridad, activa la opción "Comprobación de tiempo" (Time Check).
  • Formidable Forms: Incluye esta función en su configuración de "Anti-Spam".

6. Bloqueo por IP y País (Geolocalización)

Si tu negocio es local (por ejemplo, una tienda en México) y recibes spam de Rusia o China, puedes simplemente bloquear esas regiones.

Plugins para hacerlo:

  • Wordfence Security: En su panel de "Bloqueo de Firewall", puedes añadir reglas para bloquear países completos.
  • iQ Block Country: Es un plugin específico para esto, muy sencillo de usar.

[WARNING] Ten cuidado con esto. Si bloqueas países, asegúrate de no bloquear el país donde se aloja tu servidor o donde podrían estar tus clientes en el extranjero. Un bloqueo demasiado agresivo puede hacerte perder pedidos legítimos.

Soluciones avanzadas: Captcha y verificación humana

Aquí es donde entran los famosos Captcha WordPress. Pero no todos son iguales. Un CAPTCHA mal configurado puede frustrar a tus usuarios y hacer que abandonen el formulario.

7. Cloudflare Turnstile: El nuevo rey

Olvídate de los molestos "Selecciona todas las fotos con semáforos". Cloudflare Turnstile es la evolución del CAPTCHA. Es invisible para el usuario en la mayoría de los casos.

Simplemente muestra un pequeño icono y, en segundo plano, analiza el comportamiento del usuario (movimientos del ratón, tiempo de interacción) para verificar que es humano.

Ventajas:

  • No interrumpe al usuario (no hay que resolver acertijos).
  • Es gratuito.
  • Es muy difícil de sortear para los bots.

¿Cómo configurarlo?

  1. Crea una cuenta gratuita en Cloudflare.
  2. Ve al panel de Turnstile y crea un "Sitio Web" (te darán un Site Key y un Secret Key).
  3. Instala el plugin Simple Cloudflare Turnstile o WP Armour – Honeypot Anti Spam que lo integra.
  4. Pega las claves en la configuración del plugin.

8. Google reCAPTCHA v3 (El invisible)

Si prefieres Google, usa reCAPTCHA v3. A diferencia de v2 (el de los acertijos), v3 funciona en segundo plano. Asigna una puntuación del 0.1 al 1.0 a cada visita. Si la puntuación es baja (probable bot), el formulario se bloquea o se envía a moderación.

Configuración rápida:

  • Instala el plugin Advanced noCaptcha & invisible Captcha.
  • Regístrate en Google reCAPTCHA y selecciona "reCAPTCHA v3".
  • Inserta las claves en el plugin.

[WARNING] reCAPTCHA v3 a veces puede dar falsos positivos (bloquear a usuarios reales) si tu sitio es nuevo o tiene poco tráfico. Te recomiendo configurarlo en modo "No bloquear, solo marcar como sospechoso" durante la primera semana para ver cómo se comporta.

9. Pregunta matemática personalizada

Es la solución más simple, pero sorprendentemente eficaz contra bots básicos.

Añade un campo al formulario que pregunte: "¿Cuánto es 5 + 3?".

Cómo hacerlo con Contact Form 7:

Añade este código en tu formulario:

<label>¿Cuánto es 7 + 3? (Para evitar spam) [text tu-pregunta]</label>

Luego, en la pestaña "Validación" (o mediante un snippet), compruebas que la respuesta sea "10". Si no lo es, no envías el correo.

Con WPForms:

Tienen un campo específico llamado "Simple Math" que puedes arrastrar al formulario. Solo tienes que definir la pregunta y la respuesta.

Protección a nivel de servidor (Hosting)

Tu plugin de WordPress no es la única línea de defensa. El servidor donde se aloja tu web juega un papel crucial.

10. Firewall de Aplicaciones Web (WAF)

Un WAF filtra todo el tráfico que llega a tu sitio antes de que toque WordPress. Bloquea peticiones maliciosas, inyecciones SQL y ataques de fuerza bruta.

  • Cloudflare (plan gratuito): Activa el WAF en el panel de tu cuenta.
  • Sucuri: Es un servicio de seguridad premium que incluye un WAF en la nube.

11. Configuración en Syspanel (HestiaCP)

Si tu hosting utiliza Syspanel (el antiguo HestiaCP), tienes herramientas muy útiles a tu disposición.

Recuerda que para acceder al panel de administración de tu servidor, debes hacerlo a través del puerto 2106 (ejemplo: https://tu-dominio.com:2106).

Dentro de Syspanel, busca la sección de "Seguridad" o "Firewall". Puedes configurar:

  • Fail2Ban: Esta herramienta monitoriza los logs del servidor y bloquea automáticamente las IPs que hacen demasiados intentos de acceso o envían demasiados formularios en un corto período de tiempo. Es altamente recomendable activarlo.
  • ModSecurity: Es un firewall de aplicaciones web que se integra con Apache/Nginx. Bloquea patrones de ataque conocidos antes de que lleguen a tu WordPress.

[INFO] Si tu plan de hosting es compartido, estas opciones pueden estar limitadas. Si es un VPS o un servidor dedicado, te recomiendo encarecidamente que configures Fail2Ban desde Syspanel. Es la diferencia entre tener una puerta blindada o una de madera.

La combinación definitiva: Estrategia multicapa

Ninguna solución es 100% infalible. Los spammers evolucionan constantemente. Por eso, te propongo una estrategia multicapa que puedes implementar hoy mismo:

Nivel 1 (Invisible):

  • Honeypot activado (con Anti-Spam Bee o la opción de tu plugin).
  • Time Check activado (3 segundos mínimo).

Nivel 2 (Intermedio):

  • Cloudflare Turnstile o reCAPTCHA v3 (invisible para humanos).
  • Bloqueo de países si tu audiencia es local.

Nivel 3 (Servidor):

  • Activar Fail2Ban en Syspanel (puerto 2106).
  • Usar un servicio de CDN con WAF como Cloudflare.

Nivel 4 (Manual):

  • Revisar la carpeta de spam de tu plugin de formularios una vez al mes.
  • Configurar tu correo para que los mensajes de formularios vayan a una carpeta separada.

Preguntas frecuentes (FAQ) sobre spam en formularios

¿Qué es mejor, un plugin de seguridad o un plugin de formularios con anti-spam?

Depende. Un plugin de seguridad como Wordfence protege todo tu sitio (login, archivos, base de datos). Un plugin de formularios con anti-spam (como WPForms con su opción de Honeypot) solo protege el formulario. Lo ideal es usar ambos: Wordfence para la seguridad general y la protección nativa de tu formulario para el spam específico.

¿El CAPTCHA de Google (reCAPTCHA) es malo para el SEO?

No, pero puede ser malo para la experiencia de usuario (UX). Si usas reCAPTCHA v2 (con acertijos), algunos usuarios se frustran y abandonan. Google no penaliza directamente por usarlo, pero si tu sitio tiene una alta tasa de rebote por culpa del CAPTCHA, eso sí puede afectar tu posicionamiento. Por eso recomiendo usar Turnstile de Cloudflare o reCAPTCHA v3, que son invisibles.

Mi formulario recibe spam pero no veo los mensajes en mi correo. ¿Dónde están?

Los plugins como Contact Form 7 guardan los mensajes rechazados en una cola de "Spam" dentro del propio plugin. Revisa el escritorio de WordPress y ve a la pestaña de "Integración" o "Correos no deseados". WordPress también tiene su propia carpeta de spam si usas el correo del sitio.

¿Puedo usar un formulario de terceros como Google Forms para evitar el spam?

Sí, puedes usar Google Forms, JotForm o Typeform. Ellos tienen su propia protección anti-spam en sus servidores. La desventaja es que pierdes el control sobre el diseño y la integración con tu base de datos. Además, a veces los correos de notificación de Google Forms caen en spam en tu propio correo.

¿Qué hago si mi sitio ya está infectado por spam?

Si tu base de datos está llena de entradas de spam (por ejemplo, en comentarios o en una tabla personalizada), te recomiendo:

  1. Instalar un plugin de seguridad como Wordfence y hacer un escaneo completo para eliminar malware.
  2. Limpiar la base de datos con el plugin WP-Optimize o Advanced Database Cleaner.
  3. Cambiar todas tus contraseñas (hosting, WordPress, base de datos).
  4. Revisar los usuarios registrados en tu WordPress. Si hay usuarios que no reconoces, elimínalos.

Conclusión y plan de acción

Proteger tus formularios de contacto del spam no es un lujo, es una necesidad para mantener la salud de tu negocio online. No necesitas gastar dinero en soluciones caras; con las herramientas gratuitas que te he mostrado, puedes eliminar el 99% del spam.

Tu plan de acción para esta tarde:

  1. Instala un plugin de formularios robusto (si no tienes uno) como WPForms Lite o Contact Form 7.
  2. Activa el Honeypot y la comprobación de tiempo en la configuración de tu plugin.
  3. Crea una cuenta gratuita en Cloudflare y activa Turnstile en tu formulario.
  4. Activa Fail2Ban en tu panel de Syspanel (recuerda, a través del puerto 2106) si tu hosting lo permite.
  5. Configura una regla de país en Wordfence si tu negocio es local.

Con estos pasos, dormirás tranquilo sabiendo que tu bandeja de entrada solo recibirá mensajes de clientes reales. El spam en formularios WordPress es un problema común, pero con las herramientas anti-spam WordPress adecuadas y una buena configuración para proteger formularios, tu sitio estará a salvo.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel