📋 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

3
Crítico
4
Alto
9
Medio
5
Bajo
SeveridadConteoCriterio
Crítico3Funcionalidad central inutilizable, errores de renderizado o fallo de backend generalizado.
Alto4Funcionalidad importante falla consistentemente o datos incorrectos impactan la confianza del usuario.
Medio9Degradación notable, contenido faltante o errores recurrentes con workarounds.
Bajo5Problemas 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-session responde con 401 Unauthorized en cada carga de página. También se observa un 401 en /api/auth/patron-login durante el flujo de login.
Pasos para reproducir
  1. Abrir cualquier URL del dominio https://mbies.metabuscador.org.
  2. Abrir las herramientas de desarrollo → pestaña Network/Consola.
  3. Observar la petición GET /api/auth/patron-session con estado HTTP 401.
Evidencia
Error 401 en carga de homepage
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
  1. Navegar a /salas.
  2. Abrir la consola del navegador.
  3. Ver los mensajes "Minified React error #425" y "Minified React error #422".
Evidencia
Página /salas con errores React
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
  1. Cargar la home, /search o un detalle de registro.
  2. Observar en Network las peticiones del harvester que retornan 502.
  3. Repetir en distintos momentos; el error es intermitente pero frecuente.
Evidencia
Resultados de búsqueda con errores de red
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
  1. Ir a /search y buscar "biblioteca".
  2. Seleccionar modo "Texto": se obtienen resultados.
  3. Seleccionar modo "Semántica": se obtienen resultados.
  4. Seleccionar modo "Dual": el contador cae a 0.
Evidencia
Modo Dual sin resultados
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
  1. Buscar "educación" en /search.
  2. Seleccionar "Título A-Z": aparecen resultados.
  3. Seleccionar "Título Z-A": el listado queda vacío.
Evidencia
Orden Z-A vacío
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
  1. Realizar búsquedas con términos variados (p. ej. términos con pocos resultados).
  2. Observar las tarjetas con badges IA.
  3. Identificar barras o etiquetas que muestren "NaN%".
Evidencia
Resultado con barra de coincidencia
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
  1. Navegar a /guias.
  2. Verificar el listado de guías, tutoriales o recursos.
  3. Confirmar que no se presenta contenido.
Evidencia
Página /guias vacía
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
  1. Navegar a /atlas.
  2. Intentar explorar o seleccionar una región/tema.
  3. Confirmar que el contador de documentos permanece en 0.
Evidencia
Atlas inicial vacío
Fig. 8a — Vista inicial de /atlas.
Atlas final sin documentos
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
  1. Buscar "biblioteca" o "medicina".
  2. Observar resultados con año 9999.
  3. Revisar las facetas de año; aparecen años futuros.
Evidencia
Año 9999 en resultados
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
  1. Buscar "biblioteca".
  2. Observar descripciones que terminan con "…".
  3. Verificar que no existe botón o acción para expandir el texto.
Evidencia
Texto truncado en tarjeta
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
  1. Abrir el detalle de cualquier registro proveniente de Koha.
  2. Hacer clic en el enlace al catálogo origen.
  3. Verificar si la URL externa responde 403 o agota el tiempo de espera.
Evidencia
Detalle de registro CESDE
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
  1. Realizar búsquedas con múltiples autores.
  2. Observar en Network las peticiones a api.openalex.org/authors?search=....
  3. Confirmar respuestas 429.
Evidencia
Resultados con autores
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 mailto correctamente y respetar límites de API.
Bajo 13. Altmetric 404 para DOI
Páginas afectadas
/record/*, /search.
Descripción
Las peticiones a api.altmetric.com para recuperar métricas de citas por DOI devuelven 404 Not Found para varios identificadores.
Pasos para reproducir
  1. Abrir registros que contengan DOI.
  2. Observar las peticiones a Altmetric.
  3. Confirmar respuestas 404.
Evidencia
Detalle con métricas Altmetric
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
  1. Navegar entre /search, /collections, /salas, /atlas, /login, etc.
  2. Observar la pestaña del navegador.
  3. Confirmar que el título no cambia.
Evidencia
Título genérico en /search
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
  1. Navegar a /about, /help y /contact.
  2. Verificar el estado HTTP 404 en Network.
  3. Confirmar que no existe contenido real de about/help/contact.
Evidencia
Página /about con 404
Fig. 15a — /about responde 404.
Página /help con 404
Fig. 15b — /help responde 404.
Página /contact con 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
  1. Navegar desde /search hacia un detalle de registro.
  2. Observar la consola durante la transición.
  3. Ver el mensaje de fallo al obtener el payload RSC.
Evidencia
Transición desde /search
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
  1. Ir a /login.
  2. Enviar el formulario vacío o con credenciales incorrectas.
  3. Observar la ausencia de mensaje de error visible.
Evidencia
Formulario login inicial
Fig. 17a — Estado inicial del login.
Login tras envío vacío
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
  1. Acceder al sitio en un navegador compatible.
  2. Observar el banner o metadatos de instalación.
  3. Intentar cerrar/descartar; el control no es persistente.
Evidencia
Banner PWA
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
  1. Abrir varios detalles de registros.
  2. Revisar la sección "Resumen" o "Generar resumen".
  3. Identificar textos que no corresponden al documento.
Evidencia
Resumen con contenido garbage
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
  1. Buscar términos con resultados variados.
  2. Identificar tarjetas donde la línea de autor está ausente.
  3. Comparar con la fuente original.
Evidencia
Registro sin autor visible
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
  1. Revisar el encabezado, menú y footer buscando un toggle de modo oscuro.
  2. Verificar con herramientas de accesibilidad (p. ej. axe) si existen atajos o controles.
  3. Confirmar que no hay alternativa operativa.
Evidencia
Auditoría accesibilidad inicial
Fig. 21a — Estado inicial de controles de accesibilidad.
Modo oscuro no disponible
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.

/salas
3
/about
2
/help
2
/contact
2
/ (home)
1
/search
1
/collections
1
/guias
1
/atlas
1
/login
1

Resumen de errores de red

JS/network
26
502 Bad Gateway
20
429 OpenAlex
12
404 Altmetric/etc
3
401 patron-session
1+

Estado de funcionalidades

  • Operativa parcial (~35%)
  • Degradada / con bugs (~25%)
  • Fallida / no usable (~25%)
  • No verificada / no aplicable (~15%)
FuncionalidadEstadoObservación
Búsqueda TextoDegradadaDevuelve resultados, pero con metadatos sucios y textos truncados.
Búsqueda SemánticaDegradadaFunciona en la mayoría de casos; depende de OpenAlex con rate limits.
Búsqueda DualFallidaDevuelve 0 resultados para términos que sí tienen resultados en otros modos.
Búsqueda FederadaDegradadaFunciona parcialmente, con metadatos inconsistentes.
Filtros por tipo/año/fuenteOperativoVisibles y aplicables, aunque las facetas incluyen años inválidos.
Orden A-Z / recientes / antiguosOperativoResponden correctamente en los escenarios probados.
Orden Z-AFallidoDevuelve 0 resultados para "educación".
PaginaciónOperativaCarga la página 2 correctamente.
AtlasFallidoMuestra 0 documentos.
Guías / RecursosFallidoPágina vacía de contenido.
SalasCríticoErrores React #425/#422.
LoginFallidoFalta feedback de error y sesión responde 401.
AutenticaciónCrítica/api/auth/patron-session 401 en todas las páginas.
Metadatos externos (Koha)Degradado403/timeout en enlaces externos.
Métricas AltmetricDegradado404 para varios DOI.
PWAActivoManifest presente; banner persistente sin opción de descarte.
Accesibilidad / modo oscuroNo operativoControles 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 IDRun IDEscenarioStatusDashboard / 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

  1. Autenticación y sesión: corregir el endpoint /api/auth/patron-session para 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.
  2. Estabilidad del backend: auditar los servicios del harvester, agregar health checks, reintentos con backoff exponencial, circuit breaker y monitoreo de latencia/errores.
  3. 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.
  4. Rate limiting externo: cachear respuestas de OpenAlex, implementar request batching y manejar 429/404 de Altmetric sin mostrar errores en consola.
  5. Enlaces externos: ejecutar un link checker periódico contra catálogos Koha y mostrar estados de disponibilidad al usuario.
  6. 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.
  7. Experiencia de usuario: agregar feedback visual en login, botón "Leer más" para descripciones truncadas, y opción para descartar el banner PWA.
  8. SEO y contenido informativo: generar títulos/descripciones dinámicas por ruta y crear páginas /about, /help, /contact con contenido real.
  9. Next.js RSC: revisar middleware, headers de cache y manejo de errores 401/502 en transiciones RSC para evitar fallbacks a navegación completa.
  10. 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.