---
title: "Cómo añadir un honeypot a un formulario de contacto de Contact Form 7"
description: "Valencia, 14/08/2024, G.B. Para ampliar la información del artículo Cómo evitar el spam en los formularios de Contact Form 7 en WordPress , vamos ahora a ver cómo añadir un \" honeypot \" o \"tarro de mi..."
url: https://indaga.net/como-anadir-un-honeypot-a-un-formulario-de-contacto-de-contact-form-7/
date: 2026-08-15
modified: 2026-08-14
author: "Directorio Indaga"
categories: ["Recursos y Utilidades", "WordPress"]
tags: ["blog", "contact form 7", "evitar spam", "honeypot"]
type: post
lang: es
---

# Cómo añadir un honeypot a un formulario de contacto de Contact Form 7

Valencia, 14/08/2024, G.B.

Para ampliar la información del artículo ***[Cómo evitar el spam en los formularios de Contact Form 7 en WordPress](https://indaga.net/como-evitar-el-s…m-7-en-wordpress/),*** vamos ahora a ver cómo añadir un «*honeypot*» o «tarro de miel» a un formulario de Contact Form 7 para engañar a los bots y evitar así el maldito spam, en la medida de lo posible…

Son tres sencillos pasos:

**1) Añadir el campo oculto al formulario**

En el editor de Contact Form 7, dentro de la pestaña Formulario, añade este campo en cualquier parte del formulario (por ejemplo, justo después del campo de nombre):

Esto genera un campo de texto normal llamado *website-url*. El nombre es arbitrario, pero conviene que suene «atractivo» para un bot (*website*, *url*, *phone-number*… campos que suelen rellenar automáticamente).

**2) Ocultarlo con CSS**

Añade esta regla a la hoja de estilos del tema (o al Personalizador → CSS adicional):

.wpcf7-form p:has(input[name="website-url"]) {
position: absolute;
left: -9999px;
top: -9999px;
}
Si prefieres no depender de :has() (por compatibilidad con navegadores muy antiguos), puedes envolver el campo en un <span> con una clase propia desde el editor de CF7 en modo HTML:

<span class="cf7-honeypot"></span>
y luego:

.cf7-honeypot {
position: absolute;
left: -9999px;
top: -9999px;
}
Ambas opciones son válidas; la primera es más simple si no necesitas soportar navegadores muy antiguos.

**3) Validar el envío en functions.php**

Contact Form 7 incluye desde la versión 5.1 el filtro wpcf7_spam, pensado justo para esto:

add_filter( 'wpcf7_spam', function ( $spam, $submission ) {
if ( $spam ) {
return $spam; // ya marcado como spam por otra regla, no seguimos
}

$data = $submission->get_posted_data();

if ( ! empty( $data['website-url'] ) ) {
return true; // el honeypot llegó relleno: es un bot
}

return $spam;
}, 10, 2 );
Con esto, si el campo *website-url* llega con cualquier contenido, Contact Form 7 marca el envío como spam internamente y lo bloquea antes de que se envíe el correo, sin mostrar ningún error confuso al bot (simplemente no pasa nada, como sería el comportamiento esperado desde su perspectiva).

**Nota importante sobre el name del campo**

Evita nombres como *honeypot* o *trap*: los bots más elaborados ya los reconocen y los saltan. Cuanto más «normal» parezca el nombre del campo (*address*, *company*, *fax-number*), más probable es que un bot lo rellene sin sospechar nada.
