Búsqueda de productos en PrestaShop: filtros y páginas SEO

Los filtros de una tienda PrestaShop se configuran motor por motor, con precios indexados por grupo de clientes y listados filtrados fuera del índice. Pasos, casos concretos y límites.

Recherche produits PrestaShop : filtres à facettes et pages SEO

Un cliente escribe «tshrt» y no encuentra nada. Otro marca «Talla M» y ve productos con esa talla agotada. Un tercero abandona la categoría porque el filtro de precio no coincide con el precio de la ficha. Estos tres casos suelen venir de filtros que leen un índice que no sigue ni los precios reales ni las palabras de los clientes. Advanced Search Pro sustituye la búsqueda por facetas de PrestaShop por motores de filtros configurables. Estos son los pasos, lo que cambia en la tienda y los casos en los que no conviene.

¿Cómo añadir filtros a la página de resultados de búsqueda?

Cree un motor de filtros y marque «Página de resultados de búsqueda» en «Dónde mostrar»: los resultados reciben los filtros del motor.

Un motor es un bloque de filtros autónomo, con sus grupos, su posición y sus páginas. Abra Advanced Search Pro > Motores de filtros. «Importar las plantillas» recupera las plantillas de la búsqueda por facetas de PrestaShop; «Crear el motor recomendado» propone categorías, precio, atributos, características, marcas, disponibilidad y promociones.

  1. Abra el motor y despliegue «Dónde mostrar».
  2. Elija «Todas las páginas» o «Páginas elegidas» y marque «Página de resultados de búsqueda».
  3. Elija «Columna izquierda», «Columna derecha» o «Ancho completo, encima del contenido», y guarde.
  4. Compruebe que el motor está activo y abra Indexación y estado: si el panel indica que la búsqueda por facetas está activa, pulse «Desactivar la búsqueda por facetas».

En una página de resultados, los filtros se aplican a los productos de la búsqueda en curso: escribir «vestido» y luego elegir un color no mezcla el resto del catálogo. La búsqueda guiada de la página de inicio sigue otra regla: filtra una categoría fija o todo el catálogo y después abre su página de resultados. La ficha del módulo resume las posiciones disponibles y la documentación detalla cada ajuste de un motor.

¿Por qué el filtro de precio no coincide con el precio de la ficha?

Porque el filtro lee un índice de precios calculado por grupo de clientes: un descuento de grupo definido en una categoría cuenta para cada producto de esa categoría, como en la ficha.

El filtro no vuelve a leer la ficha en cada clic. Lee un índice que contiene el precio que ve el cliente: promociones con sus fechas, descuentos de grupo, impuestos y moneda del visitante. Añadir, modificar o eliminar un descuento de grupo actualiza los precios afectados.

Un grupo de clientes creado después de la instalación aún no tiene sus precios en ese índice. El módulo solicita entonces una reconstrucción de los precios. La página Indexación y estado lista los grupos afectados con el mensaje «Los precios no están indexados todavía para estos grupos de clientes» y el botón «Reconstruir el índice». La tarea programada termina el trabajo si usted no hace clic. Durante la reconstrucción, los listados siguen disponibles.

Indexación y estado lista los grupos de clientes cuyos precios aún no están indexados y ofrece «Reconstruir el índice».
Indexación y estado lista los grupos de clientes cuyos precios aún no están indexados y ofrece «Reconstruir el índice».

¿Cómo encontrar un producto cuando el cliente escribe «tshrt»?

El módulo sigue la búsqueda aproximada de PrestaShop, activa por defecto: «tshrt» encuentra la camiseta. También conserva todos los productos que contienen todas las palabras escritas, sin límite por palabra.

La búsqueda aproximada es un ajuste de PrestaShop, no del módulo. Cuando está activa, una palabra sin coincidencia se sustituye por la palabra más cercana del catálogo. PrestaShop limita el número de sustituciones por búsqueda: cuatro por defecto, es decir, cinco palabras como máximo. El módulo respeta ese límite. Una palabra que sigue sin coincidir se ignora, igual que en la búsqueda nativa, y la búsqueda no devuelve nada si no queda ninguna palabra.

Una palabra muy frecuente, presente en más de 5.000 productos, no corta la lista. La búsqueda conserva los productos que contienen todas las palabras escritas, los ordena por relevancia y después por identificador cuando dos productos se parecen. Los caracteres especiales se neutralizan antes de la consulta: un nombre como «L'Oréal & Co» no rompe la búsqueda.

¿Cómo evitar el contenido duplicado en las listas filtradas?

Los listados filtrados que no corresponden a ninguna página SEO reciben «noindex, follow», un ajuste activo por defecto; una selección que corresponde a una página SEO recibe también «noindex, follow» y un solo canonical hacia esa página.

«Listados filtrados no indexados» está en Ajustes. Deja fuera del índice las combinaciones que sus visitantes construyen con cada clic, para que los buscadores indexen sus categorías y sus páginas SEO en lugar de variantes sin fin.

Una página SEO es una categoría con filtros preseleccionados, por ejemplo «Camisetas blancas» en Ropa. En Páginas SEO, elija la categoría, marque los valores que definen la página y redacte en cada idioma el título, la dirección, la metadescripción y el texto de introducción. Solo se ofrecen los valores que tienen productos en la categoría. La página entra en el sitemap cuando el módulo Google sitemap de PrestaShop está activo, y ese sitemap solo incluye las páginas SEO de las categorías de la tienda. La página SEO y la página de resultados del módulo conservan sus propias etiquetas robots y canonical.

¿Cómo mantener el foco del teclado en los filtros?

Tras el botón «OK» del precio, la eliminación de un filtro activo o «Borrar todo», el foco vuelve al bloque de filtros: el botón del mismo precio, el siguiente filtro activo o el título del bloque.

Sin ese retorno, quien navega con el teclado tiene que recorrer de nuevo la cabecera y el menú por cada filtro eliminado. El módulo devuelve el foco al lugar correcto y lo mueve sin desplazar la página. El número de productos encontrados se anuncia a los lectores de pantalla.

El panel móvil se cierra con el botón de cierre o la tecla Escape; el umbral móvil es ajustable, 768 px por defecto. Para comprobar su configuración, abra una página de categoría y use solo Tab, Intro y Escape: cada valor debe ser alcanzable y, al quitar un filtro activo, el foco debe quedarse dentro del bloque. Para una auditoría completa del recorrido, la auditoría EAA y WCAG cubre este tipo de control página por página.

¿Qué hacer cuando un catálogo grande ralentiza la búsqueda?

Los contadores salen de un índice dedicado, no de un recorrido del catálogo en cada clic: ajuste «Productos por etapa de indexación», mantenga activa la tarea programada y deje que una reconstrucción interrumpida se reanude.

Dos ajustes limitan la carga. La caché de los contadores de filtros conserva los filtros de las páginas sin selección y, cuando la caché de PrestaShop está activa, todas las selecciones. «Productos por etapa de indexación» divide la reconstrucción en lotes, con una barra de progreso, sin vaciar los resultados durante la operación.

La tarea programada indicada en Indexación y estado procesa los productos pendientes, termina una reconstrucción empezada y actualiza las promociones que empiezan o terminan; prográmela cada quince minutos. Una reconstrucción detenida por un error se reanuda en la etapa siguiente, en el siguiente paso de la tarea o al volver a hacer clic. El panel también señala los productos modificados pendientes y permite indexarlos de inmediato.

¿Para quién es este módulo y para quién no?

Es para una tienda que vende productos con combinaciones en varias familias de productos y quiere filtros rápidos con páginas de filtros indexables. Se apoya en el índice de búsqueda de PrestaShop y en sus propias tablas, no en un motor de búsqueda externo.

Un catálogo de ropa ilustra el caso habitual: tallas, colores, materiales, marcas y promociones en los mismos listados. Un motor general filtra todas las páginas; un motor dedicado a una categoría añade las características adecuadas. La opción «Solo combinaciones en stock» evita que aparezca una talla M agotada, y una página SEO «Camisetas blancas» da a esa combinación su propia dirección, sin indexar las demás.

Los límites que conviene conocer:

  • Su tema debe usar el listado de productos estándar de PrestaShop, como Classic o Hummingbird. El panel de estado señala un tema que no parece usarlo.
  • Desactive la búsqueda por facetas de PrestaShop: dos módulos de filtros sobre los mismos listados se estorban.
  • No hay redirección 301 hacia una página SEO: la selección correspondiente recibe un canonical, no una redirección.
  • Los límites del deslizador de precio son números enteros; el módulo no filtra al céntimo.
  • Se necesita una licencia válida. Sin licencia, el módulo se desactiva: los filtros, la búsqueda guiada y las páginas SEO dejan de mostrarse, y el índice deja de actualizarse. Las páginas SEO y la página de resultados responden «página no encontrada», pero se conservan sus motores, filtros, páginas SEO, ajustes e índice. Abra la página de configuración: en cuanto la licencia sea válida, esa página reactiva el módulo.
  • La desinstalación elimina las tablas, los ajustes y las claves de licencia, como indica la confirmación.

Después de la fecha de caducidad guardada, una licencia sigue activa siete días, lo que cubre una renovación tardía. Pasado ese plazo, el módulo pregunta al servidor como máximo una vez por hora, con un tiempo de espera corto. Un incidente pasajero del servidor de licencias no es una caducidad: deja siete días de tolerancia desde el primer fallo. Solo un veredicto final (licencia caducada, suspendida, revocada o no encontrada, firma no válida, dominio no registrado) pone fin a la licencia.

La página Configurar muestra la clave enmascarada, el dominio, la fecha de caducidad y los días restantes, y confirma que el módulo se ha reactivado.
La página Configurar muestra la clave enmascarada, el dominio, la fecha de caducidad y los días restantes, y confirma que el módulo se ha reactivado.

El módulo se instala en PrestaShop 1.7.8, 8.0+ y 9.0+, con PHP 7.4 como mínimo. En PHP 7.1 a 7.3 muestra un mensaje claro en lugar de provocar un error fatal. Para las páginas en caché y los datos estructurados que acompañan a estos listados, Cache Pro y Schema Pro completan la configuración.

Preguntas frecuentes

¿Por qué no aparecen mis filtros en la página de resultados de búsqueda?
Probablemente el motor de filtros no está activado para esa página. Abra Motores de filtros, despliegue «Dónde mostrar» y marque «Página de resultados de búsqueda»; después guarde y active el motor. Compruebe también en Indexación y estado que la búsqueda por facetas de PrestaShop está desactivada: cuando los dos módulos sirven los mismos listados, el módulo nativo puede imponerse.
¿El filtro de precio tiene en cuenta las promociones y los descuentos de grupo?
Sí. El precio indexado es el que paga el cliente: promociones con fecha, descuentos de grupo, impuestos y moneda incluidos. Un descuento definido en una categoría cuenta para todos sus productos. Tras añadir un grupo o un descuento, «Reconstruir el índice» en Indexación y estado recalcula los precios.
¿La búsqueda encuentra los productos mal escritos?
Sí, si la búsqueda aproximada de PrestaShop está activa, que es lo habitual. El módulo no tiene un ajuste propio: active o desactive esa opción en PrestaShop y los filtros la siguen. Una palabra sin coincidencia se ignora en lugar de bloquear la búsqueda.
¿Google indexa los listados filtrados?
No: las combinaciones construidas con clics permanecen en «noindex, follow», también las que corresponden a una página SEO. En ese caso, un solo canonical apunta a la página SEO, y esa página es la que indexan los buscadores. El sitemap solo incluye las páginas SEO de las categorías de la tienda.
¿Puede el módulo gestionar un catálogo de decenas de miles de productos?
Sí: la búsqueda lee un índice dedicado y no el catálogo, sin límite de 5.000 filas por palabra. Hasta 50.000 resultados, la ordenación por relevancia se hace en PHP; por encima, el orden es el de los identificadores. Para un catálogo de ese tamaño, mantenga activa la tarea programada y revise la cola tras una importación.
¿Se pierde el foco del teclado al quitar un filtro activo?
No. El módulo sabe dónde debe volver el foco y lo coloca ahí: en el botón de precio utilizado, en el siguiente filtro que sigue activo o en el título del bloque cuando ya no queda ninguno. El movimiento no desplaza la página y se anuncia el número de productos encontrados.

Productos de este artículo

Encuentre el módulo que su tienda necesita

Ver los módulos