Logo
WP Fix by Blimx

Gravity Forms No Envía — Top 8 Causas y Arreglos

Actualizado:
PluginsForms

El asesino silencioso de leads

Gravity Forms es el plugin premium de formularios WordPress más usado (300,000+ instalaciones activas). Cuando funciona, es confiable. Cuando se rompe, a menudo lo hace silenciosamente — el formulario parece enviarse, el usuario ve un mensaje "gracias", pero la entrada nunca te llega.

El cliente piensa que ignoraste su consulta. Tú no sabes que hay un problema. Los leads mueren callados.

Este artículo es el playbook diagnóstico para cada causa de fallo silencioso de Gravity Forms que hemos documentado.

Cómo saber si tienes envíos silenciosos

Si no puedes estar seguro de que tu formulario funciona, la primera prueba es:

1. Envía un formulario de prueba en el sitio en vivo (usa datos de aspecto real)
2. Revisa Forms → Entries — ¿la entrada está ahí?
3. Revisa la cuenta de email que debería recibir notificaciones — ¿llegó?
4. Revisa Forms → Forms → Settings → Notifications → "Send to" → verifica email

Si el paso 2 falla: las entradas no están guardándose. Problema de backend. Si el paso 2 funciona pero el 3 falla: las entradas guardan pero las notificaciones fallan. Problema de email.

El arreglo depende de cuál.

Causa 1 — El formulario envía, no se guarda entrada

El formulario muestra el mensaje de éxito pero Forms → Entries no tiene nada.

Diagnóstico

Abre DevTools del navegador → Network. Envía el formulario. Busca el POST a admin-ajax.php o wp-json/gf/v2/.

  • ¿200 respuesta, pero ninguna entrada? → JS submission "pretende" tener éxito sin guardar al servidor
  • ¿500 respuesta? → Error backend; revisa log de error PHP
  • ¿El formulario recarga en lugar de enviar? → AJAX deshabilitado o error JS

Arreglo

Si 200 sin guardado, revisa entrada de Gravity Forms en debug.log:

tail -100 /var/www/yoursite/wp-content/debug.log | grep -i gravity

Error común: "RGFormsModel::insert_entry failed" — indica fallo de escritura a base de datos. Revisa espacio de disco y permisos de tabla:

SHOW TABLE STATUS LIKE 'wp_gf_entry';

Causa 2 — Notificaciones no enviando

Las entradas guardan, pero los emails de notificación no llegan.

Diagnóstico

wp eval 'gf_log_test_notification(123, 1);'  # form_id=123, notification_id=1

O, más simple — revisa log de WP Mail SMTP/FluentSMTP si tienes uno instalado.

Si no hay plugin SMTP: instala uno inmediatamente. El wp_mail() nativo usa la función mail() de PHP que la mayoría de hosts ahora bloquean por abuso de spam.

Arreglo

  1. Instala WP Mail SMTP (gratis)
  2. Configura con SendGrid, Postmark, o tu proveedor de mail
  3. Envía un email de prueba desde la config de WP Mail SMTP
  4. Re-prueba envío de formulario

Para la mayoría de sitios WordPress en 2026, el mail() nativo no funciona. Siempre usa SMTP.

Causa 3 — Filtro de spam bloquea envíos válidos

Gravity Forms tiene honeypot incorporado e integración Akismet. A veces estos marcan usuarios legítimos como spam.

Diagnóstico

Forms → Entries → filtra por estado Spam. Si ves entradas ahí, el filtro de spam las atrapó.

Arreglo

  1. En la configuración de cada formulario → Form Settings → Anti-spam → revisa settings
  2. Deshabilita integración Akismet si tienes otro anti-spam (CAPTCHA)
  3. Deshabilita honeypot si tienes CAPTCHA
  4. No dupliques — elige un método anti-spam

Mejor: usa Cloudflare Turnstile, que no tiene los problemas de falso-positivo de Akismet en páginas de formulario.

Causa 4 — AJAX deshabilitado, sin confirmación JS

El formulario tiene envío AJAX deshabilitado. La página refresca tras submit. Los usuarios ven la URL cambiar a ?gf_token=... y pueden pensar que nada pasó.

Arreglo

Habilita AJAX en el embed del formulario:

[gravityform id="1" title="false" description="false" ajax="true"]

O en PHP:

gravity_form(1, false, false, false, null, true);
//                                              ^^^^ ajax = true

Esto hace que el envío pase vía AJAX, con mensajes de confirmación suaves.

Causa 5 — Page caching sirve formulario obsoleto

Tu cache a nivel página sirve el HTML del formulario desde cache. El nonce del formulario expiró, así que los envíos son rechazados con "This form is not properly configured."

Arreglo

En tu plugin de caching (WP Rocket, W3 Total Cache, LiteSpeed):

  • Excluye páginas con Gravity Forms del cache, O
  • Usa el hook "AJAX nonce regeneration" de Gravity Forms que refresca el nonce a demanda

Para WP Rocket: - Settings → Advanced Rules → Never Cache (URLs) → añade /contact/, /quote/, etc.

Para LiteSpeed: - LiteSpeed Cache → Cache → Excludes → URI

Causa 6 — Lógica condicional muestra campos equivocados

Un formulario con lógica condicional (mostrar campo X si se selecciona valor Y) se comporta mal. Los usuarios ven campos que no deberían, o envían sin llenar los requeridos.

Diagnóstico

Esto usualmente está relacionado con JS. Deshabilita cualquier plugin de optimización JS temporalmente y re-prueba.

Arreglo

Si la optimización JS rompe la lógica condicional: - Excluye scripts de Gravity Forms de minificación/deferral - O deshabilita la optimización JS en páginas de formulario

Para WP Rocket, excluye *gforms* de "File Optimization > JavaScript > Files".

Causa 7 — Subidas de archivo fallan silenciosamente

Los formularios con campos de subida de archivo tienen éxito pero el archivo subido nunca aparece en entradas.

Diagnóstico

# Revisa límites de upload PHP
php -i | grep -E "upload_max_filesize|post_max_size|max_input_time"

Defaults comunes son 2M (muy bajo) y 8M post.

Arreglo

En php.ini o .user.ini:

upload_max_filesize = 64M
post_max_size = 80M
max_input_time = 120
max_execution_time = 300

Reinicia PHP-FPM. Re-prueba.

Causa 8 — Código custom rompe envío de formulario

Tú (o un desarrollador previo) añadió código custom a functions.php que se engancha en gform_after_submission. El código lanza un error, pero es después de que la entrada guarda, así que la entrada existe pero las acciones downstream (como sync CRM) fallan.

Diagnóstico

tail -100 /var/www/yoursite/wp-content/debug.log | grep -i "gform\|gravity"

Busca errores mencionando tu hook custom.

Arreglo

Envuelve hooks Gravity Forms custom en try/catch:

add_action('gform_after_submission', function($entry, $form) {
    try {
        // tu lógica custom
        $crm->sync($entry);
    } catch (Exception $e) {
        error_log('GF post-submit error: ' . $e->getMessage());
        // no re-lances — deja al formulario tener éxito
    }
}, 10, 2);

Monitoreando fallos silenciosos

Configura alertas para patrones inusuales de entrada:

# Cron: alerta si no hay entradas en últimas 24h
0 9 * * * /var/www/yoursite/scripts/check-gf-entries.sh

El script:

#!/bin/bash
cd /var/www/yoursite
COUNT=$(wp eval 'echo count(GFAPI::get_entries(0, [], null, ["page_size" => 100], null, null, true));')
if [ "$COUNT" -eq 0 ]; then
    echo "No Gravity Forms entries in last 24h" | mail -s "ALERT" admin@yoursite.com
fi

Errores comunes durante diagnóstico Gravity Forms

  • Confiar en el mensaje "Thank you" — eso es solo JavaScript; no significa que la entrada se guardó
  • No revisar carpeta spam por entradas — Akismet a menudo filtra legítimas
  • Actualizar Gravity Forms sin probar — igual que cualquier plugin; staging primero
  • Editar entradas manualmente en base de datos — corrompe metadata de entrada; usa GFAPI en su lugar

Cuándo llamar a un especialista

Los formularios que fallan silenciosamente cuestan leads diariamente. Hacemos una auditoría Gravity Forms de 1-2 horas que encuentra y arregla la causa raíz para problemas continuos.

Soporte arreglo formularios en horas. Para trabajo más amplio de plugins ve reparación de conflictos de plugin.