Honeypot de formularios en WordPress: frena bots sin captcha
Un honeypot de formulario atrapa bots de spam en WordPress con un campo que las personas nunca ven y los bots siempre rellenan, y ReportedIP Hive lo combina con una prueba de que el formulario se mostró de verdad en un navegador. Esta guía explica las dos capas, qué pasa con un envío rechazado y qué formularios quedan protegidos en cada plan, sin un solo captcha.
¿Qué es un honeypot de formulario?
Un honeypot es un campo de formulario adicional oculto para las personas. Está fuera de la pantalla, el teclado lo salta, el autocompletado lo ignora y los lectores de pantalla no lo ven. Una persona nunca lo toca. Un bot de spam que rellena cada campo que encuentra también rellena este, y eso basta para saber que el envío no viene de una persona.
La ventaja frente a un captcha es que nadie tiene que resolver nada. No hay imagen distorsionada, ni puzzle de semáforos, ni script de terceros que rastree a los visitantes. El límite es igual de claro: un bot escrito para un sitio concreto puede aprender a dejar el campo vacío. Por eso Hive no se fía solo del honeypot. La interfaz de Hive está en inglés, así que las etiquetas y los mensajes citados en esta guía también lo están.
Por qué un honeypot solo no basta
Muchos scripts de spam ni siquiera cargan el formulario. Envían sus datos directamente a la dirección que procesa comentarios o registros, por ejemplo wp-comments-post.php. Un script así nunca ve el honeypot, no puede rellenarlo y supera una comprobación que solo busca un campo relleno.
Por eso Hive añade la Form execution proof. El servidor coloca un campo ancla oculto en el formulario, y un pequeño script en el navegador añade un segundo campo cuyo nombre es distinto en cada instalación. Un script que envía directamente a la dirección nunca ha ejecutado ese código, así que le falta el segundo campo. La página es igual para todos los visitantes, de modo que las cachés de página siguen funcionando.
Los cuatro veredictos de cada envío
A partir de los dos campos, Hive llega a uno de cuatro veredictos:
| Veredicto | Qué llegó | Qué significa |
|---|---|---|
| Probado | Honeypot vacío, prueba presente | Un navegador mostró el formulario y una persona lo envió. |
| Activado | Honeypot relleno | Un bot rellenó cada campo que encontró. |
| Fallido | Campo ancla presente, falta la prueba | La página se cargó, pero el script del navegador nunca se ejecutó. |
| Ausente | Ningún campo | El formulario no tenía campos de protección, por ejemplo por una página antigua en caché o un tema con su propio marcado de comentarios. |
«Ausente» se trata con indulgencia, porque tiene causas inofensivas. Un tema que escribe su propio formulario de comentarios sin los hooks habituales de WordPress nunca se trata como un bot.
Qué pasa con un envío rechazado
- Honeypot relleno: el envío se rechaza con «Your submission was not accepted. Please reload the page and try again.». Hive lo registra, lo suma de inmediato a la escalera de bloqueo progresivo y, en modo Community Network, informa de la dirección a la comunidad. Las direcciones de la lista blanca y los usuarios que pueden editar entradas quedan exentos.
- Falta la prueba en un comentario: el comentario se rechaza con «This form needs JavaScript to be submitted. Switch it on and try again.». La dirección se registra, pero nunca se cuenta ni se bloquea, porque un lector sin JavaScript no es un atacante.
- Falta la prueba en el registro o en el restablecimiento de contraseña: el formulario rechaza el envío y explica por qué. El mensaje del restablecimiento remite además a otro administrador o a WP-CLI, por si alguien ya se ha quedado fuera.
- Todo lo demás: los comentarios pasan además por el filtro de spam de comentarios, que se fija en enlaces, nombres y otras señales de spam. Qué pasa con un comentario marcado se decide en Action on a comment scored as spam: marcar como spam (por defecto), bloquear o desactivado.
Cada rechazo aparece en el Event Log de ReportedIP Hive > Activity, así que en todo momento ves qué dirección se detuvo y por qué.

Qué formularios se protegen en cada plan
| Formularios | Plan |
|---|---|
| Formulario de comentarios, registro de WordPress y WooCommerce, restablecimiento de contraseña | Todos los planes, también Free |
| Contact Form 7 | Todos los planes, también Free |
| Comprobación de cálculo además de la prueba | Desde Professional |
| Gravity Forms, WPForms, Forminator, Formidable Forms, Elementor Forms, Ultimate Member | Desde Business |
La comprobación de cálculo cierra un hueco que deja abierto la prueba simple: un script que lee el nombre del campo en la página y lo devuelve. Con ella, el navegador tiene que resolver una pequeña tarea firmada de tu propio sitio antes de enviar el formulario, y cada tarea solo se acepta una vez. Los detalles de cada plugin de formularios están en las guías de Gravity Forms y de WPForms y Forminator.
Cómo activar la protección
Abre ReportedIP Hive > Protection y la tarjeta Form Protection. En una instalación nueva, Comment honeypot, Form execution proof y el interruptor de Contact Form 7 ya están activados. El campo honeypot solo aparece en el formulario mientras Form execution proof esté activado, así que deja los dos activados juntos.

Con el Expert mode activado, la tarjeta muestra además Apply the proof to sign-up and password reset, Computation check on forms y Action on a comment scored as spam. Si quieres observar antes de rechazar, activa Report-only mode en la tarjeta Blocking & Escalation: Hive registra entonces cada rechazo y no rechaza nada. Para probar la protección, Tools > Diagnostics (visible en Expert mode) hace tres pasadas con tu propio navegador, como un visitante, como el mismo visitante dos veces y como un bot, sin enviar ningún formulario real.
Accesibilidad, caché y privacidad
El honeypot está hecho para que ninguna persona tropiece con él. Lleva aria-hidden="true", que lo oculta a los lectores de pantalla según WAI-ARIA, está fuera del orden de tabulación y excluido del autocompletado, y su etiqueta oculta dice «Leave this field empty».
Nada específico de la petición llega al HTML, así que las cachés de página completa como WP Rocket, LiteSpeed o una CDN siguen sirviendo la misma página. El script mide además cuánto tiempo estuvo el formulario en pantalla y envía los segundos; ese valor se registra junto con un rechazo. No hay cookies, ni huellas digitales, ni peticiones a terceros. En modo Local Shield nada sale de tu sitio. En modo Community Network, la dirección de un bot que rellenó el honeypot se comunica a reportedip.com, y con Community threat check on forms activado, la dirección del visitante se comprueba allí antes de aceptar un comentario, un registro o un restablecimiento de contraseña. La guía de privacidad explica los dos modos en detalle.
Preguntas sobre el honeypot de formularios de WordPress
¿Puede el honeypot bloquear a un visitante real?
Un visitante real nunca ve el honeypot, así que una persona no puede rellenarlo por error. Solo notan algo los lectores con JavaScript desactivado: su comentario se rechaza con un mensaje claro que les pide activarlo. Su dirección nunca cuenta para un bloqueo, porque la falta de JavaScript por sí sola no se considera un ataque.
¿Sigo necesitando un captcha con el honeypot de Hive?
La mayoría de los sitios ya no necesitan captcha. El honeypot atrapa a los bots que rellenan todos los campos, la prueba de ejecución atrapa a los scripts que envían directamente a la dirección del formulario y la comprobación de cálculo, desde Professional, detiene también a los scripts que copian los nombres de los campos. Un captcha solo tiene sentido en formularios que atacan personas a mano.
¿Funciona el honeypot con la caché de páginas?
El honeypot funciona con la caché de páginas porque el marcado del formulario es igual para todos los visitantes. El campo de prueba lo añade un script en el navegador, no el servidor, así que una página en caché sigue siendo válida. Tras una actualización del plugin o al activar un plugin de formularios, Hive da un periodo de gracia a las páginas en caché para que nadie sea rechazado por una copia antigua.
Sigue leyendo
La documentación de Hive explica en detalle la detección de bots y el spam de comentarios y la caché y la compatibilidad. El resto de funciones está en las guías de ReportedIP Hive.