📋 Resumen ejecutivo
Se realizó una auditoría integral del sitio MBIES Metabuscador el día 2026-07-02 utilizando Playwright (Chromium headless) con viewport 1920×1080. Se recorrieron las rutas públicas principales, se ejecutaron escenarios de búsqueda con múltiples términos, modos, filtros y ordenamientos, y se recopilaron errores de consola/red junto con más de 120 capturas de pantalla.
El metabuscador presenta 3 bugs críticos relacionados con autenticación, estabilidad del backend y errores de renderizado en React que bloquean o degradan funcionalidades centrales. Además se detectaron fallos en búsqueda Dual, ordenamiento Z-A, metadatos inválidos (años futuros/9999), enlaces externos rotos/lentos y páginas informativas que devuelven 404. La experiencia de usuario se ve afectada por textos truncados sin expansión, resúmenes con contenido de prueba/garbage, falta de feedback en login, título genérico en todas las rutas y ausencia de controles de accesibilidad y modo oscuro operativos.
- Total de bugs documentados: 21
- Críticos: 3 | Altos: 4 | Medios: 9 | Bajos: 5
- Páginas auditadas: 10 rutas principales
- Escenarios de búsqueda: 25 combinaciones de término, modo, filtro y orden
🚦 Distribución por severidad
| Severidad | Conteo | Criterio |
|---|---|---|
| Crítico | 3 | Funcionalidad central inutilizable, errores de renderizado o fallo de backend generalizado. |
| Alto | 4 | Funcionalidad importante falla consistentemente o datos incorrectos impactan la confianza del usuario. |
| Medio | 9 | Degradación notable, contenido faltante o errores recurrentes con workarounds. |
| Bajo | 5 | Problemas cosméticos, menores o de bajo impacto en el flujo principal. |
🐛 Bugs detallados
Cada bug incluye severidad, páginas afectadas, descripción, pasos para reproducir, evidencia, impacto y recomendación. Los paneles son colapsables.
Crítico 1. 401 Unauthorized en /api/auth/patron-session en todas las páginas ▼
- Páginas afectadas
- Todas las rutas auditadas: /, /search, /collections, /guias, /atlas, /salas, /login, /about, /help, /contact.
- Descripción
- El endpoint de sesión de usuario
/api/auth/patron-sessionresponde con 401 Unauthorized en cada carga de página. También se observa un 401 en/api/auth/patron-logindurante el flujo de login. - Pasos para reproducir
-
- Abrir cualquier URL del dominio
https://mbies.metabuscador.org. - Abrir las herramientas de desarrollo → pestaña Network/Consola.
- Observar la petición
GET /api/auth/patron-sessioncon estado HTTP 401.
- Abrir cualquier URL del dominio
- Evidencia
-
Fig. 1 — Página de inicio con la petición de sesión respondiendo 401. - Impacto
- Imposibilita el reconocimiento de usuarios anónimos/logueados, afecta recomendaciones personalizadas, disponibilidad Koha, historial y cualquier funcionalidad que dependa de sesión.
- Recomendación
- Revisar la estrategia de autenticación: enviar credenciales correctas (cookies/JWT), manejar el caso anónimo devolviendo 200 con sesión de invitado, o suprimir la petición para usuarios no autenticados.
Crítico 2. Errores React #425 y #422 en /salas ▼
- Páginas afectadas
- /salas
- Descripción
- La consola registra dos errores de React minificados: #425 y #422, asociados a hidratación o inconsistencia entre el SSR y el cliente en la página de salas.
- Pasos para reproducir
-
- Navegar a
/salas. - Abrir la consola del navegador.
- Ver los mensajes "Minified React error #425" y "Minified React error #422".
- Navegar a
- Evidencia
-
Fig. 2 — Captura de /salas; la consola reporta los errores React #425 y #422. - Impacto
- Puede provocar hidratación incorrecta, UI congelada o componentes que no responden; afecta negativamente la percepción de calidad y la funcionalidad de reservas de salas.
- Recomendación
- Desplegar la aplicación en modo desarrollo para obtener el mensaje completo de React. Revisar datos SSR versus cliente, uso de
useEffect, keys duplicadas y renderizado condicional.
Crítico 3. Backend inestable: 502 Bad Gateway en múltiples endpoints del harvester ▼
- Páginas afectadas
- /search, /, /collections, /record/* (detalle de registros).
- Descripción
- Durante la auditoría se detectaron múltiples respuestas 502 Bad Gateway en endpoints del backend:
/api/harvester/recommendations,/api/harvester/site-config,/api/harvester/biblio-config,/api/discoveries,/api/koha-availability-batch,/api/trending-topics, entre otros. - Pasos para reproducir
-
- Cargar la home, /search o un detalle de registro.
- Observar en Network las peticiones del harvester que retornan 502.
- Repetir en distintos momentos; el error es intermitente pero frecuente.
- Evidencia
-
Fig. 3 — Resultados de búsqueda con peticiones del harvester fallidas. - Impacto
- Funcionalidades dependientes del harvester (recomendaciones, disponibilidad, temas en tendencia, descubrimientos, placards) no cargan o lo hacen parcialmente, degradando la experiencia.
- Recomendación
- Implementar health checks, reintentos con backoff, circuit breaker y monitoreo de los servicios del harvester. Optimizar tiempos de respuesta para evitar timeouts del proxy inverso.
Alto 4. Modo Dual de búsqueda devuelve 0 resultados ▼
- Páginas afectadas
- /search (modo Dual).
- Descripción
- Para el término "biblioteca", el modo Dual reporta 0 resultados, aunque los modos Texto y Semántica sí devuelven resultados por separado.
- Pasos para reproducir
-
- Ir a /search y buscar "biblioteca".
- Seleccionar modo "Texto": se obtienen resultados.
- Seleccionar modo "Semántica": se obtienen resultados.
- Seleccionar modo "Dual": el contador cae a 0.
- Evidencia
-
Fig. 4 — Modo Dual para "biblioteca" con 0 resultados. - Impacto
- El modo híbrido, promocionado como ventaja de la plataforma, es inutilizable; los usuarios pierden la posibilidad de combinar búsqueda textual y semántica.
- Recomendación
- Revisar la lógica de combinación de índices en el backend: probablemente la consulta Dual use un operador AND estricto, excluya fuentes o falle silenciosamente. Implementar pruebas unitarias para cada modo.
Medio 5. Orden Título Z-A devuelve 0 resultados ▼
- Páginas afectadas
- /search (selector de ordenamiento).
- Descripción
- Para el término "educación", el ordenamiento Título Z-A retorna 0 resultados, mientras que Título A-Z devuelve 60 resultados.
- Pasos para reproducir
-
- Buscar "educación" en /search.
- Seleccionar "Título A-Z": aparecen resultados.
- Seleccionar "Título Z-A": el listado queda vacío.
- Evidencia
-
Fig. 5 — Ordenamiento Título Z-A para "educación" sin resultados. - Impacto
- Los usuarios no pueden ordenar descendentemente por título, limitando la exploración de colecciones grandes.
- Recomendación
- Revisar el parámetro de orden descendente enviado al backend; probablemente se envíe un campo inexistente o una dirección no soportada por el motor de búsqueda.
Alto 6. NaN% IA / NaN% texto en resultados de búsqueda ▼
- Páginas afectadas
- /search (tarjetas de resultados).
- Descripción
- En ocasiones, la barra de coincidencia superior muestra valores como NaN% para IA o texto, indicando que el cálculo de relevancia no está sanitizando valores nulos o indefinidos.
- Pasos para reproducir
-
- Realizar búsquedas con términos variados (p. ej. términos con pocos resultados).
- Observar las tarjetas con badges IA.
- Identificar barras o etiquetas que muestren "NaN%".
- Evidencia
-
Fig. 6 — Barra de coincidencia en resultados; los valores NaN aparecen en ejecuciones con datos incompletos. - Impacto
- Transmite falta de confianza y calidad en el motor IA; confunde al usuario sobre la relevancia de los documentos.
- Recomendación
- Validar numéricamente los scores antes de formatearlos; mostrar "—" o 0% cuando no exista dato, nunca NaN.
Medio 7. Página /guias muestra 0 resultados ▼
- Páginas afectadas
- /guias
- Descripción
- La sección de "Recursos" o guías de usuario carga correctamente como página (HTTP 200), pero su contenido funcional muestra 0 guías disponibles.
- Pasos para reproducir
-
- Navegar a
/guias. - Verificar el listado de guías, tutoriales o recursos.
- Confirmar que no se presenta contenido.
- Navegar a
- Evidencia
-
Fig. 7 — Página /guias renderizada sin contenido. - Impacto
- Los usuarios no acceden a guías de ayuda, reduciendo la autogestión y aumentando la carga sobre soporte.
- Recomendación
- Verificar la fuente de datos de guías, publicar contenido mínimo o mostrar un mensaje informativo mientras se carga/repara.
Medio 8. Atlas muestra 0 docs ▼
- Páginas afectadas
- /atlas
- Descripción
- La funcionalidad Atlas de exploración geográfica/visual no presenta documentos. Las capturas de interacción muestran la vista inicial y final sin registros.
- Pasos para reproducir
-
- Navegar a
/atlas. - Intentar explorar o seleccionar una región/tema.
- Confirmar que el contador de documentos permanece en 0.
- Navegar a
- Evidencia
-
Fig. 8a — Vista inicial de /atlas.
Fig. 8b — Atlas tras interacción, sin documentos cargados. - Impacto
- El Atlas, una funcionalidad diferenciadora, queda inutilizable; los usuarios no pueden descubrir recursos por ubicación o colección.
- Recomendación
- Revisar el endpoint que alimenta el Atlas, verificar que los registros tengan coordenadas/campos geográficos indexados y manejar estados vacíos con mensajes claros.
Medio 9. Fechas futuras e inválidas (9999, 2026, 2027, S/F) ▼
- Páginas afectadas
- /search, /record/*, facetas de año.
- Descripción
- Se encontraron metadatos con años imposibles o futuros: 9999, 2026, 2027, S/F (sin fecha), que distorsionan los filtros de fecha y el ordenamiento.
- Pasos para reproducir
-
- Buscar "biblioteca" o "medicina".
- Observar resultados con año 9999.
- Revisar las facetas de año; aparecen años futuros.
- Evidencia
-
Fig. 9 — Resultado con año 9999 y facetas que incluyen 2026. - Impacto
- Reduce la credibilidad del catálogo y afecta los filtros temporales; los usuarios pueden clasificar mal documentos históricos como futuros.
- Recomendación
- Sanitizar fechas en ingestión: reemplazar placeholders (9999, S/F) por "Fecha desconocida"; validar que el año no supere el actual; ocultar valores inválidos de facetas.
Bajo 10. Texto truncado sin botón de expandir ▼
- Páginas afectadas
- /search (tarjetas de resultados).
- Descripción
- Las descripciones de los resultados aplican la clase
line-clamp-2, cortando el texto a dos líneas sin ofrecer un botón de "Leer más" o expandir. - Pasos para reproducir
-
- Buscar "biblioteca".
- Observar descripciones que terminan con "…".
- Verificar que no existe botón o acción para expandir el texto.
- Evidencia
-
Fig. 10 — Descripción truncada sin control de expansión. - Impacto
- El usuario no puede evaluar rápidamente la relevancia de un documento sin entrar al detalle.
- Recomendación
- Agregar un botón "Leer más" que expanda la descripción o mostrar el texto completo al hacer hover/focus accesible.
Medio 11. Enlaces externos a catálogos Koha con 403 / timeout ▼
- Páginas afectadas
- /record/* (detalle de registros), /search.
- Descripción
- Los enlaces hacia los catálogos Koha externos devuelven 403 Forbidden o sufren timeouts, impidiendo la consulta del documento en la fuente original.
- Pasos para reproducir
-
- Abrir el detalle de cualquier registro proveniente de Koha.
- Hacer clic en el enlace al catálogo origen.
- Verificar si la URL externa responde 403 o agota el tiempo de espera.
- Evidencia
-
Fig. 11 — Detalle de registro con enlaces a catálogo externo. - Impacto
- Rompe el flujo de acceso al material; el usuario queda atrapado en el metabuscador sin poder consultar el original.
- Recomendación
- Auditar periódicamente enlaces externos, implementar un proxy o link checker, y mostrar avisos cuando la fuente no esté disponible.
Medio 12. OpenAlex 429 Too Many Requests ▼
- Páginas afectadas
- /search, /record/*.
- Descripción
- El servicio de autores de OpenAlex responde frecuentemente con 429 Too Many Requests cuando el frontend solicita información de autores en las tarjetas de resultados.
- Pasos para reproducir
-
- Realizar búsquedas con múltiples autores.
- Observar en Network las peticiones a
api.openalex.org/authors?search=.... - Confirmar respuestas 429.
- Evidencia
-
Fig. 12 — Resultados que disparan consultas a OpenAlex; muchas retornan 429. - Impacto
- Falta información de autor, ORCID e instituciones; se generan errores de red que contaminan la consola.
- Recomendación
- Implementar cache local (memoria/disco), rate limiting del lado cliente y request batching. Considerar usar el campo
mailtocorrectamente y respetar límites de API.
Bajo 13. Altmetric 404 para DOI ▼
- Páginas afectadas
- /record/*, /search.
- Descripción
- Las peticiones a
api.altmetric.compara recuperar métricas de citas por DOI devuelven 404 Not Found para varios identificadores. - Pasos para reproducir
-
- Abrir registros que contengan DOI.
- Observar las peticiones a Altmetric.
- Confirmar respuestas 404.
- Evidencia
-
Fig. 13 — Detalle de registro con métricas; Altmetric retorna 404. - Impacto
- Las métricas de impacto (citas, atención online) no se muestran o aparecen en blanco.
- Recomendación
- Validar el DOI antes de consultar Altmetric, manejar 404 mostrando "Sin métricas disponibles" y evitar llamadas innecesarias.
Bajo 14. Título de página genérico en todas las rutas ▼
- Páginas afectadas
- Todas las rutas auditadas.
- Descripción
- El título de ventana (
<title>) es idéntico en todas las páginas: "Catálogo Colectivo - Mesa de Bibliotecas de Antioquia - MBIES". No refleja la ruta ni el término de búsqueda. - Pasos para reproducir
-
- Navegar entre /search, /collections, /salas, /atlas, /login, etc.
- Observar la pestaña del navegador.
- Confirmar que el título no cambia.
- Evidencia
-
Fig. 14 — Página /search con título idéntico al de la home. - Impacto
- Perjudica SEO, accesibilidad, navegación con múltiples pestañas y compartir en redes sociales.
- Recomendación
- Configurar metadatos dinámicos por ruta en Next.js: título descriptivo, descripción, Open Graph y Twitter Cards por página.
Medio 15. Páginas /about, /help, /contact devuelven 404 ▼
- Páginas afectadas
- /about, /help, /contact.
- Descripción
- Las rutas informativas y de contacto responden con 404 Not Found, aunque renderizan una página de error genérica del sitio.
- Pasos para reproducir
-
- Navegar a
/about,/helpy/contact. - Verificar el estado HTTP 404 en Network.
- Confirmar que no existe contenido real de about/help/contact.
- Navegar a
- Evidencia
-
Fig. 15a — /about responde 404.
Fig. 15b — /help responde 404.
Fig. 15c — /contact responde 404. - Impacto
- Impide que los usuarios conozcan el proyecto, obtengan ayuda o contacten al equipo; afecta la confianza institucional.
- Recomendación
- Crear páginas estáticas con contenido real o, al menos, redirigir temporalmente a secciones equivalentes mientras se desarrollan.
Alto 16. RSC payload fetch failures en Next.js ▼
- Páginas afectadas
- /search, /record/*, /salas.
- Descripción
- La consola reporta errores de red del tipo "Failed to fetch RSC payload for ... Falling back to browser navigation" en Next.js App Router. Se observan para rutas de registro y /salas.
- Pasos para reproducir
-
- Navegar desde /search hacia un detalle de registro.
- Observar la consola durante la transición.
- Ver el mensaje de fallo al obtener el payload RSC.
- Evidencia
-
Fig. 16 — Transiciones de navegación que generan fallos RSC. - Impacto
- Degrada el rendimiento percibido al forzar navegación completa del navegador en lugar de transición suave; puede perderse estado de filtros.
- Recomendación
- Verificar middleware, rewrites y headers de cache para endpoints RSC; asegurar que las respuestas RSC sean estables y no devuelvan 401/502.
Medio 17. Login sin feedback de error claro ▼
- Páginas afectadas
- /login.
- Descripción
- El formulario de inicio de sesión no muestra mensajes claros cuando las credenciales son inválidas o el envío está vacío. La única señal es el 401 de red.
- Pasos para reproducir
-
- Ir a
/login. - Enviar el formulario vacío o con credenciales incorrectas.
- Observar la ausencia de mensaje de error visible.
- Ir a
- Evidencia
-
Fig. 17a — Estado inicial del login.
Fig. 17b — Envío vacío sin mensaje de error. - Impacto
- El usuario no entiende por qué no puede iniciar sesión, aumentando la frustración y los intentos repetidos.
- Recomendación
- Mostrar mensajes inline para campos vacíos, credenciales incorrectas y errores de red; anunciar el estado del formulario con ARIA.
Bajo 18. Banner PWA persistente ▼
- Páginas afectadas
- Todas las rutas.
- Descripción
- Se detecta la presencia persistente del banner/instalación PWA (manifest y metadatos apple-mobile-web-app) sin opción de descartarlo o control de frecuencia.
- Pasos para reproducir
-
- Acceder al sitio en un navegador compatible.
- Observar el banner o metadatos de instalación.
- Intentar cerrar/descartar; el control no es persistente.
- Evidencia
-
Fig. 18 — Indicadores PWA persistentes en la interfaz. - Impacto
- Puede molestar a usuarios que no desean instalar la app; ocupa espacio visual.
- Recomendación
- Respetar la preferencia del usuario con una cookie/localStorage para no volver a mostrar el banner tras descartarlo.
Alto 19. Datos de prueba / garbage en resúmenes ▼
- Páginas afectadas
- /record/*, tooltips de IA.
- Descripción
- Algunos registros muestran resúmenes generados o extraídos con contenido de prueba, por ejemplo cadenas como "lsqkbjhx ghjkwbhkjdvhkvkljb..." u otros fragmentos sin sentido.
- Pasos para reproducir
-
- Abrir varios detalles de registros.
- Revisar la sección "Resumen" o "Generar resumen".
- Identificar textos que no corresponden al documento.
- Evidencia
-
Fig. 19 — Ejemplo de resumen con contenido de prueba o garbage. - Impacto
- Daña la credibilidad de la funcionalidad IA y del catálogo; los usuarios pueden compartir o citar información incorrecta.
- Recomendación
- Validar resúmenes contra un diccionario o modelo de calidad, marcar resúmenes de baja confianza, permitir reporte por parte de usuarios y no mostrar contenido de prueba en producción.
Bajo 20. Autor no detectado en algunos registros ▼
- Páginas afectadas
- /search, /record/*.
- Descripción
- En varios registros el autor no se extrae ni se muestra, a pesar de que el metadato está presente en la fuente original. Esto coincide con fallos 429 de OpenAlex.
- Pasos para reproducir
-
- Buscar términos con resultados variados.
- Identificar tarjetas donde la línea de autor está ausente.
- Comparar con la fuente original.
- Evidencia
-
Fig. 20 — Tarjeta de resultado sin información de autor. - Impacto
- Dificulta la atribución correcta y el filtrado por autor; reduce la utilidad académica.
- Recomendación
- Mejorar el mapeo de campos de autor en la ingestión; mostrar al menos el autor disponible localmente sin depender exclusivamente de OpenAlex.
Medio 21. Controles de accesibilidad / modo oscuro no encontrados o no funcionan ▼
- Páginas afectadas
- Todas las rutas.
- Descripción
- No se detecta un control visible y operativo para cambiar al modo oscuro. La interfaz incluye clases
dark:de Tailwind, pero no hay interruptor accesible. Los controles de accesibilidad (tamaño de texto, alto contraste) tampoco están presentes. - Pasos para reproducir
-
- Revisar el encabezado, menú y footer buscando un toggle de modo oscuro.
- Verificar con herramientas de accesibilidad (p. ej. axe) si existen atajos o controles.
- Confirmar que no hay alternativa operativa.
- Evidencia
-
Fig. 21a — Estado inicial de controles de accesibilidad.
Fig. 21b — No se encuentra un toggle de modo oscuro operativo. - Impacto
- Limita la usabilidad para personas con fotosensibilidad o baja visión; el sitio no cumple plenamente estándares de accesibilidad.
- Recomendación
- Agregar un botón de modo oscuro/claro persistente que respete
prefers-color-scheme; incluir controles de accesibilidad y realizar auditoría WCAG 2.1 AA.
📊 Estadísticas
Errores por página
Conteo de errores de consola/red observados en la auditoría de enlaces internos.
Resumen de errores de red
Estado de funcionalidades
- Operativa parcial (~35%)
- Degradada / con bugs (~25%)
- Fallida / no usable (~25%)
- No verificada / no aplicable (~15%)
| Funcionalidad | Estado | Observación |
|---|---|---|
| Búsqueda Texto | Degradada | Devuelve resultados, pero con metadatos sucios y textos truncados. |
| Búsqueda Semántica | Degradada | Funciona en la mayoría de casos; depende de OpenAlex con rate limits. |
| Búsqueda Dual | Fallida | Devuelve 0 resultados para términos que sí tienen resultados en otros modos. |
| Búsqueda Federada | Degradada | Funciona parcialmente, con metadatos inconsistentes. |
| Filtros por tipo/año/fuente | Operativo | Visibles y aplicables, aunque las facetas incluyen años inválidos. |
| Orden A-Z / recientes / antiguos | Operativo | Responden correctamente en los escenarios probados. |
| Orden Z-A | Fallido | Devuelve 0 resultados para "educación". |
| Paginación | Operativa | Carga la página 2 correctamente. |
| Atlas | Fallido | Muestra 0 documentos. |
| Guías / Recursos | Fallido | Página vacía de contenido. |
| Salas | Crítico | Errores React #425/#422. |
| Login | Fallido | Falta feedback de error y sesión responde 401. |
| Autenticación | Crítica | /api/auth/patron-session 401 en todas las páginas. |
| Metadatos externos (Koha) | Degradado | 403/timeout en enlaces externos. |
| Métricas Altmetric | Degradado | 404 para varios DOI. |
| PWA | Activo | Manifest presente; banner persistente sin opción de descarte. |
| Accesibilidad / modo oscuro | No operativo | Controles no encontrados o no funcionan. |
📸 Galería de screenshots
Capturas extraídas del directorio de evidencias .playwright-mcp/. Las rutas son relativas al informe.




















🧪 Registro de tests ejecutados
Nota importante: TestSprite no fue invocado durante esta auditoría. La siguiente tabla refleja los casos de prueba equivalentes ejecutados con Playwright, identificados por los archivos de log y capturas de pantalla generados localmente. Los "enlaces al dashboard" apuntan a los artefactos de evidencia locales para mantener el informe 100% offline.
| Test ID | Run ID | Escenario | Status | Dashboard / Evidencia |
|---|---|---|---|---|
| MBIES-AUDIT-001 | run.log | Auditoría de enlaces internos en 10 rutas | FAILED | md · json |
| MBIES-SEARCH-V3 | run-v3.log | 25 escenarios de búsqueda (términos, modos, filtros, orden) | DEGRADED | reporte · json |
| MBIES-CONSOLE-001 | errors_report.json | Captura de errores de consola en rutas principales | FAILED | json |
| MBIES-RECORDS-001 | record-analysis-log.json | Análisis de detalle de registros y resúmenes | DEGRADED | summary · screenshots |
| MBIES-EXTERNAL-001 | external-links-check.json | Verificación de enlaces externos a catálogos | FAILED | json |
| MBIES-A11Y-001 | controls.json | Inspección de controles de UI y accesibilidad | FAILED | json |
💡 Recomendaciones generales
- Autenticación y sesión: corregir el endpoint
/api/auth/patron-sessionpara que no devuelva 401 en cada carga. Para usuarios anónimos, devolver una sesión de invitado con HTTP 200, o no realizar la petición hasta que se requiera autenticación. - Estabilidad del backend: auditar los servicios del harvester, agregar health checks, reintentos con backoff exponencial, circuit breaker y monitoreo de latencia/errores.
- Calidad de metadatos: sanitizar fechas (rechazar 9999, años futuros, S/F), normalizar autores, eliminar contenido de prueba de los resúmenes y validar la calidad de los datos importados.
- Rate limiting externo: cachear respuestas de OpenAlex, implementar request batching y manejar 429/404 de Altmetric sin mostrar errores en consola.
- Enlaces externos: ejecutar un link checker periódico contra catálogos Koha y mostrar estados de disponibilidad al usuario.
- Búsqueda y ordenamiento: corregir el modo Dual y el orden Título Z-A; agregar tests de regresión para cada modo y cada criterio de orden.
- Experiencia de usuario: agregar feedback visual en login, botón "Leer más" para descripciones truncadas, y opción para descartar el banner PWA.
- SEO y contenido informativo: generar títulos/descripciones dinámicas por ruta y crear páginas /about, /help, /contact con contenido real.
- Next.js RSC: revisar middleware, headers de cache y manejo de errores 401/502 en transiciones RSC para evitar fallbacks a navegación completa.
- Accesibilidad: agregar toggle de modo oscuro visible, controles de accesibilidad y realizar una auditoría WCAG 2.1 AA.
📝 Conclusiones
El sitio MBIES Metabuscador presenta una base funcional sólida en búsqueda textual simple, pero acumula problemas críticos que afectan la confianza y usabilidad: autenticación rota, backend inestable, renderizado fallido en /salas, y funcionalidades promocionadas (Dual, Atlas, Guías) que no entregan resultados. Además, la calidad de los metadatos (fechas inválidas, resúmenes garbage, autores faltantes) y la ausencia de controles básicos de accesibilidad y SEO lastran la percepción profesional del producto.
Se recomienda priorizar la corrección de los 3 bugs críticos y los 4 de alta severidad antes de lanzamientos o comunicaciones masivas. Una vez estabilizados backend y autenticación, el siguiente foco debe ser la sanitización de metadatos, la corrección de búsqueda Dual/Z-A, la creación de páginas informativas y la mejora de accesibilidad. La mayoría de los bugs tienen evidencia objetiva en las capturas y logs incluidos en este informe, lo que facilita su asignación a equipos de backend, frontend y contenido.
Prioridad inmediata: autenticación 401, errores React en /salas, 502 del harvester, modo Dual 0 resultados y resúmenes garbage.