GEO13 min

Datos estructurados: guía práctica de schema para ecommerce

Datos estructurados ecommerce explicados sin humo: qué schema necesita tu tienda, los errores típicos de Shopify y WooCommerce, cómo validarlo en veinte.

Datos estructurados: guía práctica de schema para ecommerce

Los datos estructurados de un ecommerce son un bloque de código JSON-LD que describe tu producto en un formato que Google, los asistentes de IA y los agentes de compra pueden leer sin interpretar el diseño de la página. Una tienda online necesita como mínimo Product con Offer, Organization, BreadcrumbList y, si tiene reseñas reales, AggregateRating. El marcado no garantiza aparecer en resultados enriquecidos ni ser citado por una IA: lo que hace es eliminar ambigüedad sobre precio, stock y nombre del producto.

Soy Oscar Álvarez, fundador de SEOscar, agencia de ecommerce en Barcelona. En casi todas las auditorías que hago aparece el mismo problema con los datos estructurados ecommerce: la ficha de producto dice 49,90 € en pantalla, el JSON-LD dice 59,90 € porque se quedó con el precio anterior, y el feed de Google Shopping dice otra cosa distinta. Tres versiones de la verdad para el mismo zapato.

Eso, que durante años era un fallo menor de SEO, ahora pesa más. Google AI Mode, ChatGPT con navegación y los agentes de compra que empiezan a comparar productos por ti no leen tu plantilla: leen datos. Cuando tus datos se contradicen, el sistema no te penaliza con un castigo explícito, simplemente te descarta porque hay otras tiendas que sí son consistentes.

Esta guía va de eso: qué schema necesita de verdad una tienda, qué se rompe en Shopify y en WooCommerce, por qué el marcado y el feed deben contar la misma historia, cómo validarlo en veinte minutos y qué no va a hacer por ti aunque te lo vendan.

Qué son los datos estructurados en un ecommerce

Los datos estructurados son código que describe el contenido de una página en un vocabulario estándar, Schema.org, para que una máquina lo entienda sin adivinar. En una tienda online se implementan normalmente en JSON-LD, un bloque de JavaScript Object Notation que va dentro de una etiqueta script en el HTML y que no afecta a lo que ve el usuario. Google recomienda JSON-LD frente a microdatos desde hace años.

La diferencia práctica es sencilla. Sin marcado, un buscador tiene que deducir que ese número en negrita es el precio y que ese texto verde significa que hay stock. Con marcado, se lo dices literalmente: price 49.90, priceCurrency EUR, availability InStock. Menos interpretación, menos error.

Qué schema necesita una tienda: Product, Offer, AggregateRating, Organization y BreadcrumbList

Una tienda online necesita cinco tipos de schema para cubrir lo esencial: Product y Offer en cada ficha de producto, AggregateRating solo si tiene reseñas reales y visibles, Organization en todo el sitio para identificar quién vende, y BreadcrumbList en producto y categoría para explicar la jerarquía del catálogo. Con eso cubres la mayor parte del valor práctico; el resto es refinamiento.

Product y Offer: el núcleo de la ficha

Product describe el artículo y Offer describe las condiciones de venta. En Product deberías tener name, image, description, sku, brand y, cuando existe, gtin13 o mpn. El identificador global importa más de lo que parece: es la forma que tiene un agente de compra de saber que tu Nike Pegasus 41 talla 42 es exactamente el mismo producto que el de la tienda de al lado, y poder compararlos.

En Offer van price, priceCurrency, availability, url y priceValidUntil si hay promoción con fecha. Añade shippingDetails y hasMerchantReturnPolicy cuando puedas: Google los usa para mostrar envío y devoluciones en los resultados de producto, y son justo los dos datos que un comprador busca antes de decidir. Si tu tienda tiene envío gratis a partir de 50 €, dilo en el marcado, no solo en un banner.

AggregateRating: solo si las reseñas existen de verdad

AggregateRating marca la nota media y el número de valoraciones de un producto. La regla es inflexible: solo puedes marcarlo si esas reseñas están visibles en la misma página y las ha dejado gente real. Marcar un 4,8 sobre 5 con 127 opiniones que nadie ve en la ficha es una infracción de las directrices de spam de Google y, cuando la detectan, se lleva por delante los resultados enriquecidos de todo el dominio, no solo de ese producto.

En tiendas pequeñas prefiero no marcar nada antes que marcar reseñas infladas. La estrellita amarilla en la SERP (la página de resultados del buscador) compensa poco comparado con perder la confianza del sistema.

Organization y BreadcrumbList: quién eres y dónde está cada cosa

Organization va en la home o en todo el sitio e incluye name, url, logo, sameAs con tus perfiles sociales, y datos de contacto. Para GEO (Generative Engine Optimization, la optimización para motores generativos como ChatGPT, Perplexity o Google AI Mode) es más importante de lo que parece, porque es la pieza que permite a una IA atribuir una afirmación a una entidad concreta y no a una web anónima. Lo explico con más detalle en mi artículo sobre qué es GEO.

BreadcrumbList describe la ruta Inicio > Zapatillas > Running > Nike Pegasus 41. Sirve para que la miga de pan aparezca en la SERP en lugar de la URL cruda, y también para que un sistema entienda cómo está organizado tu catálogo. En tiendas con muchas categorías cruzadas es la señal más barata de arquitectura que puedes dar.

Lo que casi nadie marca y sí merece la pena

  • ItemList en las páginas de categoría, para declarar qué productos contiene la colección y en qué orden.

  • FAQPage en fichas donde haya dudas reales de producto (tallaje, compatibilidad, mantenimiento), no preguntas inventadas para rellenar.

  • ProductGroup con hasVariant cuando vendes el mismo producto en varias tallas o colores con URLs distintas: evita que te vean como productos duplicados.

  • VideoObject si tienes vídeo propio de producto, que es contenido que casi ninguna tienda de la competencia tiene.

  • LocalBusiness si además tienes tienda física, para conectar el ecommerce con la ubicación real.

Errores típicos de schema en Shopify y WooCommerce

El error más repetido en Shopify y WooCommerce no es la falta de marcado, es el marcado duplicado y desactualizado: la plantilla genera un bloque Product, un plugin de reseñas genera otro, y la app de SEO añade un tercero. El resultado son tres precios distintos en la misma página y un validador que no sabe cuál es el bueno.

Shopify

En Shopify, los temas modernos ya incluyen JSON-LD de Product, pero muchas apps de reseñas y de SEO inyectan el suyo encima. Cuando audito una tienda Shopify lo primero que miro es cuántos bloques de tipo Product hay en el código fuente de una ficha: si hay más de uno, hay trabajo. El segundo fallo habitual son las variantes: el tema marca el precio de la variante por defecto y no el de la que el usuario ha seleccionado, así que un producto desde 29 € se marca a 89 €.

Tercer punto: el stock. Shopify a veces mantiene availability InStock en productos agotados hasta que se vuelve a generar la caché. Si vendes stock limitado, eso son clics que llegan a una ficha sin botón de compra. Si trabajas con esta plataforma, en la página de agencia Shopify explico cómo lo abordamos sin tocar el tema por dentro más de lo necesario.

WooCommerce

WooCommerce genera schema de producto por defecto, y encima suelen estar Yoast, Rank Math o similares haciendo lo mismo. La combinación habitual que me encuentro es WooCommerce marcando Product y Yoast marcando otro Product dentro de su grafo @graph, con sku en uno y no en el otro. La solución casi nunca es añadir un plugin más: es desactivar la salida duplicada y dejar una sola fuente.

El otro clásico de WooCommerce son los productos variables. Si usas variaciones con precios distintos, necesitas AggregateOffer con lowPrice y highPrice, o ProductGroup con hasVariant. Marcar un precio único cuando hay un rango genera avisos en Search Console y, peor, desinforma a quien compara. Si tu tienda va sobre esta plataforma, lo tratamos en agencia WooCommerce.

Errores que se repiten en cualquier plataforma

  • Precio con símbolo de euro o separador de miles dentro del campo price: debe ser un número limpio, 1299.00, y la moneda va aparte.

  • Imágenes marcadas con URL relativa o con una miniatura de 100 píxeles en vez de la imagen grande.

  • description del schema copiada de la meta description y distinta de la descripción real del producto.

  • JSON-LD inyectado por JavaScript tras la carga, que a veces se renderiza y a veces no.

  • Marcado presente en staging y ausente en producción, o al revés, con URLs de staging dentro del JSON.

  • Product marcado en páginas de categoría, donde no hay un producto único sino una lista.

Del schema al feed: por qué deben decir exactamente lo mismo

El schema de tu ficha y el feed de productos que envías a Google Merchant Center o a Meta deben contener los mismos valores de precio, disponibilidad, GTIN (el identificador global de producto) y título. Cuando no coinciden, Google puede detectar la discrepancia al rastrear la página de destino y desaprobar el producto en Shopping; y un agente de compra que cruce ambas fuentes se queda con la duda y pasa al siguiente resultado.

Piénsalo como una sola base de datos con tres salidas: la ficha que ve el humano, el JSON-LD que lee la máquina y el feed que consumen los canales de venta. Si esas tres salidas no nacen del mismo sitio, tarde o temprano divergen. En las tiendas que audito, la divergencia aparece casi siempre después de una promoción: se baja el precio en el panel, el feed se actualiza cada 24 horas y el JSON-LD se queda cacheado varios días.

La parte buena es que esto es un problema de proceso, no de SEO, y se arregla con automatización. En SEOscar montamos flujos en n8n (una herramienta de automatización de procesos) que leen el feed, rastrean una muestra de fichas, comparan precio y disponibilidad campo a campo y avisan por correo o Slack cuando hay desviación. Es el tipo de cosa que explicamos en automatizaciones y que evita descubrir el fallo un mes después, en el informe.

Si tu precio en pantalla, tu JSON-LD y tu feed no dicen lo mismo, no tienes un problema de marcado. Tienes un problema de fuente de datos.

Cómo validar los datos estructurados de tu tienda

Para validar datos estructurados de ecommerce usa tres herramientas en este orden: la Prueba de resultados enriquecidos de Google para ver qué detecta en una URL concreta, el Validador de Schema.org para comprobar la sintaxis completa, y el informe de Mejoras de Google Search Console para ver errores a escala en todo el catálogo. Las tres son gratuitas y entre ellas tardas menos de media hora.

Rutina de validación en cinco pasos

  • Coge cinco URLs representativas: un producto simple, uno con variantes, uno agotado, uno en oferta y una categoría. No valides solo tu producto más vendido, que suele ser el único bien configurado.

  • Pásalas por la Prueba de resultados enriquecidos con la versión renderizada, no solo el código fuente, para ver qué sale después del JavaScript.

  • Abre el código fuente y busca cuántas veces aparece "@type":"Product". Si hay más de una por ficha, tienes duplicados que resolver.

  • Compara campo a campo el precio y la disponibilidad del JSON-LD con lo que ves en pantalla y con la fila de ese producto en tu feed.

  • Entra en Search Console, sección Mejoras, y mira los informes de Fragmentos de producto y Opiniones. Ahí verás si el problema afecta a diez productos o a varios miles.

Y después repítelo cada trimestre, o cada vez que cambies de tema, instales una app o lances una campaña de precios. El schema se rompe en silencio: nadie recibe un aviso cuando una actualización de plugin deja de escribir el campo sku.

Lo que el schema NO hace: no garantiza rich snippets ni citas en IA

Los datos estructurados no garantizan resultados enriquecidos, no son un factor de posicionamiento directo y no hacen que ChatGPT o Google AI Mode citen tu tienda. Google lo dice de forma explícita en su documentación para desarrolladores: cumplir los requisitos te hace elegible para aparecer con formato enriquecido, no te da derecho a ello. Que seas elegible y que te muestren son dos decisiones distintas.

Sobre GEO conviene ser igual de claro. Circulan por ahí cifras concretas sobre cuánto multiplica el schema las citas en motores generativos. No he encontrado estudio primario verificable detrás de esos números, así que no los uso ni te los recomiendo citar. Lo que sí observo trabajando con tiendas es más modesto y más útil: cuando el precio, el stock y el nombre del producto son inequívocos y consistentes en todas las fuentes, hay menos motivos para descartarte.

El marcado es condición higiénica, no ventaja competitiva. Lo que mueve la aguja en GEO sigue siendo contenido que responda preguntas reales de compra, entidad de marca reconocible, menciones en sitios que la IA consulta y fichas con información que no esté en el PDF del fabricante. El schema es el envoltorio que permite que todo eso se lea sin ruido. Si te interesa el mecanismo por el que un sistema de IA recupera y cita fuentes, lo cuento en qué es RAG.

Dicho de otro modo: ningún marcado va a salvar una ficha de producto con cuatro líneas de texto, una foto del proveedor y cero reseñas. Arregla primero el contenido, luego márcalo bien.

Qué haría yo desde SEOscar con tu tienda

Si entras con nosotros, el schema no se toca el primer día. La primera semana es diagnóstico con tus datos reales: Search Console para ver qué errores de Mejoras tienes y en cuántas URLs, Merchant Center para ver productos desaprobados y por qué, y una muestra de fichas rastreadas para comparar JSON-LD, pantalla y feed. Ese documento es tuyo, sigas o no con nosotros, y así funciona nuestro método.

Después priorizamos por impacto: primero unificar la fuente de datos y eliminar duplicados, luego completar los campos que faltan y que sí se usan (identificadores, envío, devoluciones), y al final la automatización que vigila que no se vuelva a romper. Trabajamos sobre tu plataforma actual, sin migraciones, y el código y los flujos quedan en tu propiedad.

Si quieres saber en qué estado está tu marcado antes de decidir nada, la auditoría SEO y GEO es el punto de partida razonable. Y si prefieres hablarlo directamente, puedes reservar un diagnóstico: te digo qué está roto, qué merece arreglarse y qué puedes dejar como está.

Preguntas frecuentes

¿Qué datos estructurados necesita como mínimo una tienda online?

Como mínimo, una tienda online necesita Product con Offer en cada ficha de producto, Organization en el conjunto del sitio y BreadcrumbList en producto y categoría. AggregateRating se añade solo si hay reseñas reales y visibles en la misma página. Con esos cuatro tipos bien implementados cubres la mayor parte del valor práctico del marcado.

¿Los datos estructurados mejoran el posicionamiento en Google?

No son un factor de posicionamiento directo. Google indica en su documentación que el marcado te hace elegible para resultados enriquecidos, pero no garantiza que se muestren ni mejora tu ranking por sí mismo. El beneficio real es indirecto: más claridad para el buscador y, cuando aparece el formato enriquecido, mejor tasa de clics.

¿JSON-LD o microdatos para una tienda online?

JSON-LD es la opción recomendada por Google y la más práctica para ecommerce, porque va en un bloque independiente del HTML visible y se puede generar desde una sola fuente de datos. Los microdatos obligan a mezclar atributos dentro de la plantilla, lo que los hace más frágiles ante cualquier cambio de diseño o de tema.

¿Puedo marcar AggregateRating si todavía no tengo reseñas?

No. Marcar valoraciones que no existen o que no son visibles en la página incumple las directrices de spam de Google y puede provocar la retirada de los resultados enriquecidos de todo el dominio. Si aún no tienes reseñas, deja AggregateRating fuera del marcado y vuelve a él cuando tengas opiniones reales publicadas en la ficha.

¿Por qué mi schema y mi feed de Google Shopping dicen precios distintos?

Casi siempre porque nacen de procesos diferentes: el feed se genera y se actualiza cada cierto número de horas, mientras que el JSON-LD de la ficha se sirve desde una caché que puede tardar más en refrescarse. La discrepancia suele aparecer tras una promoción y puede desaprobar el producto en Merchant Center. Se corrige unificando la fuente de datos y montando una comprobación automática periódica.

¿El schema ayuda a que ChatGPT o Google AI Mode citen mi tienda?

Ayuda a que tus datos de producto sean inequívocos, pero no garantiza citas en motores generativos. Circulan cifras sobre cuántas veces más se cita una tienda con schema que no tienen fuente primaria verificable, así que no conviene usarlas. Lo que sí observo es que la consistencia entre ficha, marcado y feed elimina motivos para descartarte frente a competidores con datos contradictorios.

¿Cada cuánto debo revisar los datos estructurados de mi ecommerce?

Al menos una vez por trimestre y siempre después de cambiar de tema, instalar o actualizar una app o plugin, o lanzar una campaña de precios. El marcado se rompe en silencio: nadie te avisa cuando una actualización deja de escribir el campo sku o el precio de variante. Revisar el informe de Mejoras de Search Console mensualmente es una rutina suficiente para detectarlo pronto.

Hagamos que tu tienda facture más.

Cuatro respuestas rápidas y te digo dónde se te escapan las ventas, con un plan claro de tráfico, conversión y automatización. Sin rellenar formularios eternos y sin promesas de precio por email.

Paso 1 de 4

¿Qué es lo que más te frena hoy?