Saltar al contenido

Schema Product completo: precio, stock, envíos y devoluciones en el marcado de tus fichas

Publicado el 07-10-202610 min de lecturaPor la redacción de SmoothSeen

El schema Product es el marcado que le da a Google y a otros sistemas los datos de una ficha sin que tengan que deducirlos: nombre, marca, precio, moneda, disponibilidad, valoraciones, envío y devoluciones. Google solo exige nombre, imagen y una oferta con precio y moneda, pero un marcado que contradice la página juega en contra: es preferible marcar menos, pero bien.

Lo esencial

  • Para las fichas de comerciante, Google solo exige nombre, imagen y oferta, con un precio mayor que cero y su moneda; el resto son recomendaciones.
  • Las devoluciones y los envíos que valen para toda la tienda se declaran una vez, en el marcado Organization, y la ficha solo los repite si cambian.
  • Si hay datos en Merchant Center o en Search Console, Google los antepone al marcado de la página.
  • Las valoraciones marcadas tienen que verse en la ficha y venir de usuarios; Google prohíbe agregar las de otras webs.
  • Las variantes se agrupan con ProductGroup, y cada una necesita una URL que la preseleccione.

Para comprobarlo en tu web: Tiendas online

En esta página

Esta guía baja al detalle del marcado; el resto del trabajo de una tienda (fichas, categorías, filtros, velocidad y asistentes de IA) está en la guía de SEO para tiendas online. Un aviso de interés: este blog es de SmoothSeen, una herramienta de auditoría web que mide el posicionamiento en buscadores y en asistentes de IA.

¿Qué es el schema Product y para qué sirve?

El schema Product es un bloque de datos estructurados, normalmente en JSON-LD, que usa el vocabulario de schema.org para declarar qué producto vende una página. Schema.org define Product como cualquier producto o servicio que se ofrece1, y la oferta de venta va dentro, en un Offer. Qué son los datos estructurados en general, y qué otros tipos usa Google, está en la guía de datos estructurados.

Google usa ese marcado para dos tipos de resultado2:

  • Fragmentos de producto, para páginas donde no se puede comprar directamente, como una reseña.
  • Fichas de comerciante (merchant listings), para páginas donde el cliente puede comprarte el producto. Pueden mostrar precio, disponibilidad, envío y devoluciones.

Si tienes una tienda, el que te toca es el segundo. Google lo deja claro: solo las páginas donde un comprador puede adquirir el producto son elegibles para las fichas de comerciante, no las que enlazan a otra web que lo vende3. Y añade que los resultados enriquecidos se muestran a criterio de cada experiencia2: un marcado correcto te hace elegible, no te garantiza nada.

¿Qué campos son obligatorios y cuáles recomendados?

Esta tabla resume la documentación de Google para las fichas de comerciante3:

Campo
Nombre
Propiedad
name
Dónde va
Product
Según Google
Obligatorio
Campo
Imagen
Propiedad
image
Dónde va
Product
Según Google
Obligatorio
Campo
Oferta
Propiedad
offers
Dónde va
Product
Según Google
Obligatorio
Campo
Precio
Propiedad
price
Dónde va
Offer
Según Google
Obligatorio, mayor que cero
Campo
Moneda
Propiedad
priceCurrency
Dónde va
Offer
Según Google
Obligatorio
Campo
Disponibilidad
Propiedad
availability
Dónde va
Offer
Según Google
Recomendado
Campo
Estado
Propiedad
itemCondition
Dónde va
Offer
Según Google
Recomendado
Campo
Envío
Propiedad
shippingDetails
Dónde va
Offer
Según Google
Recomendado
Campo
Devoluciones
Propiedad
hasMerchantReturnPolicy
Dónde va
Offer
Según Google
Recomendado
Campo
Marca
Propiedad
brand.name
Dónde va
Product
Según Google
Recomendado
Campo
Identificadores
Propiedad
gtin, mpn, sku
Dónde va
Product
Según Google
Recomendados
Campo
Descripción
Propiedad
description
Dónde va
Product
Según Google
Recomendado
Campo
Valoraciones
Propiedad
aggregateRating, review
Dónde va
Product
Según Google
Recomendados

Tres matices que evitan errores. El precio tiene que ser mayor que cero: a diferencia de los fragmentos de producto, las fichas de comerciante no admiten un precio de 03. Para los códigos, Google recomienda la propiedad GTIN más específica que corresponda (gtin8, gtin12, gtin13, gtin14) antes que la genérica gtin3. Y Google puede intentar verificar los datos de producto antes de mostrarlos3, así que lo que marques tiene que ser lo que se ve.

Un ejemplo JSON-LD comentado

Este ejemplo es de una tienda ficticia: example.com es un dominio reservado para ejemplos, y el producto, el precio y las valoraciones son inventados.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Cafetera italiana Ejemplo Moka, 6 tazas",
  "image": [
    "https://www.example.com/img/moka-6-frontal.jpg",
    "https://www.example.com/img/moka-6-abierta.jpg"
  ],
  "description": "Cafetera italiana de aluminio para 6 tazas, apta para gas y vitrocerámica; no apta para inducción.",
  "sku": "MOKA-6-AL",
  "gtin13": "0000000000000",
  "brand": { "@type": "Brand", "name": "Ejemplo Cocina" },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.4,
    "reviewCount": 27
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/cafeteras/moka-6",
    "price": "34.90",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": { "@type": "MonetaryAmount", "value": 3.95, "currency": "EUR" },
      "shippingDestination": { "@type": "DefinedRegion", "addressCountry": "ES" },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
        "transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
      }
    }
  }
}

Lo que conviene mirar en cada parte:

  1. price va con punto decimal y sin símbolo, y priceCurrency en código ISO 4217: EUR. La página puede mostrar «34,90 €»; el marcado, no.
  2. availability y itemCondition usan las URL de schema.org (https://schema.org/InStock), no texto libre como «en stock».
  3. gtin13 lleva el código real del producto. El del ejemplo es un relleno: si tu producto no tiene GTIN, deja la propiedad fuera en vez de inventar un código.
  4. deliveryTime separa dos plazos: el de preparación en el almacén (handlingTime) y el de transporte (transitTime), cada uno con su mínimo, su máximo y la unidad DAY3.
  5. Las valoraciones son las que se ven en la ficha: la misma media y el mismo número de opiniones.

Un último consejo práctico: genera el marcado desde la plataforma, con los datos del catálogo, y no a mano. Un JSON escrito a mano se desactualiza con el primer cambio de precio, y un marcado que dice una cosa y una página que dice otra es justo lo que conviene evitar. Y que salga en el HTML inicial: Google avisa de que el marcado de producto generado con JavaScript puede hacer que los rastreos de Shopping sean menos frecuentes y menos fiables, un problema para datos que cambian tan deprisa como el precio y el stock4.

¿Cómo se marcan las variantes de un producto?

Las tallas, los colores o los materiales de un mismo producto se agrupan con el tipo ProductGroup. Como propiedad obligatoria, Google solo marca el nombre; pero sus directrices exigen que el grupo tenga un identificador único, normalmente con productGroupID (el SKU del producto padre), y que cada variante tenga el suyo, con sku o gtin4. Recomienda además declarar en qué varían con variesBy y enlazar las variantes con hasVariant4. Cada variante es un Product completo.

variesBy solo admite seis valores, todos con su URL de schema.org4:

  • https://schema.org/color
  • https://schema.org/size
  • https://schema.org/suggestedAge
  • https://schema.org/suggestedGender
  • https://schema.org/material
  • https://schema.org/pattern

Google admite dos diseños4. Si todas las variantes están en una sola página, esa página tiene una única URL canónica para todo el grupo, normalmente la que no lleva ninguna variante preseleccionada. Si cada variante tiene su propia página, cada una lleva un marcado completo y autosuficiente, con el ProductGroup repetido entero. En los dos diseños, las variantes pueden ir anidadas en hasVariant o por separado, apuntando a su grupo con isVariantOf.

Hay un requisito que suele fallar: la web tiene que poder preseleccionar cada variante con una URL distinta, por ejemplo con un parámetro (?color=azul)4. Preseleccionar significa mostrar la foto, el precio y la disponibilidad de esa variante y dejar añadirla al carrito. Si el color solo cambia con un clic de JavaScript y la URL sigue igual, Google no tiene a dónde mandar a quien busca la versión azul.

¿Cómo se marcan los envíos y las devoluciones?

La forma más limpia es declararlos una vez para toda la tienda, en el marcado Organization, y repetirlos en la ficha solo cuando un producto tiene condiciones distintas. Google lo recomienda así en las dos cosas3: la política de devoluciones con hasMerchantReturnPolicy y la de envíos con hasShippingService, ambas bajo Organization.

Devoluciones: MerchantReturnPolicy

Para la política de devoluciones, Google pide el país al que se aplica (applicableCountry, en código ISO 3166-1 de dos letras como ES) y el tipo de política (returnPolicyCategory)5. Si el plazo es limitado, también los días (merchantReturnDays). La alternativa mínima es enlazar la página de la política con merchantReturnLink.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Ejemplo Cocina",
  "url": "https://www.example.com/",
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "applicableCountry": "ES",
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": 30,
    "returnMethod": "https://schema.org/ReturnByMail",
    "returnFees": "https://schema.org/FreeReturn"
  }
}

Los valores posibles, según Google5:

Propiedad
returnPolicyCategory
Valores
MerchantReturnFiniteReturnWindow (plazo limitado), MerchantReturnUnlimitedWindow (sin límite), MerchantReturnNotPermitted (no se admiten)
Propiedad
returnMethod
Valores
ReturnByMail (por correo), ReturnInStore (en tienda), ReturnAtKiosk (en un quiosco)
Propiedad
returnFees
Valores
FreeReturn (gratis), ReturnFeesCustomerResponsibility (el cliente gestiona y paga el envío), ReturnShippingFees (la tienda cobra un importe por el envío, que se declara con returnShippingFeesAmount)

Envíos: shippingDetails o ShippingService

En la ficha, el envío va en shippingDetails, como en el ejemplo de arriba. Para toda la tienda, Google documenta hasShippingService bajo Organization, con un ShippingService que agrupa condiciones (shippingConditions): coste y plazos según el destino, el importe del pedido o el peso6.

Quién manda si hay datos en varios sitios

Google aplica un orden de preferencia, del más fuerte al más débil, y es el mismo para envíos y para devoluciones65:

  1. La configuración enviada por la Content API for Shopping.
  2. La configuración de Merchant Center o de Search Console.
  3. El marcado en la ficha (shippingDetails, hasMerchantReturnPolicy en la oferta).
  4. El marcado en Organization.

La consecuencia: si ya tienes envíos y devoluciones configurados en Merchant Center, Google usará esos. Para envíos, Google lo dice expresamente: si das la política en tu web y también en Search Console, solo usará la de Search Console6. El marcado sigue siendo útil para quien no usa esas herramientas, pero conviene que todas las fuentes digan lo mismo.

Valoraciones: solo las reales

El bloque aggregateRating es el que puede llevar estrellas al resultado, y es también el que más se marca mal. Google exige la valoración media (ratingValue) y al menos el número de valoraciones (ratingCount) o el de reseñas (reviewCount)7. Si tu escala no va de 1 a 5, declara también bestRating y worstRating.

Las directrices de Google que más afectan a una tienda7:

  • Las opiniones marcadas tienen que estar disponibles en la página marcada.
  • No agregues reseñas ni valoraciones de otras webs. Las opiniones de un marketplace o de una plataforma de reseñas sobre tu tienda no van en el marcado de tu ficha.
  • Las valoraciones tienen que venir directamente de usuarios, sin reseñas falsas ni incentivos sin declarar.
  • Cada valoración se refiere a un producto concreto, no a una categoría ni a una lista de productos.

Unas pocas opiniones reales y visibles valen más que una media redondeada que nadie puede comprobar. Si una ficha aún no tiene opiniones, deja fuera aggregateRating: no es obligatorio.

¿Cómo se valida el marcado?

Con tres herramientas gratuitas de Google, en este orden:

  1. Prueba de resultados enriquecidos. Google pide validar el código con ella y corregir los errores críticos3. Te dice si la página es elegible para fichas de comerciante y qué propiedades faltan.
  2. Inspección de URL de Search Console. Muestra cómo ve Google la página publicada. Google recuerda que la página no puede estar bloqueada por robots.txt, por noindex ni por un inicio de sesión3.
  3. Informe de fichas de comerciante de Search Console, en el apartado de Shopping. Indica si Google ha encontrado elementos válidos de ese marcado en tu sitio8, y conviene revisarlo después de cada cambio de plantilla.

Pásalas sobre la plantilla, no sobre una ficha suelta: un fallo en la plantilla de producto está en todas las fichas, y arreglarlo una vez las arregla todas. Cuánto tarda en cargar esa misma plantilla es otro asunto, con sus propias métricas, que está en la guía de Core Web Vitals en una tienda online.

El marcado no sustituye al texto

El marcado repite lo que dice la página; no la reemplaza. Google pide para sus funciones de IA que los datos estructurados coincidan con el texto visible y que el contenido importante esté en forma de texto9. Precio, plazo de envío y política de devoluciones tienen que estar escritos en la ficha, no solo en el JSON. La forma de escribir esos datos para que un asistente los pueda citar está en la guía de contenido citable por la IA.

SmoothSeen revisa en cada ficha que analiza si el marcado de producto declara precio, disponibilidad, marca y descripción, si incluye envío, devoluciones, valoraciones y especificaciones, y si la ficha tiene una descripción propia y preguntas frecuentes. No se conecta a Merchant Center ni a Search Console: lee la página publicada, como un buscador.

Preguntas frecuentes

¿Qué campos son obligatorios en el schema Product?

Para las fichas de comerciante, Google exige en el Product el nombre, la imagen y la oferta (offers), y en la oferta el precio, mayor que cero, y la moneda. Todo lo demás es recomendado: disponibilidad, estado, envío, devoluciones, marca, identificadores como el GTIN, descripción y valoraciones. Recomendado no significa prescindible: son los datos que deciden si el resultado puede mostrar algo más que el precio.

¿Puedo marcar valoraciones de otra web?

No. Las directrices de Google para fragmentos de reseña dicen expresamente que no se agreguen reseñas ni valoraciones de otras webs, que las valoraciones vengan directamente de usuarios y que las opiniones marcadas estén disponibles en la página. Si tus opiniones están en una plataforma externa, enlázala; en el marcado de la ficha solo van las que se publican en ella.

¿Cómo marco la política de devoluciones?

Si es la misma para toda la tienda, decláralo una vez con hasMerchantReturnPolicy en el marcado Organization: país, tipo de política y, si el plazo es limitado, los días. En la oferta de una ficha solo hace falta cuando ese producto tiene condiciones distintas. Si ya la tienes configurada en Merchant Center o en Search Console, Google da preferencia a esa configuración sobre el marcado.

¿El schema Product me hace aparecer en ChatGPT?

OpenAI dice que ChatGPT tiene en cuenta metadatos estructurados de proveedores propios y de terceros, como el precio y la descripción10, pero no publica que lea el marcado de tu página. Lo que sí está documentado es que Google pide datos estructurados que coincidan con el texto visible para sus funciones de IA. Un marcado completo y coherente es la base para los dos.

Qué hacer ahora

Pasa una ficha de cada plantilla por la prueba de resultados enriquecidos y compara el resultado con la tabla de campos de esta guía. Si te faltan envíos o devoluciones, empieza por el marcado Organization, que se hace una vez. Para el resto de la tienda, vuelve a la guía de SEO para tiendas online.

Fuentes

  1. 1Product, Schema.org, versión 30.1, 16-09-2026.
  2. 2Introduction to Product structured data, Google Search Central, actualizada el 10-12-2025.
  3. 3Merchant listing (Product, Offer) structured data, Google Search Central, actualizada el 08-09-2026.
  4. 4Product variant (ProductGroup, Product) structured data, Google Search Central, actualizada el 08-09-2026.
  5. 5Merchant return policy (MerchantReturnPolicy) structured data, Google Search Central, actualizada el 08-09-2026.
  6. 6Merchant shipping policy (ShippingService) structured data, Google Search Central, actualizada el 08-09-2026.
  7. 7Review snippet (Review, AggregateRating) structured data, Google Search Central, actualizada el 08-09-2026.
  8. 8Shopping reports and tools, Ayuda de Search Console, consultada el 07-10-2026.
  9. 9AI features and your website, Google Search Central, actualizada el 10-12-2025.
  10. 10Shopping with ChatGPT Search, OpenAI Help Center, consultada el 07-10-2026.

Cómo citar este artículo

SmoothSeen. (2026, 7 de octubre). Schema Product completo: precio, stock, envíos y devoluciones en el marcado de tus fichas. https://smoothseen.com/es/blog/schema-product-ficha-producto/

Quién lo escribe

SmoothSeen es una herramienta de auditoría web que mide el posicionamiento en buscadores y en asistentes de IA y entrega informes con la marca de la agencia.

Este blog es de SmoothSeen: cuando un artículo habla del producto, lo hace sabiendo que es el nuestro. Las cifras de terceros enlazan a su fuente original.

Historial de cambios

  • Primera versión publicada, con las fuentes revisadas.

Sigue leyendo

Schema Product: el marcado completo de una ficha de producto