Saltar al contenido
POLARGATE
Vajilla y mantelería premium, venta directa al consumidor

Una tienda de menaje reconstruida para que la IA pueda leer el catálogo

Una marca madrileña de vajilla y mantelería premium salió de WordPress y WooCommerce a una tienda a medida. Polargate migró 24 productos y 93 variantes sin acceso al administrador, y convirtió 65 páginas que no servían nada a los rastreadores de IA en páginas con el catálogo entero en HTML plano.

Página de inicio de malacca.es: el titular Un pedacito de Asia en tu mesa junto a una mesa puesta con porcelana azul y blanca, una copa azul y una servilleta bordada.
malacca.es
105.212
caracteres de texto legibles por los rastreadores de IA en 65 URLs, frente a cero antes
65
rutas pregeneradas en el build con sus propios metadatos y JSON-LD
24
productos migrados, en 19 series y 9 categorías
93
variantes de producto verificadas una a una contra el catálogo antiguo
137
imágenes de catálogo regeneradas en WebP a tres anchos
92
referencias en el feed de producto activo para Google Merchant Center y Meta

El problema

La marca llevaba dos años vendiendo online con una tienda en WordPress y WooCommerce y casi no vendía. Ya nadie podía entrar en el administrador de WordPress. El envío se prometía plano cuando las tarifas reales del transportista no lo permitían, había precios tachados sin un precio anterior real detrás y varias afirmaciones sobre el producto y sobre el pago no se podían sostener. Lo peor no se veía: las 65 URLs devolvían cero caracteres de texto a GPTBot, ClaudeBot, PerplexityBot y OAI-SearchBot, así que para un asistente de IA la tienda no tenía ni un solo producto.

Qué construimos

Polargate reconstruyó la tienda sobre su propia base, no sobre otro ecosistema de plugins: Vite, React y TypeScript con Tailwind y shadcn/ui, Supabase para Postgres, Storage, Auth y funciones edge en Deno, y Vercel para el alojamiento. Leímos el catálogo antiguo por la API pública de WooCommerce Store y lo verificamos pieza a pieza: 24 productos, 93 variantes, 19 series, 9 categorías y 137 imágenes regeneradas en WebP a tres anchos. Las 65 rutas se pregeneran en el build con sus propios metadatos y JSON-LD, y tres guardas rompen el build si una ruta baja de 400 caracteres de texto.

El resultado

El catálogo ya es legible tanto para buscadores como para asistentes de IA: 105.212 caracteres de texto en 65 URLs, frente a cero, con refresco cada mañana desde un cron de GitHub Actions que dispara un deploy hook de Vercel. Hay un feed de producto con 92 referencias para Google Merchant Center, Meta y Pinterest, y un sitemap de 64 páginas aceptado en Search Console. El cobro con tarjeta se verificó con un cargo real antes de abrir. La tienda no lleva vendiendo el tiempo suficiente para dar cifras, y Polargate no publica números que no pueda atribuir.

Stack

  • Vite
  • React
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • React Router
  • TanStack Query
  • Supabase
  • PostgreSQL
  • Deno
  • Vercel
  • GitHub Actions
  • Node.js
  • Resend
  • Search Console
  • Meta Ads
malacca.es

Lo que encontramos

La marca llevaba dos años vendiendo online con una tienda en WordPress y WooCommerce, y casi no vendía. Ya nadie podía entrar en el administrador de WordPress, así que leímos el catálogo por la API pública de WooCommerce Store y lo reconstruimos pieza a pieza: 24 productos, 93 variantes, 19 series, 9 categorías y 137 imágenes.

La auditoría sacó problemas que no tenían que ver con el diseño. El envío se prometía plano cuando las tarifas reales del transportista no lo permitían. Había precios tachados sin un precio anterior real detrás. Y algunas afirmaciones sobre el producto y sobre la pasarela de pago no se podían sostener, así que se retiraron.

Y luego el hallazgo que cambió el orden del trabajo. El 4 de agosto de 2026 pedimos cada URL tal y como la ven GPTBot, ClaudeBot, PerplexityBot y OAI-SearchBot. Las 65 páginas devolvían cero caracteres de texto. La tienda solo existía después de ejecutar JavaScript, así que para un asistente de IA el catálogo estaba vacío.

Lo que construimos

Reconstruimos la tienda sobre nuestra propia base, no sobre otro ecosistema de plugins: Vite, React y TypeScript con Tailwind y shadcn/ui, TanStack Query para los datos, Supabase para Postgres, Storage, Auth y funciones edge en Deno, y Vercel para el alojamiento. La seguridad a nivel de fila está activada y forzada en las 25 tablas, y los precios se releen en el servidor antes de cobrar nada.

  • Las 65 rutas se pregeneran en el build, cada una con su título, descripción, canónica, Open Graph y JSON-LD. Tres guardas rompen el build si una ruta baja de 400 caracteres, para que la legibilidad no se pierda sin que nadie se entere.
  • Las imágenes migradas se regeneraron en WebP a tres anchos. Solo la segunda tanda pasó de 80,0 MB de PNG a 11,3 MB, un 85,9 % menos.
  • El envío se calcula en Postgres por peso y zona, y la misma función responde a la estimación del navegador y al servidor que crea el pedido.
  • El cobro con tarjeta va por el TPV virtual del banco del propio cliente con protocolo CECA: el importe se relee en el servidor, la firma se verifica y las notificaciones repetidas son idempotentes.
  • El equipo de la marca lleva la tienda desde un panel propio: pedidos, productos, precios, stock, series y envíos.

Cómo funciona ahora

El catálogo sirve 105.212 caracteres de HTML legible en 65 URLs, y un cron de GitHub Actions dispara cada mañana un deploy hook de Vercel para que las páginas pregeneradas sigan los cambios de stock y de precio. En cada build se regenera un feed de producto con 92 referencias para Google Merchant Center, Meta y Pinterest. El sitemap de 64 páginas está aceptado en Search Console, y el antiguo de WooCommerce, que daba error, ya no está. Las confirmaciones de pedido salen del subdominio del propio cliente.

Antes de abrir pasaron cinco auditorías multiagente, con cada hallazgo verificado de forma adversarial, y se corrigieron más de 70. Varios costaban dinero de verdad: una escena que vendía piezas negras mostrando azules, un pedido que cobraba 99 unidades, un carrito que duplicaba cantidades y un error de IVA en la preparación de unos 80 euros por cada 100 pedidos.

FAQ

Preguntas sobre este proyecto

¿Cuánto se tarda en una migración de WooCommerce como esta?
Esta reconstrucción fue desde finales de julio de 2026 hasta el cambio de dominio el 27 de agosto de 2026. La tienda estuvo en pie en un dominio de prueba la primera semana; el resto del tiempo se fue en reglas de envío, cobros, fotografía y cinco auditorías. Polargate arranca este tipo de proyecto con un Discovery Sprint de pago y precio cerrado, así que el alcance y el calendario se acuerdan antes de escribir código.
¿Se puede migrar nuestro catálogo si hemos perdido el acceso al administrador de WordPress?
Normalmente sí. Este catálogo lo reconstruimos sin entrar ni una vez en WordPress: leímos productos, variantes, precios e imágenes por la API pública de WooCommerce Store y contrastamos cada registro con la tienda en vivo. Así pasaron 24 productos, 93 variantes, 19 series, 9 categorías y 137 imágenes. Si una tienda tiene esa API cerrada, la alternativa es rastrear las páginas públicas y cuadrar el resultado a mano.
¿Por qué mi tienda sale en Google pero no en ChatGPT ni en Perplexity?
Casi siempre porque las páginas solo existen después de ejecutar JavaScript. Google lo renderiza; la mayoría de rastreadores de IA no. Esta tienda estaba indexada en Google mientras devolvía cero caracteres de texto a GPTBot, ClaudeBot, PerplexityBot y OAI-SearchBot en las 65 URLs. La solución es generar HTML real en el build para cada ruta y añadir una guarda para que el texto no vuelva a desaparecer sin que nadie lo note.
¿Se puede conectar la tienda con el TPV de nuestro banco en vez de Stripe?
Sí. Esta tienda cobra por el TPV virtual del banco del propio cliente con protocolo CECA, no con Stripe ni Redsys. El importe se relee del pedido en el servidor, la firma se verifica, las notificaciones repetidas son idempotentes y la respuesta al banco se midió en producción entre 268 y 710 milisegundos frente a un límite de 25 segundos. La capa de pago está abstraída, así que Redsys o Stripe pueden ir detrás de la misma interfaz.
¿Podremos actualizar productos y stock nosotros mismos después?
Sí. El equipo gestiona pedidos, productos, precios, stock, series, reglas de envío y mensajes desde un panel propio, y el stock también se puede sincronizar con el fichero del almacén logístico: la primera pasada corrigió 49 referencias. Las páginas pregeneradas se refrescan cada mañana con una tarea programada, así que los cambios de catálogo llegan a los buscadores y a los rastreadores de IA sin lanzar un despliegue a mano.
INITIATE

Arranca el motor

Cuéntanos qué estás construyendo en unas pocas preguntas cortas. Un ingeniero senior responde por escrito en 48 horas laborables con una primera lectura de alcance, plazos y precio.