Cómo añadir un formulario de contacto en WordPress en 2026
Resumen
Para añadir un formulario de contacto en WordPress, instala un plugin como Fluent Forms, WPForms o el bloque de Jetpack, crea un formulario corto con nombre, correo y mensaje, e insértalo en una página con su bloque. Después conecta un servicio SMTP con registros SPF y DKIM para que los envíos lleguen a tu bandeja, añade un honeypot contra el spam y prueba el formulario en el sitio real desde otra cuenta de correo.
Cómo añadir un formulario de contacto en WordPress tiene un camino corto: instala un plugin de formularios como Fluent Forms, WPForms o el bloque de formulario de Jetpack, crea un formulario con nombre, correo y mensaje, e insértalo en una página con el bloque del plugin. Los tres primeros pasos llevan diez minutos. El último es donde la mayoría de formularios de contacto fallan en silencio, y es la parte a la que este folio dedica más tiempo.
WordPress no incluye de serie un bloque de formulario. Un tema de bloques te da una página limpia, un grupo, un diseño de columnas y un botón, pero nada que recoja y envíe datos. La pregunta real es, por tanto, qué plugin eliges y cómo configuras la entrega de los mensajes.
¿Necesitas un plugin para añadir un formulario de contacto en WordPress?
Sí, para cualquier formulario que pienses mantener. Puedes escribir un formulario HTML y un manejador en PHP dentro de un tema hijo, y los tutoriales que lo explican son correctos. Pero entonces el manejador se encarga de la validación, el filtrado de spam, las comprobaciones de nonce, el escapado, el almacenamiento y los mensajes de error. Eso es un pequeño plugin que ahora tú tienes que mantener.
En un sitio de cliente, el coste de mantenimiento decide la cuestión. Un manejador que escribiste en 2024 seguirá en el sitio en 2028, mucho después de que hayas olvidado cómo gestiona un envío fallido. Un plugin mantenido recibe correcciones de seguridad de las que tú nunca tienes que preocuparte.
Evita el formulario hecho a mano, salvo que el formulario forme parte del producto. Solo merece la pena si estás creando un plugin o un flujo de trabajo muy poco habitual.
¿Qué plugin de formularios conviene elegir?
Cinco plugins cubren casi todos los casos. Elige según lo que ocurre después del envío, no según la galería de plantillas.
Bloque de formulario de Jetpack: un bloque nativo, sin nada que aprender, válido para una página de contacto sencilla. Está ligado a Jetpack, algo que algunos clientes no quieren.
WPForms Lite: un constructor de arrastrar y soltar con una interfaz amable. La lógica condicional y los pagos están en los planes de pago.
Fluent Forms: un plan gratuito generoso, un constructor rápido y una buena opción para agencias que reutilizan formularios en varios sitios.
Contact Form 7: gratuito y muy ligero, pero se configura mediante una plantilla de texto. No tiene constructor visual, así que entregárselo a un cliente es mala idea.
Gravity Forms: solo de pago, con el mejor ecosistema de complementos y de desarrolladores. Es lo adecuado para formularios de varios pasos e integraciones.
Para una página de contacto estándar en un tema de bloques, Fluent Forms o el bloque de Jetpack bastan. Si lo que envías alimenta un CRM, elige Gravity Forms o WPForms Pro y deja de comparar.
La documentación de Jetpack muestra cómo funciona su bloque de formulario dentro del editor, incluida la colocación en el pie y en las plantillas, algo útil aunque elijas otro plugin.
¿Cómo construyes el formulario?
Instala y activa tu plugin desde Plugins > Añadir nuevo, y crea un formulario nuevo a partir de su plantilla «Contacto» o «Sencillo». Antes de tocar el constructor, decide los campos sobre papel. Cada campo extra reduce el número de personas que terminan el envío.

Un formulario de contacto que funciona para la mayoría de sitios pequeños tiene cuatro campos: nombre, correo, un cuadro de mensaje y, si tu bandeja necesita organizarse, un desplegable opcional de asunto o tema. Un campo de teléfono hace caer las conversiones, salvo que de verdad vayas a llamar a la gente.
Tres ajustes importan más que la maquetación. Primero, marca como obligatorios solo el correo y el mensaje. Segundo, escribe etiquetas reales encima de los campos, no texto de ejemplo dentro de ellos. El texto de ejemplo desaparece mientras se escribe y falla los controles de contraste, algo que importa para WCAG 2.2. Tercero, configura la confirmación para mostrar un mensaje en la misma página, no una redirección, salvo que necesites una URL de agradecimiento para medir conversiones.
Si trabajas con árabe o hebreo, prueba el formulario en RTL antes de entregarlo. Las etiquetas y el botón de envío se reflejan bien en la mayoría de plugins cuando el idioma del sitio está configurado en una localización RTL. El campo de correo no siempre sigue esa dirección. Las direcciones de correo se escriben de izquierda a derecha, así que fuerza dir="ltr" en ese campo con una pequeña regla CSS o con la opción de atributos personalizados del plugin. Si no lo haces, el cursor salta mientras el visitante escribe la arroba.
¿Cómo añades el formulario a una página en el editor de bloques?
Crea una página llamada Contacto, abre el inserter con el botón de más y busca el nombre de tu plugin. Todo plugin de formularios serio registra su propio bloque. Elígelo, selecciona el formulario que creaste y publica.
También puedes colocarlo en otro lugar. En el editor del sitio, abre Apariencia > Editor, elige una parte de plantilla como el pie o una plantilla de página, e inserta allí el mismo bloque. Es la forma de la edición completa del sitio (FSE) de poner un formulario corto en cada pie sin usar shortcodes.
Dos notas de maquetación nacidas del trabajo con clientes. Coloca el formulario dentro de un grupo con un ancho máximo de unos 640 píxeles, porque un formulario estirado a lo largo de una columna de 1200 píxeles se lee mal. Y pon encima una línea de texto simple con una dirección de correo directa. Algunos visitantes nunca usarán un formulario, y ofrecerles una dirección no cuesta nada.
¿Por qué el correo del formulario nunca llega?
Porque WordPress envía el correo con la función de correo por defecto de PHP del servidor web, y los servidores de correo que reciben desconfían de ella. La función wp_mail(), documentada en la referencia para desarrolladores de WordPress, entrega el mensaje a lo que el servidor ofrezca. En hosting compartido, eso suele ser un remitente no autenticado que falla las comprobaciones SPF y DKIM. Gmail y Outlook entonces mandan el mensaje a spam o lo rechazan directamente.
La parte traicionera es que el formulario muestra igualmente un mensaje verde de éxito. El plugin hizo su trabajo. El servidor aceptó el mensaje. Simplemente nunca llegó a la bandeja de entrada.

La solución tiene tres partes.
Instala un plugin SMTP como WP Mail SMTP, FluentSMTP o Post SMTP, y conéctalo a un servicio de correo transaccional.
Configura la dirección de «Remitente» con una dirección de tu propio dominio, por ejemplo
hola@tudominio.com, nunca una dirección gratuita de Gmail.Añade a los DNS de tu dominio los registros SPF y DKIM que te dé el servicio de correo, y publica también un registro DMARC, aunque sea solo de monitorización.
¿Qué servicio elegir? Para un formulario de contacto que envía unos pocos mensajes al día, casi cualquier proveedor transaccional funciona. Postmark está pensado exactamente para este trabajo y mantiene el correo transaccional en una infraestructura separada del correo de marketing.
Si el cliente quiere responder a los contactos más adelante con un boletín, Brevo cubre tanto el envío transaccional como las campañas con una sola cuenta, y su plan gratuito basta para un sitio pequeño.
Un tutorial paso a paso de Mailtrap explica la misma configuración SMTP con capturas de pantalla, si quieres una segunda referencia.
¿Cómo frenas el spam sin molestar a los visitantes reales?
Un formulario público atrae a los bots en cuestión de días. La respuesta habitual es un CAPTCHA, y casi siempre es la primera respuesta equivocada, porque cada desafío que añades te cuesta envíos reales.
Aplica las defensas en este orden y detente en cuanto el spam se pare. Empieza con un honeypot, un campo oculto que los humanos nunca rellenan y los bots siempre sí. La mayoría de plugins de formularios lo incluyen activado por defecto. Añade Akismet si el plugin lo admite. Si el spam persiste, añade un desafío que respete la privacidad, como Cloudflare Turnstile, antes de recurrir a un rompecabezas visual. Reserva la casilla clásica de reCAPTCHA para los formularios que sufren un ataque sostenido.
Limita también la frecuencia de envíos en el servidor si puedes. Una IP que envía cuarenta formularios por minuto no es un visitante.
En el terreno legal, si el sitio atiende a visitantes de la UE, añade una casilla de consentimiento sin marcar que enlace a la política de privacidad, y configura el plugin para no guardar las entradas más tiempo del necesario. Muchos plugins guardan cada envío en la base de datos para siempre por defecto. Cámbialo.
¿Cómo pruebas el formulario antes de entregarlo?
Pruébalo como lo haría un desconocido, y pruébalo en el dominio real, no en staging. El entorno de staging a menudo bloquea el correo saliente, así que un resultado correcto allí no demuestra nada.

Envía el formulario desde un teléfono con datos móviles usando una dirección de Gmail, y luego otra vez con una de Outlook. Revisa la bandeja de entrada y la carpeta de spam de la dirección receptora. Abre las cabeceras del mensaje y busca spf=pass y dkim=pass. Envíalo una vez con todos los campos vacíos y otra con un correo mal escrito a propósito, para comprobar que los mensajes de error son claros y que un lector de pantalla los puede leer.
Después rellena el formulario usando solo el teclado. Si no puedes llegar al botón de envío con el tabulador, o no ves qué campo tiene el foco, corrige los estilos de foco en tu tema.
Nota al margen: lleva un registro. Añade una función del plugin o del servicio de correo que guarde los mensajes enviados, para que, cuando un cliente diga «nunca me llegó ese contacto», puedas responder en un minuto y no en una tarde.
¿Cuándo un plugin de formularios es la herramienta equivocada?
A veces un formulario de contacto no es lo que necesita el visitante. En una tienda, un widget de soporte que lea los datos del pedido gana a un cuadro de mensaje en blanco. En una página de captación de contactos, el formulario debe formar parte de un flujo más amplio con seguimiento.
Si los envíos deben llegar a un CRM o a una hoja de cálculo, envíalos directamente en lugar de copiar correos a mano. Un plugin de formularios con conexión a Zapier puede enviar cada entrada a Sheets, Slack o a tu gestor de proyectos en unos clics.
Y si el formulario es la puerta de entrada a un embudo de ventas, un CRM con sus propios formularios incrustables elimina un plugin de tu pila y mantiene el historial de contactos en un solo lugar. Los formularios gratuitos de HubSpot son el ejemplo habitual.
El patrón es el mismo en todas partes. El formulario son esos diez minutos fáciles. La entrega, las reglas contra el spam y el seguimiento son el trabajo. Abre esta noche el formulario de contacto de tu propio sitio, envíate un mensaje desde otra cuenta y mira cuánto tarda en llegar.