Plugin anti-spam WordPress: sin CAPTCHA ni Akismet

Bloquea el spam sin hacer sufrir a tus visitantes: una trampa honeypot invisible detiene a los bots en comentarios, registro y formularios — local y gratis.

Abre la pestaña de Comentarios de un sitio WordPress que pasó dos semanas sin protección y ya sabes lo que te espera: decenas de mensajes ofreciendo productos dudosos, enlaces a farmacias imaginarias, «¡Gran artículo!» seguido de una URL sospechosa. La respuesta clásica es castigar a todo el mundo — CAPTCHAs que descifrar, casillas que marcar, semáforos que identificar. Hay un enfoque más elegante: tenderles a los robots una trampa que tus visitantes nunca verán. Se llama honeypot, y es la apuesta del módulo Anti-Spam de Blaminhor Essentials.

Lo esencial

  • Un honeypot es un campo de formulario invisible para los humanos: un bot lo rellena y el envío se rechaza. Cero fricción para tus visitantes.
  • El módulo protege cinco puntos de entrada nativos — comentarios (incluso con sesión iniciada), inicio de sesión, registro, recuperación de contraseña — más Contact Form 7 y WPForms.
  • Todo es local: a diferencia de Akismet, ningún comentario ni ninguna dirección IP sale jamás hacia una nube de terceros para su análisis.
  • Los reincidentes se frenan con un bloqueo temporal de IP — sin almacenar nunca la IP en claro (huella SHA-256 con sal, transients que expiran solos).
  • En el formulario de inicio de sesión, el módulo es «fail-open»: ante la duda, deja pasar el envío — un humano legítimo nunca se queda fuera.

¿Por qué los CAPTCHA se han vuelto un mal negocio?

Un CAPTCHA hace que los humanos paguen el trabajo de filtrar a los robots: cada cuadrícula de imágenes cuesta segundos, frustración y conversiones, mientras los bots modernos, equipados con resolvedores automáticos, pasan cada vez mejor. Degradas la experiencia del 100 % de tus visitantes por un filtro que cada año deja pasar más.

El problema ha empeorado en tres frentes. Primero, la eficacia: las granjas de resolución y los modelos de visión descifran hoy la mayoría de los desafíos visuales — la brecha entre humano y máquina, sobre la que descansaba toda la idea, se está cerrando. Segundo, la conversión: cada paso añadido a un formulario hace que una parte de los visitantes abandone, y un CAPTCHA es el paso más hostil que existe. Tercero, el cumplimiento normativo: reCAPTCHA transmite datos de navegación a Google antes de que el visitante haya consentido nada en absoluto — la autoridad francesa de protección de datos (CNIL) clasifica su versión invisible entre los dispositivos que exigen consentimiento previo, lo que lo convierte por sí solo en un problema de RGPD en un sitio europeo.

El honeypot le da la vuelta al problema: en lugar de pedir a los humanos que demuestren que no se parecen en nada a una máquina, deja que las máquinas demuestren que no se parecen en nada a un humano. Nadie rellena un campo que no puede ver… salvo un script que lo rellena todo.

¿Cómo detiene a los bots un campo invisible?

El módulo añade al formulario un campo que las hojas de estilo vuelven invisible e inalcanzable para un visitante: si vuelve relleno, es que un robot recorrió el formulario campo por campo, y el envío se rechaza antes de cualquier procesamiento. El visitante humano no ve estrictamente nada — ni casilla, ni pregunta, ni espera.

Esta trampa de base se apoya en comprobaciones que tampoco le piden nada al visitante:

  • El tiempo de envío. Un humano tarda varios segundos en escribir un comentario; un bot publica el formulario en unos cientos de milisegundos. Enviar demasiado rápido es una confesión.
  • El bloqueo temporal de los reincidentes. Tras varios intentos de spam confirmados desde la misma dirección, el módulo bloquea esa dirección por un tiempo limitado — la mecánica merece su propia sección, porque está construida de otra manera que en el resto de herramientas.
  • El registro de spam. Cada intento interceptado queda anotado, para que puedas comprobar qué se está bloqueando — y confirmar que no son tus lectores.

En la práctica, esta combinación detiene la inmensa mayoría del spam, porque la inmensa mayoría del spam es automatizado. Seamos honestos con el límite: un humano pagado por publicar enlaces pasará, igual que pasaría un CAPTCHA que, por definición, sabe resolver. Ninguna herramienta filtra la mala fe humana; lo que filtras es la industrialización.

¿Por qué preferir un anti-spam local a Akismet o CleanTalk?

Porque un anti-spam en la nube funciona enviando cada envío — texto, dirección IP, correo — a servidores de terceros para su análisis, lo que crea una transferencia de datos personales que debes documentar, y una dependencia: sin servicio, no hay filtro. Un honeypot local toma su decisión en tu servidor, y tus datos nunca salen de él.

Akismet, instalado por defecto con WordPress, ilustra bien el trato implícito: el filtrado es excelente, pero cada comentario sale con la dirección IP de su autor rumbo a Automattic, y el nivel gratuito termina donde empieza el uso comercial — un sitio profesional tiene que pagar. CleanTalk sigue la misma lógica de nube con las mismas implicaciones. No es un escándalo, es un modelo de negocio; solo que, en un sitio sujeto al RGPD, ese modelo acarrea un costo administrativo (registro de actividades de tratamiento, información a los interesados) que pocos dueños de sitios han presupuestado de verdad.

¿Cómo lo activas en tu sitio en dos minutos?

Instala Blaminhor Essentials, activa el módulo Anti-Spam, marca los formularios que quieres proteger — y ya está: no hay clave de API que crear, ni cuenta que abrir, ni servicio que conectar.

  1. Instala Blaminhor Essentials y activa el módulo Anti-Spam (el plugin es modular: un módulo desactivado no carga ni una línea de código).
  2. Elige las superficies a proteger: comentarios, inicio de sesión, registro, recuperación de contraseña — y, si están instalados, Contact Form 7 y WPForms quedan cubiertos con la misma casilla.
  3. Activa el bloqueo temporal de IP si quieres frenar a los reincidentes, y define la ventana de bloqueo.
  4. Abre el registro de spam después de unos días: verás lo que se interceptó, con el motivo de cada rechazo.

Los ajustes del módulo Anti-Spam de Blaminhor Essentials: cada formulario se protege con una sola casilla, sin clave de API ni servicio externo.

Activé el módulo en un sitio de prueba para tomar estas capturas: de la instalación al registro anotando su primer intento interceptado, todo el recorrido toma menos de dos minutos, cronómetro en mano. La diferencia con un anti-spam en la nube se nota sobre todo en lo que no está: sin registro previo, sin clave, sin cuota.

Una palabra sobre la protección del formulario de inicio de sesión, porque la decisión es contraintuitiva: ahí, el módulo es deliberadamente «fail-open» — ante una señal ambigua, deja pasar el envío. Un comentario de spam que se cuela se borra con un clic; un administrador que se queda fuera es una tarde perdida. Las herramientas anti-spam que blindan el inicio de sesión con agresividad generan más tickets de soporte que ataques detienen.

¿Y las direcciones de correo que muestras en tu sitio?

El spam no llega solo por los formularios: los bots recolectores rastrean tus páginas para recoger las direcciones de correo escritas en texto plano, que acaban en bases de datos de spam que luego se revenden. El módulo también protege esa superficie: un shortcode [email] y un bloque de Gutenberg muestran la dirección codificada — ilegible para un recolector, perfectamente clicable para un humano.

Es el compañero natural de tu página de contacto: tú muestras [email protected] para tus lectores, y los scripts que rastrillan tu HTML no cosechan más que una papilla codificada. Una dirección que nunca se recolecta es una dirección que no recibe spam — el mejor filtro sigue siendo el que nunca necesitas.

La comparación en una tabla

CriterioCAPTCHA (reCAPTCHA, Turnstile)Anti-spam en la nube (Akismet, CleanTalk)Módulo Anti-Spam de Blaminhor Essentials
Fricción para el visitanteCuadrículas, casillas, desafíosNingunaNinguna
Datos enviados a tercerosSí (antes del consentimiento, en reCAPTCHA)Sí (contenido + IP)No — todo es local
PrecioGratis (con cuota)De pago para uso comercialGratis
Formularios cubiertosDepende de la integraciónSobre todo comentariosComentarios, inicio de sesión, registro, recuperación de contraseña, CF7, WPForms
Riesgo de bloquear a un humanoReal (desafío fallido)Falsos positivos posiblesFail-open en el inicio de sesión
Almacenamiento de IPDel lado del terceroDel lado del terceroNunca en claro (SHA-256 con sal, transients)

¿Qué límites debes conocer antes de elegir?

Tres, y prefiero escribirlos yo mismo: el spam humano pasa, el CGNAT vuelve impreciso el bloqueo de IP, y un honeypot no sustituye una protección completa contra la fuerza bruta en tu inicio de sesión.

El spam publicado a mano por operadores pagados por tarea burla cualquier trampa automatizada — eso vale aquí como en todas partes, moderación humana obligatoria. El bloqueo de IP, temporal por diseño, puede rozar a usuarios que comparten la dirección de un operador móvil; precisamente por eso expira solo y respeta el formulario de inicio de sesión. Por último, el honeypot filtra bots de spam; un ataque de fuerza bruta contra tus contraseñas exige otra defensa — límite de intentos y autenticación de dos factores — que va más allá de lo que hace un plugin anti-spam para WordPress.

Spam que ya no ves, visitantes a los que ya no molestas

El mejor plugin anti-spam para WordPress es el que ni tus lectores ni tú notan jamás: sin cuadrícula de imágenes en la puerta, sin carpeta de «pendientes» desbordada, sin factura que llega el día en que el sitio se vuelve profesional. Un campo invisible, unas comprobaciones de sentido común, y tus datos quedándose en casa.

El módulo Anti-Spam es uno de los módulos gratuitos de Blaminhor Essentials, el plugin modular que estoy construyendo para reemplazar la pila de plugins de un solo uso — activa lo que te sirve, ignora el resto. Y si tu primer reflejo de seguridad es la propia puerta de entrada, empieza por entender cómo funciona el inicio de sesión en WordPress: proteges mejor lo que entiendes.

FAQ

¿De verdad basta un honeypot contra el spam en 2026?

Contra los bots automatizados — la inmensa mayoría del spam — sí: rellenan el campo invisible y se delatan solos. Contra el spam humano pagado por tarea, no, pero ningún CAPTCHA sobrevive a eso tampoco. La estrategia correcta es por capas: una trampa invisible, una comprobación del tiempo de envío y el bloqueo temporal de los reincidentes.

¿Por qué evitar reCAPTCHA en un sitio europeo?

reCAPTCHA envía datos de navegación a Google antes de cualquier consentimiento, lo que lo sitúa en la zona roja del RGPD — la autoridad francesa de protección de datos (CNIL) exige consentimiento previo para su versión invisible. También perjudica la conversión: cada cuadrícula de semáforos ahuyenta a visitantes legítimos. Un honeypot local no tiene ninguno de esos dos problemas.

¿Akismet es realmente de pago para un sitio profesional?

Sí. Akismet es gratuito para uso estrictamente personal; cualquier sitio comercial debe contratar una suscripción de pago. Y en ambos casos, cada comentario sale de tu servidor con la dirección IP de su autor, rumbo a los servidores de Automattic para su análisis — una transferencia de datos personales que tienes que documentar en tu registro RGPD.

¿El módulo también bloquea el spam en Contact Form 7 y WPForms?

Sí. El módulo Anti-Spam de Blaminhor Essentials inyecta su trampa en los formularios de Contact Form 7 y WPForms si esos plugins están presentes, además de los formularios nativos de WordPress: comentarios, inicio de sesión, registro y recuperación de contraseña. Un solo ajuste protege todos los puntos de entrada a la vez.

¿Qué pasa si el módulo se equivoca con un humano?

En el formulario de inicio de sesión, nada irreversible: el módulo es deliberadamente «fail-open» — ante la duda, deja pasar el envío antes que dejar fuera a un usuario legítimo. Es una decisión asumida: un comentario de spam que se cuela se borra con un clic; un cliente bloqueado al iniciar sesión se convierte en un ticket de soporte furioso.

¿El bloqueo de IP es compatible con el RGPD?

En este módulo, la dirección IP en bruto nunca se almacena: se convierte en una huella SHA-256 con sal — no reversible — guardada únicamente en transients que expiran solos. Bloqueas a los reincidentes sin construir jamás un fichero de direcciones IP — literalmente no hay nada que anotar en tu registro de tratamientos.

¿Funciona un honeypot con un plugin de caché?

El de Blaminhor Essentials sí: la trampa está diseñada para seguir siendo válida en una página servida desde la caché, sin token de corta duración que pueda expirar. Es un punto que conviene verificar con cualquier herramienta anti-spam — muchas protecciones basadas en tokens se rompen en silencio en cuanto una caché de página sirve la misma copia a todo el mundo.

blaminhor Construyo lo que falta.

Comentarios