Cómo leer wpfaa.log, qué significan los estados y qué hacer en cada caso.
Ubicación y formato
- Archivo:
/wp-content/uploads/wpfaa.log - Formato:
[YYYY-MM-DD HH:MM:SS][dominio] [WPFAA][ESTADO] … | CLAVE:VALOR | …
Estados esperados
- [ALLOW] OK Pasó controles anti-spam. Deberías ver luego [WPFORMS_COMPLETE].
- [WPFORMS_COMPLETE] WPForms terminó el envío (en Lite suele ser
entry_id=0).
Bloqueos duros (HARD)
- BADWORDS — Texto contiene palabra/patrón prohibido.
- HONEYPOT — Campo trampa rellenado (bot).
- TOKEN_TAMPER — Token oculto manipulado (HTML viejo, caché o edición del DOM).
- TOKEN_INCOMPLETE:[…] — Faltan campos ocultos del token (caché de página).
- BAD_REFERRER — Referer de otro dominio (posible CSRF).
- MANY_URLS — Demasiados enlaces en el mensaje.
- NO_LANG — No tiene un lenguaje definido, normalmente bot.
Bloqueos suaves (SOFT)
- TOO_FAST — Se envió antes de
MIN_SECONDS. - EXPIRED — Pasó más de
MAX_SECONDSdesde el render. - RATE_LIMIT — Superó
RATE_LIMITenRATE_WINDOWsegundos. - IP_CHANGED — La IP cambió entre render y submit (VPN/datos móviles); pedir recargar.
Campos útiles del log
IP/XFF— IP directa y primera IP tras proxy/CDN.METHOD,IS_AJAX,USER_ID,FORM_ID.SUBMIT_MS— ms desde que se mostró el form (útil para TOO_FAST o caché viejo).TOKEN_PHvsIP_HINT_NOW— Huella de IP al render vs al validar;IP_HINT_CHANGEDindica si cambió.HP_FILLED— 1 si el honeypot fue llenado.REF_HOST_MISMATCH— 1 si el Referer no coincide.BADWORD— Término/patrón que coincidió (si está habilitado).
Qué hacer en cada caso
- BADWORDS — Ajustar lista de palabras para evitar falsos positivos.
- MANY_URLS — Subir umbral si esperas varios links legítimos.
- TOKEN_INCOMPLETE / TAMPER — Excluir la página del caché (HTML/fragmentos).
- IP_CHANGED — (Legacy) Mantener SOFT o ampliar
MAX_SECONDSsi tu audiencia usa VPN/móvil. - RATE_LIMIT — (Legacy) Ajustar
RATE_LIMIT/RATE_WINDOWa tu tráfico.
Datos útiles
Cuando instales el plugin, recuerda vaciar el cache de tu sitio web para que todo funcione correctamente.
En caso de problemas con usuarios reales como TOKEN_INCOMPLETE (Invalid Token) selecciona la opción Anti-caché en páginas con formulario