UX de Product Listing Pages: Guía Completa para E-commerce

84 errores de usabilidad en PLPs que cuestan conversiones: layout, thumbnails, filtros, ordenación y funcionalidades que marcan la diferencia en e-commerce.

Jonathan Valenzuela
Jonathan Valenzuela Head of SEO

La PLP como filtro de decisión

La Product Listing Page (PLP) es donde el usuario decide si tu catálogo merece su tiempo. Llevo años auditando e-commerces y el patrón se repite: el usuario no llega a ver el producto porque la página de listado ya lo ha expulsado. Según Baymard Institute con más de 18.000 sesiones de usabilidad, los problemas en PLPs están entre las causas principales de abandono temprano.

El problema no es estético. Es estructural. Una PLP mal diseñada oculta productos relevantes, confunde con filtros inútiles y frustra con información insuficiente.

Layout del listado: la primera impresión

Agrupar variaciones de producto

Uno de los errores más costosos que veo en auditorías: mostrar cada variación de color o talla como un producto separado. Si vendes una camiseta en 8 colores, el usuario ve 8 productos casi idénticos ocupando el listado.

EnfoqueComportamientoResultado
Variaciones separadas8 items idénticos en el gridUsuario pierde contexto, catálogo parece repetitivo
Variaciones agrupadas1 item con swatches de colorCatálogo parece más variado, navegación más eficiente

La regla: agrupa variaciones de un mismo producto en un solo item del listado. Usa swatches o selectores para indicar las opciones disponibles.

Grid View vs List View

No todos los productos se muestran igual de bien en grid. Después de analizar decenas de e-commerces, tengo esto claro:

Tipo de productoVista óptimaRazón
Moda, decoración, arteGridDecisión visual, comparar estética
Electrónica, herramientasListEspecificaciones técnicas visibles
AlimentaciónGridReconocimiento visual del producto
Software, serviciosListComparar features y precios

Para productos visualmente diferenciados (moda, decoración), usa Grid View por defecto. Para productos spec-driven (electrónica, software), List View permite mostrar más información sin forzar al usuario a entrar en cada ficha.

En móvil, considera ofrecer una sola columna para list items que necesitan información técnica. Dos columnas funcionan bien para productos visuales, pero comprimen demasiado la información en productos complejos.

Paginación vs Infinite Scroll vs Load More

MétodoProsContrasMejor para
PaginaciónControl del usuario, fácil volverMás clics, fragmenta la experienciaCatálogos grandes, usuarios que comparan
Infinite scrollFluido, sin interrupcionesImposible llegar al footer, difícil volverFeeds de inspiración, browsing casual
Load MoreEquilibrio, usuario controlaRequiere acción explícitaLa mayoría de e-commerce

Para e-commerce, mi recomendación es clara: Load More con botón que indique cuántos productos quedan por cargar. El infinite scroll tiene problemas severos de accesibilidad y hace imposible acceder al footer donde suelen estar datos de contacto y políticas.

Si usas infinite scroll, implementa anclas en la URL para que el usuario pueda volver al mismo punto después de visitar una ficha de producto. Sin esto, el usuario pierde su posición y tiene que hacer scroll desde el principio.

Número de productos por defecto

Mostrar muy pocos productos obliga a paginar constantemente. Mostrar demasiados ralentiza la carga y abruma.

DispositivoProductos recomendadosRazón
Desktop24-48Suficiente para explorar sin scroll excesivo
Tablet16-24Equilibrio entre densidad y rendimiento
Móvil12-16Scroll vertical natural, carga rápida

Permite al usuario cambiar este valor. Algunos prefieren ver 100 productos de una vez; otros, 12. La opción por defecto debe ser sensata, pero no la única.

Thumbnails: el escaparate visual

Información visual suficiente

El thumbnail debe permitir evaluar el producto sin hacer clic. Este principio es fundamental y lo veo incumplido constantemente. Para productos visuales, esto significa:

  • Producto completo visible, no recortado
  • Fondo que no compita con el producto
  • Tamaño suficiente para apreciar detalles
  • Calidad de imagen adecuada (sin pixelación)
Error comúnImpactoSolución
Thumbnail demasiado pequeñoUsuario no puede evaluarMínimo 200x200px en desktop
Producto recortadoPierde contexto y proporcionesMostrar producto completo
Fondo que distraeDificulta comparaciónFondo neutro consistente
Calidad bajaPercepción de producto baratoImágenes optimizadas pero nítidas

Múltiples ángulos en hover

Para productos donde el ángulo importa (muebles, ropa, accesorios), mostrar imágenes adicionales en hover acelera la evaluación:

<!-- Ejemplo de thumbnail con hover -->
<div class="product-thumbnail">
  <img src="producto-frontal.webp" alt="Producto vista frontal" class="default">
  <img src="producto-lateral.webp" alt="Producto vista lateral" class="hover">
</div>

En móvil, donde no hay hover, considera un carrusel pequeño dentro del thumbnail o la posibilidad de hacer swipe entre imágenes.

Thumbnails para filtros de color

Cuando el usuario filtra por color, el thumbnail debe mostrar el producto en ese color, no en el color por defecto. Parece obvio, pero he perdido la cuenta de cuántos e-commerce muestran el producto en blanco aunque el usuario haya filtrado por rojo.

Productos con múltiples componentes

Para packs, bundles o productos que incluyen accesorios, el thumbnail debe mostrar todos los componentes incluidos. Si vendes una cámara con funda, el thumbnail debe mostrar ambos.

Información del list item

Datos esenciales visibles

Sin entrar en la ficha de producto, el usuario debe poder ver:

DatoCriticidadPor qué
PrecioObligatorioPrincipal factor de decisión
Nombre del productoObligatorioIdentificación básica
Valoración mediaAltaSocial proof, comparación rápida
Número de reviewsAltaContexto para la valoración
DisponibilidadAltaEvita frustración post-clic
Variaciones disponiblesMediaIndica opciones sin entrar

Precio: claridad total

El precio debe ser inequívoco. Estos son los errores que encuentro una y otra vez:

ErrorProblemaSolución
Precio “desde X€” sin contextoUsuario no sabe el precio realMostrar rango o precio del producto mostrado
Precio sin IVA en B2CSorpresa negativa al checkoutSiempre precio final con IVA
Descuento sin precio originalNo se percibe el ahorroMostrar precio tachado + precio actual
Precio por unidad ocultoDificulta comparación en multipacksMostrar precio/unidad junto al total

Para productos con variaciones de precio (tallas, colores), muestra el precio de la variación mostrada en el thumbnail, no el precio mínimo.

Valoraciones: cantidad y calidad

Las valoraciones medias sin contexto son engañosas. Lo repito en cada auditoría: un producto con 4.5 estrellas y 3 reviews no es comparable a uno con 4.3 estrellas y 500 reviews.

MétricaQué mostrarPor qué
MediaEstrellas o númeroEvaluación rápida
CantidadNúmero de reviewsCredibilidad de la media
DistribuciónOpcional: barra de distribuciónDetectar productos polarizados

La regla de oro: media × cantidad. Un producto con menos estrellas pero muchas más reviews suele ser mejor opción que uno con puntuación perfecta y pocas reviews.

Estado de stock

Indicar la disponibilidad en el listado evita que el usuario pierda tiempo visitando productos agotados:

EstadoCómo mostrarloAcción
En stockNo necesita indicaciónNormal
Stock bajo”Últimas unidades”Urgencia legítima
Agotado”Agotado” + opción de notificaciónPermitir alerta de restock
Disponible próximamenteFecha estimadaGestionar expectativas

No ocultes productos agotados del listado por completo: el usuario que busca un producto específico necesita saber que existe aunque no esté disponible ahora.

Diferenciación visual

En listados donde los productos son visualmente similares (cables, componentes, productos blancos), añade diferenciadores:

  • Badges: “Más vendido”, “Nuevo”, “Oferta”
  • Atributos clave: Capacidad, dimensiones, compatibilidad
  • Labels de uso: “Para gaming”, “Profesional”

Estos elementos ayudan al usuario a distinguir productos que de otro modo parecerían idénticos.

Funcionalidades del list item

Swatches de color

Para productos con variaciones de color, los swatches son obligatorios en el listado:

ImplementaciónProblemaSolución
Sin swatchesUsuario no sabe qué colores haySiempre mostrar swatches
Swatches que no actualizan thumbnailDesconexión visualActualizar imagen al seleccionar
Solo algunos colores visiblesUsuario pierde opcionesMostrar todos o indicar “+X más”
Swatches demasiado pequeñosDifícil distinguir colores similaresMínimo 20x20px, mejor 24x24px

En móvil, asegura que los swatches tengan tamaño táctil suficiente (mínimo 44x44px incluyendo padding).

Guardar en favoritos

Este punto es no negociable: permite guardar productos sin crear cuenta. Forzar login para guardar un producto es garantía de abandono.

<!-- Wishlist sin login obligatorio -->
<button class="save-to-wishlist" aria-label="Guardar en favoritos">
  <svg><!-- icono corazón --></svg>
</button>

Usa localStorage para usuarios no logueados. Cuando creen cuenta, migra los favoritos guardados.

Comparador para productos técnicos

Para electrónica, electrodomésticos y productos spec-driven, un comparador es esencial:

FuncionalidadCriticidad
Seleccionar productos para compararObligatoria
Ver comparativa en tablaObligatoria
Specs completos en comparativaObligatoria
Explicación de specs técnicosAlta (ayuda inline)
Destacar diferenciasMedia

La tabla comparativa debe tener datos completos. Una comparativa con celdas vacías no sirve para tomar decisiones.

Quick View para productos visuales

El Quick View permite ver más información sin salir del listado. En mi experiencia, funciona bien para moda y decoración, donde el usuario quiere ver más fotos sin comprometerse a visitar la ficha completa.

Contenido del Quick ViewIncluir
Galería de imágenes
Precio y disponibilidad
Selector de talla/color
Añadir al carrito
Descripción completaNo (enlace a ficha)
Reviews completosNo (enlace a ficha)

En móvil, el Quick View es menos útil porque ocupa toda la pantalla de todos modos. Considera si realmente aporta valor o es mejor ir directamente a la ficha.

Añadir al carrito desde el listado

Para productos de compra recurrente (consumibles, básicos), permite añadir al carrito directamente desde el listado:

Tipo de productoAñadir desde listado
Producto simple, sin variaciones
Producto con variaciones obligatoriasNo (requiere selección)
Producto caro o complejoNo (decisión más meditada)
Compra recurrente (mismo cliente)Sí, idealmente con “comprar de nuevo”

Indicador de productos en carrito

Si el usuario ya tiene un producto en el carrito, indícalo visualmente en el listado. Evita añadir duplicados accidentalmente y ayuda a retomar compras interrumpidas.

Filtros: qué ofrecer

Filtros obligatorios

Independientemente del sector, estos filtros deberían estar siempre. No son opcionales:

FiltroRazón
PrecioPrincipal factor de decisión
Valoración de usuariosSocial proof, calidad percibida
ColorCasi siempre relevante
Talla/TamañoCrítico para moda, muebles, etc.
MarcaPreferencias y confianza

Filtros específicos de categoría

Cada categoría necesita filtros propios basados en los atributos que diferencian los productos:

CategoríaFiltros específicos
ElectrónicaCapacidad, resolución, conectividad
ModaMaterial, estilo, ocasión
AlimentaciónAlérgenos, certificaciones, origen
MueblesMaterial, dimensiones, estilo
CosméticaTipo de piel, ingredientes, formato

Los atributos que diferencian productos deben ser filtros, no categorías separadas. Si vendes abrigos y chaquetas, “Tipo de prenda” es un filtro dentro de “Abrigos y chaquetas”, no dos categorías separadas.

Filtros temáticos

No todos los usuarios saben exactamente qué buscan. Los filtros temáticos ayudan:

Filtro tradicionalFiltro temático
Categoría > Subcategoría”Regalos para él”
Color + Material”Look de oficina”
Precio + Marca”Menos de 50€“
Atributos técnicos”Para piel sensible”

Estos filtros funcionan especialmente bien para ocasiones (bodas, vacaciones), destinatarios (regalos) y problemas que el usuario quiere resolver.

Filtros de estado

FiltroUtilidad
En oferta / RebajadoAlta demanda, ahorra tiempo
NovedadesUsuarios recurrentes
Más vendidosSocial proof, decisión rápida
Disponible ahoraEvita frustración

Filtros: lógica y comportamiento

Lógica AND vs OR

La combinación de filtros debe seguir una lógica predecible. Parece básico, pero he visto implementaciones que lo hacen terriblemente mal:

CombinaciónLógicaEjemplo
Entre tipos de filtroANDColor:Rojo AND Talla:M
Dentro del mismo filtroORColor:Rojo OR Color:Azul

Si el usuario selecciona rojo y azul, quiere ver productos rojos O azules, no productos que sean rojos Y azules simultáneamente.

Permitir selección múltiple

Obligar a elegir un solo valor por filtro es limitante. Si quiero ver productos en rojo, azul o verde, necesito poder seleccionar los tres:

<!-- Mal: Radio buttons (un solo valor) -->
<input type="radio" name="color" value="rojo">
<input type="radio" name="color" value="azul">

<!-- Bien: Checkboxes (múltiples valores) -->
<input type="checkbox" name="color" value="rojo">
<input type="checkbox" name="color" value="azul">

Mostrar número de resultados

Cada opción de filtro debe mostrar cuántos productos coinciden:

Sin contadorCon contador
☐ Rojo☐ Rojo (45)
☐ Azul☐ Azul (12)
☐ Verde☐ Verde (0)

El contador debe actualizarse en tiempo real al aplicar otros filtros. Si ya he filtrado por talla M, el contador de colores debe mostrar solo productos en talla M.

Considera ocultar o deshabilitar opciones con 0 resultados para evitar frustración.

Explicar filtros técnicos

Los filtros con terminología específica del sector necesitan explicación:

<!-- Filtro con tooltip explicativo -->
<label>
  <input type="checkbox" name="ipx7">
  IPX7
  <button aria-label="¿Qué significa IPX7?">ⓘ</button>
</label>

El tooltip o modal debe explicar en lenguaje sencillo qué significa el término y por qué podría importarle al usuario.

Persistencia de filtros

Los filtros aplicados deben mantenerse cuando:

  • El usuario navega a una ficha de producto y vuelve
  • El usuario usa el botón “Atrás” del navegador
  • El usuario cambia de página en el listado

Resetear filtros sin motivo es una de las frustraciones más reportadas en tests de usabilidad. Lo he visto provocar abandonos en sesiones de eye-tracking más veces de las que puedo contar.

Filtros visibles y aplicados

El usuario debe poder ver en todo momento:

  1. Qué filtros tiene aplicados - Chips o lista de filtros activos
  2. Cómo eliminar cada filtro - X o botón claro en cada chip
  3. Cómo eliminar todos los filtros - “Limpiar filtros”
<!-- Filtros aplicados visibles -->
<div class="applied-filters">
  <span class="filter-chip">
    Color: Rojo <button aria-label="Eliminar filtro">×</button>
  </span>
  <span class="filter-chip">
    Talla: M <button aria-label="Eliminar filtro">×</button>
  </span>
  <button class="clear-all">Limpiar filtros</button>
</div>

Filtros: interfaz y layout

Número de opciones visibles

Mostrar demasiadas opciones de filtro abruma. Mi regla: 4-8 opciones visibles inicialmente, el resto con “Ver más”:

Número de opcionesTratamiento
1-8Mostrar todas
9-20Mostrar 8 + “Ver más” expandible
21+Mostrar 8 + buscador dentro del filtro

Filtros numéricos con input libre

Para precio y otras magnitudes, ofrecer solo rangos predefinidos es limitante:

ImplementaciónProblemaSolución
Solo rangos (0-50€, 50-100€…)No coincide con presupuesto realInputs para mín/máx
Solo sliderDifícil precisiónSlider + inputs numéricos
Solo inputsMenos visualInputs + feedback visual

La combinación ideal: slider para ajuste rápido + inputs numéricos para precisión.

Acceso a filtros en móvil

En móvil, los filtros suelen estar ocultos tras un botón. Este botón debe ser:

  • Prominente: No un icono pequeño que se confunda con decoración
  • Con texto claro: “Filtrar” o “Filtros (3)” indicando cuántos hay activos
  • Accesible: Posición fija o sticky para acceder sin scroll
<!-- Botón de filtros móvil accesible -->
<button class="filter-toggle" aria-expanded="false">
  <svg><!-- icono filtro --></svg>
  Filtrar
  <span class="filter-count">3</span>
</button>

Botón “Aplicar” en móvil

En móvil, los filtros suelen abrirse en un panel. Este panel necesita un botón “Aplicar” sticky en la parte inferior:

Sin botón stickyCon botón sticky
Usuario hace scroll, pierde el botónBotón siempre visible
No sabe cómo aplicarAcción clara y accesible
Abandona la selección de filtrosCompleta la acción

El botón debe mostrar cuántos resultados coinciden: “Ver 45 productos”.

Orden de opciones de filtro

El orden de las opciones en un filtro no es trivial. Para listas largas (marcas, colores):

Criterio de ordenCuándo usarlo
AlfabéticoListas largas donde el usuario busca algo específico
Por popularidadListas cortas, el usuario explora
Por relevanciaFiltros contextuales (basados en otros filtros)

Para marcas: alfabético. Para colores: por popularidad o agrupados por familia (azules, rojos…). Nunca orden aleatorio.

Buscador en filtros largos

Si hay más de 20 opciones en un filtro, añade un campo de búsqueda:

<!-- Buscador dentro de filtro de marca -->
<div class="filter-search">
  <input type="text" placeholder="Buscar marca..." aria-label="Buscar marca">
</div>
<ul class="filter-options">
  <!-- opciones filtradas -->
</ul>

Ordenación del listado

Opciones de ordenación que no pueden faltar

CriterioPor qué es necesario
Precio (menor a mayor)Usuarios con presupuesto limitado
Precio (mayor a menor)Usuarios buscando calidad/premium
ValoraciónDecisión basada en social proof
Más vendidos”Lo que otros compran”
NovedadesUsuarios recurrentes

Orden por defecto: diversidad

Tengo una opinión clara aquí: el orden por defecto no debe ser “más barato primero” ni “más caro primero”. Debe mostrar una selección diversa que represente el catálogo:

Orden por defectoProblema
Precio ascendenteUsuario asume que todo es barato
Precio descendenteUsuario asume que todo es caro
Más vendidosHomogeneiza, oculta novedades
Diversidad/RelevanciaRepresenta el catálogo real

Un algoritmo de diversidad mezcla productos de diferentes rangos de precio, marcas y popularidad para dar una imagen completa del catálogo.

Nomenclatura clara

“Precio: bajo a alto” es más claro que “Precio ascendente”. Lo técnico es para los desarrolladores, no para los usuarios:

TécnicoClaro
Ascendente/DescendenteMenor a mayor / Mayor a menor
Por ratingMejor valorados
Por fechaMás recientes

Mostrar orden actual

El selector de ordenación debe mostrar siempre qué criterio está aplicado:

<!-- Dropdown que muestra selección actual -->
<select aria-label="Ordenar por">
  <option value="relevancia" selected>Relevancia</option>
  <option value="precio-asc">Precio: menor a mayor</option>
  <option value="precio-desc">Precio: mayor a menor</option>
  <option value="valoracion">Mejor valorados</option>
</select>

Ordenación por valoración: incluir cantidad

Al ordenar por valoración, no uses solo la media. Un producto con 5 estrellas y 2 reviews no debería aparecer antes que uno con 4.7 estrellas y 500 reviews.

La fórmula debe ponderar media y cantidad. Una aproximación simple:

score = (media × reviews) / (reviews + k)

Donde k es un factor de suavizado (típicamente 10-50) que evita que productos con pocas reviews dominen.

El coste real de una PLP mal diseñada

Una PLP deficiente no solo pierde la venta actual: crea una percepción de catálogo limitado o de tienda poco profesional. El usuario que no encuentra lo que busca no asume que el problema es la interfaz; asume que el producto no existe.

He visto e-commerces perder entre un 15-25% de usuarios en la fase de exploración del catálogo por problemas de PLP. No es anecdótico: es patrón.

El tiempo invertido en optimizar la PLP tiene impacto directo en métricas de engagement (páginas por sesión, tiempo en sitio) y en conversión. Google documenta la importancia de la estructura de navegación para el rastreo en su guía de SEO, y NNGroup tiene investigación extensa sobre filtros y faceted navigation.

La inversión en una PLP bien diseñada se recupera en cada sesión de usuario. No es solo UX: es negocio.