Tu WooCommerce iba bien con 200 productos. Con 5.000, no tanto
Si ya te has leído una guía de optimización de velocidad y has hecho los deberes -caché, imágenes en WebP, hosting decente, base de datos limpia- y tu tienda sigue arrastrándose en el catálogo, el problema no es genérico. Es específico de cómo WooCommerce guarda y consulta un catálogo grande. Aquí va justo eso: lo que no cuenta una guía general de velocidad.
Si todavía no has hecho esa primera pasada, empieza por nuestra guía de optimización de velocidad: sin esa base, lo que viene aquí no se nota igual.
¿WooCommerce tiene un límite de productos?
No hay un tope oficial. Hay tiendas con decenas de miles de productos funcionando sin problema. Lo que sí existe es un techo de rendimiento, y depende de cómo esté montada la tienda, no de una cifra mágica de productos. El síntoma suele ser el mismo: el catálogo -páginas de tienda, categorías y filtros- se ralentiza mucho antes que el resto de la web, porque es la parte que más le pide a la base de datos.
Por qué pasa: cómo guarda WooCommerce cada producto
WordPress guarda cada producto como una fila en wp_posts, y todo lo demás -precio, SKU, stock, peso, atributos- como pares clave-valor en wp_postmeta. Es un modelo flexible (por eso WooCommerce admite cualquier tipo de producto sin rediseñar la base de datos), pero tiene un coste: cada campo extra es una fila más en una tabla que crece sin parar, y las consultas que cruzan varios de esos campos a la vez -"productos de esta categoría, con este atributo, en stock, ordenados por precio"- se vuelven más caras de calcular según crece la tabla.
Las variaciones de producto lo multiplican. Una camiseta con 4 tallas y 3 colores no es un producto: son 12 filas extra en wp_posts (una por variación) y decenas de filas más en wp_postmeta. Un catálogo de 2.000 productos simples puede pesar menos que uno de 500 productos con 15 variaciones cada uno, aunque el número de productos que ves en el panel sea menor.
Paginación de productos: por qué se nota más con catálogos grandes
Las páginas de tienda y categoría de WooCommerce paginan con el sistema estándar de WordPress, que avanza por offset: pide "página 40" y la base de datos tiene que contar y descartar las 39 páginas anteriores para llegar ahí. Con un catálogo pequeño no se nota. Con miles de productos y varios filtros activos a la vez, cada página que avanza cuesta un poco más que la anterior.
Un error habitual que lo empeora: subir el número de "productos por página" a un valor alto (50, 100) pensando que así se navega más rápido. El efecto suele ser el contrario: cada carga de categoría tiene que montar más fichas, más imágenes y más consultas de precio y stock por variación, así que la página se vuelve más pesada, no más cómoda.
Páginas de categoría con muchos atributos (el filtro que arrodilla la tienda)
Si tu tienda filtra por talla, color, marca y material a la vez, cada combinación que alguien marca dispara una consulta que cruza varias tablas de atributos. WooCommerce lo sabe: por eso desde la versión 6.3 incluye una tabla de consulta de atributos (wc_product_attributes_lookup) pensada exactamente para esto: precalcula qué producto tiene qué atributo para no tener que recorrer todo wp_postmeta en cada filtro.
El problema es que esa tabla hay que tenerla activada y sincronizada. En tiendas migradas o con mucho tiempo sin revisar, es habitual encontrarla desactivada o desactualizada; se comprueba en WooCommerce → Estado → Herramientas, donde está la opción para regenerarla. Si tu tienda ya la tiene activa y sigue lenta con los filtros, el siguiente sospechoso es el plugin de filtrado que uses: varios plugins de filtros avanzados (por buscador visual, por marca, por rango de precio) lanzan sus propias consultas en paralelo a las de WooCommerce, así que puedes acabar pagando el coste dos veces por el mismo filtro.
Qué comprobar antes de instalar nada nuevo
- Cuántas variaciones tiene tu producto medio. Si tus productos con más ventas tienen 20 o 30 variaciones, ahí está buena parte del peso del catálogo.
- Si la tabla de atributos está activa y sincronizada (WooCommerce → Estado → Herramientas → regenerar la tabla de búsqueda de atributos por producto).
- Cuántos productos por página tienes configurados en los ajustes de la tienda, y si ese número tiene sentido para tu catálogo.
- Si tienes caché de objetos activa (Redis o Memcached). Las consultas de metadatos son de las que más se benefician de tener el resultado en memoria en vez de recalcularlo en cada visita.
- Si el plugin de filtros que usas está construido sobre la tabla nativa de WooCommerce o hace sus propias consultas por su cuenta.
Lo que no va a arreglar esto
Un tema más ligero ayuda, y un buen plugin de caché de página ayuda. Pero ninguno de los dos toca el problema de fondo: cuántas filas tiene que cruzar la base de datos para montar una página de categoría con filtros. Si el catálogo es grande y las categorías van lentas incluso con caché activa, el problema está en cómo se consultan los datos, no en cómo se sirve el HTML final.
Si tu WooCommerce se ralentiza justo cuando el catálogo crece, en Codanter entramos en las consultas concretas -variaciones, tabla de atributos, filtros- que una auditoría de velocidad genérica no llega a mirar. Y si el problema no es solo el catálogo sino la web entera, nuestro servicio de optimización web cubre el resto: imágenes, caché, servidor y Core Web Vitals.
Equipo Codanter
Desarrollo web, IA y automatización