En resumen
Flowsery analizó 75.167 grabaciones de sesión de adaptlypost.com en un mes y encontró 3.338 fallos reales procedentes de 66 causas distintas. Nueve de cada diez de esos fallos no levantaron ningún error de consola ni de red, y las sesiones que sí llevaban un error fueron un fallo real el 2,8 % de las veces. Siguen cuatro hallazgos, ordenados por lo que costaron y no por cuántas veces saltaron.
Entre el 13 de julio y el 13 de agosto de 2026, Flowsery analizó 75.167 grabaciones de sesión de adaptlypost.com y marcó 3.338 de ellas como un fallo real para el visitante. Agrupar por causa redujo esa cifra a 66 bugs distintos: uno crítico, siete altos, quince medios, cuarenta y tres bajos.
3.019 de los 3.338 fallos no llevaban error de consola ni error de red. Nueve de cada diez. En ese mismo mes, 11.598 sesiones sí llevaban un error, y 319 de ellas resultaron ser un fallo real. Un monitor de errores habría avisado por las once mil sesiones equivocadas y habría dormido durante las tres mil que importaban.
Los cuatro hallazgos de abajo están ordenados por lo que costaron, no por cuántas veces saltaron.
Sobre AdaptlyPost
AdaptlyPost es un programador de redes sociales que se vende con una prueba de 7 días. Publica en cinco idiomas y tiene un blog con un glosario que Google indexa. AdaptlyPost y Flowsery tienen el mismo fundador.
Cómo se hizo el estudio
La grabación de sesiones llevaba unos dos meses en marcha en el sitio antes de que el análisis con IA se encendiera, el 13 de julio de 2026. Este estudio cubre exactamente un mes desde esa fecha. Las 75.167 grabaciones son ese atraso más todo lo que el tráfico en vivo produjo mientras corría la pipeline.
Una grabación cuenta como fallo cuando el visitante intentó hacer algo que la página ofrecía y la página no lo entregó. Una tarjeta rechazada no es un fallo, porque que un banco diga que no no es un bug. Un botón de pago que no hace nada al pulsarlo sí lo es. Cada fallo lleva una severidad, pasos de reproducción y un enlace a la grabación. Los fallos con la misma causa se agrupan, que es como 3.338 se convirtieron en 66.
Hallazgo 1: el checkout bloqueó pagos de cinco formas distintas
Siete sesiones en la ventana terminaron con el propio sitio deteniendo un pago, de cinco formas separadas.
Dos de los cinco, los errores de servidor, aparecerían en un rastreador de errores. La regla de facturación es el sistema de pagos funcionando como se diseñó, rechazando a un cliente que quiere pagar más. El botón de PayPal muerto no lanza absolutamente nada. La página de mejora de plan que falta es un 404, y los 404 son ruido de fondo en cualquier sitio.
El único problema crítico estaba en la página de inicio de sesión en francés. Un visitante envió el formulario y la página mostró "400: Bad Request", casi seguro porque el widget anti-bots nunca llegó a renderizarse. Se fue. Un formulario de inicio de sesión debería decir "Email o contraseña incorrectos", no enseñar un código HTTP.
Hallazgo 2: un control se tragó los clics en 17 rutas
48 sesiones repartidas en 17 rutas distintas muestran el mismo patrón. Un visitante pulsa un selector, no pasa nada visible, vuelve a pulsar, y otra vez, y luego se va.
Es un solo componente, reutilizado en cada página que pide al visitante elegir algo.
- En el editor de publicaciones en alemán, un cliente con sesión iniciada abre los ajustes de Pinterest y pulsa "elegir tablero" repetidamente. El desplegable nunca se abre. Pulsa "publicar ahora" igualmente. La publicación nunca sale.
- En el generador de posts con IA, "Select Platform" no produce respuesta tras varios clics. El visitante se rinde y pulsa el título de la página.
- En la calculadora de tarifas de influencers, el botón de nivel de engagement ignora seis segundos de clics insistentes antes de registrar por fin uno.
- En el verificador de disponibilidad de nombre de usuario, tres clics sobre la lista de plataformas no hacen nada. El visitante nunca llega a "Check Availability".
Ninguno lanza una excepción. En todos los casos es un manejador de clic que dispara contra un componente cuyo estado visual nunca se actualiza, así que el visitante no puede distinguir "ignorado" de "roto". Los clics de rabia son la única señal, y esa señal existe solo dentro de una grabación.
Hallazgo 3: las traducciones que no cargaron
AdaptlyPost publica en cinco idiomas, y se notan las costuras. Nueve sesiones en la ventana, en cuatro rutas, terminaron con el visitante mirando algo que nunca debió ser texto: una clave de traducción, una página de error en el idioma equivocado o un marcador de posición.
| Lo que vio el visitante | Sesiones | Dónde | Señal de error |
|---|---|---|---|
| Claves de traducción como texto de la página | 5 | /en/media-kit | Ninguna |
| Una página 500 tras cambiar de idioma | 2 | Página de inicio | HTTP 500 |
| Archivos JSON de idioma devolviendo 404 | 2 | Analizador de nivel de lectura, un artículo del blog | 404 en segundo plano |
La página del media kit es el caso más claro. Cinco visitantes aterrizaron en ella y vieron "brandFacts.mediaKit.title" y "brandFacts.mediaKit.description" donde deberían estar el titular y el texto. Ninguno hizo clic en nada. La página devolvió 200 sin errores de consola, así que nada la señaló.
brandFacts.mediaKit.eyebrow
brandFacts.mediaKit.title
brandFacts.mediaKit.description
brandFacts.mediaKit.assetsDescription
Cambiar el idioma a portugués produjo una página 500 con "Ocorreu um erro inesperado". El botón de reintentar cargó la página de inicio en portugués, y 17 minutos después volvió el mismo 500. Otro visitante recibió en la página de inicio en inglés un overlay 500 cuyo botón de reintentar decía "Intentar otra vez", español en una página en inglés.
El selector de idioma también pide archivos de idioma que no existen. Una sesión en el analizador de nivel de lectura registró 24 errores 404 en segundo plano para archivos como /locales/fr/gdpr.json. Cambiar un artículo del blog a español hizo lo mismo.
Después de cerrar la ventana, el 18 de agosto, la versión en español de la guía de zonas seguras salió con el marcador de posición "Original text" como titular principal.
Nada de esto lanza un error que sirva. Las claves en bruto y el marcador de posición son una página renderizando la cadena equivocada. Los 404 de idioma son peticiones en segundo plano que nadie mira. Solo las páginas 500 avisarían a alguien, y una de ellas se resolvió sola al reintentar.
Hallazgo 4: las URLs de glosario que devuelven 404
El hallazgo mayor por número de sesiones, y el más aburrido, que es como sobrevivió tanto tiempo.
Los artículos de glosario de AdaptlyPost viven en /blog/<slug>. En algún momento se publicaron, y luego se indexaron, en /blog/glossary-<slug>. El sitio no tiene ruta para la forma con prefijo.
- 382 URLs
/blog/glossary-*distintas aparecieron en fallos, en 1.287 sesiones - La mayor parte de ese tráfico llegó directamente desde un resultado de búsqueda
- Diez slugs de muestra cotejados con el directorio de contenido: ocho de los diez artículos existen, en la URL sin prefijo
Los artículos existen y posicionan. La URL que Google indexó apunta a nada, y una sola regla de redirección lo arreglaría.
Lo que vio la monitorización de errores
De las 75.167 grabaciones analizadas, 11.598 llevaban un error de consola o de red. 319 de esas eran un fallo real y visible para el visitante. Eso es un 2,8 % de precisión. Abre las repeticiones filtradas por "tiene errores" y 97 de cada 100 serán un rastreador bloqueado o un fetch cancelado.
La otra dirección es peor. De los 3.338 fallos reales, 3.019 no llevaban ningún error. La mayor parte de lo de arriba vive en ese 90 %: el botón de PayPal muerto, la regla de facturación, los clics tragados, la página del media kit imprimiendo sus claves de traducción.
De una repetición a un cambio revisable
El día después de cerrarse la ventana, el agente de Flowsery tomó el problema del selector de engagement del hallazgo 2, leyó la grabación y abrió un pull request contra el código de AdaptlyPost.
Su lectura del bug: pulsar una opción actualizaba un estado que el visitante no podía ver, así que en pantalla no cambiaba nada y el grabador recogió diez clics sin respuesta. El cambio recablea el control para que se comporte como los selectores del sitio que ya funcionan. Un commit, un archivo.
Dónde están las cosas
| Hallazgo | Sesiones en la ventana | Señal de error | Estado |
|---|---|---|---|
| El checkout bloqueó pagos, de cinco formas | 7 | 2 de 5 modos | Arreglado |
| 400 en crudo en el inicio de sesión | 1 | HTTP 400 | Arreglado |
| El selector se tragó los clics | 48, en 17 rutas | Ninguna | Arreglado |
| Traducciones que no cargaron | 9, en 4 rutas | 3 de 9 | Arreglado |
| URLs de glosario que devuelven 404 | 1.287 | HTTP 404 | Arreglado |
Lo que cambió en el mes es la forma del backlog. Antes del 13 de julio era lo que a alguien le daba por notar. Después, es una lista ordenada donde cada entrada lleva un recuento de sesiones, una fecha de primera aparición, una severidad, pasos de reproducción y una grabación que abrir.
"Deberíamos mirar el checkout" pierde contra un ítem del roadmap. "Siete personas intentaron pagar y el checkout se lo impidió, de cinco formas distintas, y aquí tienes la grabación de una" no pierde.
Lo que se generaliza
- Un 200 con una página completamente renderizada
- Un 200 que lleva dentro un mensaje de error
- Un manejador de clic que disparó con normalidad
- 11.598 sesiones marcadas, 319 de ellas reales
- Un titular que dice brandFacts.mediaKit.title
- Un cliente de pago al que se le rechaza una mejora de plan
- Diez clics sin respuesta y luego el visitante se va
- 3.338 fallos reales, 66 causas distintas
Ordena por coste, no por volumen. Los 404 del glosario tocaron 1.287 sesiones y los del checkout siete, y los del checkout valen más.
Trata los controles silenciosos como bugs sin telemetría. Un desplegable muerto no lanza nada, no registra nada y devuelve 200. La única prueba de que existe es una persona pulsando el mismo punto diez veces, y esa prueba está en la grabación o en ninguna parte.
Lee lo que muestra la página, no lo que devolvió el servidor. Un titular que dice brandFacts.mediaKit.title es un 200 sin errores de consola, y también lo es una página en español cuyo titular principal es "Original text". Ninguno aparece como caída de embudo, porque el visitante nunca entró en el embudo.