Use el marcado de datos estructurados en las páginas de destino de los productos para que Google recupere información actualizada sobre ellos directamente desde su sitio web. Para que Merchant Center admita el marcado de datos estructurados, se deben usar los atributos correspondientes y los valores aceptados, tal y como se indica en la especificación de datos de producto. Los datos estructurados deben coincidir con los atributos y los valores pertinentes.
Secciones de esta página:
Atributos y anotaciones de schema.org
Los atributos sirven para organizar los datos de producto que envía a Merchant Center. Cada atributo incluye información determinada sobre un producto, como el título o la descripción. Si el valor de schema.org coincide de forma precisa con los atributos correspondientes de la especificación de datos de producto, se encontrarán menos errores al validar el feed.
Nota: Si utiliza las actualizaciones automáticas de artículos, deberá especificar las propiedades de schema.org price
, priceCurrency
, availability
y condition
para aumentar su precisión. Más información sobre las actualizaciones automáticas de artículos
Atributo de datos de producto
|
Tipo y descripción | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Los siguientes atributos pertenecen al tipo Product de schema.org. |
|||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
URL | |||||||||||||||||||||||||||||
Texto SKU superior necesario para agrupar todos los productos con variantes que pertenecen al mismo grupo de productos. |
|||||||||||||||||||||||||||||
Texto El GTIN es un identificador exclusivo del producto. Especifique solo una de estas propiedades de schema.org. Si utiliza valores de GTIN, deben tener la longitud adecuada e incluir el dígito de control correcto. |
|||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
Texto Utilice la propiedad |
|||||||||||||||||||||||||||||
Texto Utilice la propiedad
|
|||||||||||||||||||||||||||||
Y |
Número (en años) Utilice la propiedad Los valores válidos son los que define el atributo
|
||||||||||||||||||||||||||||
Texto | |||||||||||||||||||||||||||||
O |
Texto Utilice la propiedad |
||||||||||||||||||||||||||||
Texto Utilice la propiedad Los valores válidos pertenecen al tipo
|
|||||||||||||||||||||||||||||
Texto Utilice la propiedad Los valores válidos pertenecen al tipo WearableSizeSystemEnumeration. Se asignan a los valores del feed como se indica a continuación:
|
|||||||||||||||||||||||||||||
Utilice la propiedad |
|||||||||||||||||||||||||||||
Utilice la propiedad |
|||||||||||||||||||||||||||||
Utilice la propiedad |
|||||||||||||||||||||||||||||
Utilice la propiedad |
|||||||||||||||||||||||||||||
Las siguientes propiedades de schema.org pertenecen al tipo Offer y deben anidarse dentro de |
|||||||||||||||||||||||||||||
URL válida para el producto. | |||||||||||||||||||||||||||||
O: |
price: número. Se debe indicar sin símbolos de moneda, separadores de millares ni espacios (por ejemplo, "1498.99"). priceCurrency: texto. La moneda se debe indicar con el formato ISO 4217 de tres letras (por ejemplo, USD, GBP o EUR), y debe cumplir los requisitos de idioma y moneda del país de destino. Nota: price y priceCurrency se pueden indicar directamente dentro de la instancia Offer o, de forma indirecta, a través de una propiedad priceSpecification del tipo UnitPriceSpecification. Cuando sale_price se especifica, price debe proporcionarse mediante una propiedad priceSpecification con priceSpecification.priceType="ListPrice". sale_price puede especificarse directamente en Offer o mediante una propiedad priceSpecification del tipo UnitPriceSpecification sin un objeto priceSpecification.priceType. |
||||||||||||||||||||||||||||
Los valores válidos pertenecen al tipo
|
|||||||||||||||||||||||||||||
Los valores válidos pertenecen al tipo
|
|||||||||||||||||||||||||||||
Una URL de tramitación de la compra válida para el producto |
Ejemplos de uso de JSON‑LD
Un solo producto
Ejemplo
El siguiente ejemplo muestra un producto básico con un mínimo de propiedades obligatorias.
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "trinket-12345",
"image": "https://www.example.com/trinket.jpg",
"name": "Nice trinket",
"description": "Trinket with clean lines",
"gtin": "12345678901234",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trinket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"price": 39.99,
"priceCurrency": "USD"
}
}
En el siguiente ejemplo se muestra cómo especificar el tipo de talla y el sistema de tallas mediante schema.org. En este ejemplo se especifica la talla estadounidense "XL" de una camiseta azul para adultos (mayores de 13 años) de la tienda de ropa de hombre "Big&Tall".
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "12345",
"image": "https://www.example.com/tshirt.jpg",
"name": "Classic T-Shirt",
"description": "All-cotton t-shirt in classic cut",
"gtin": "12345678901234",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"material": "cotton",
"color": "blue",
"size": {
"@type": "SizeSpecification",
"name": "XL",
"sizeSystem": "https://schema.org/WearableSizeSystemUS",
"sizeGroup": [
"https://schema.org/WearableSizeGroupBig",
"https://schema.org/WearableSizeGroupTall"
]
},
"audience": {
"@type": "PeopleAudience",
"suggestedGender": "male",
"suggestedMinAge": 13
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/tshirt",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"price": 24.99,
"priceCurrency": "USD"
}
}
Varios productos sin relación en una página de destino
Si su página contiene varios productos que no están relacionados y cada uno de ellos tiene su propia anotación de datos estructurados, las anotaciones deberán contener información que identifique a qué producto hacen referencia.
Por ejemplo, le recomendamos que proporcione el SKU (atributo de ID [id]
) o el GTIN (atributo [gtin]
) en cada anotación. Si no facilita esta información, es posible que los productos de su página de destino no coincidan con sus datos de producto estructurados. Más información sobre cómo configurar datos estructurados en páginas de destino
Ejemplo
[
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "trinket-12345",
"image": "https://www.example.com/trinket.jpg",
"name": "Nice trinket",
"description": "Trinket with clean lines",
"gtin": "12345678901234",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trinket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"price": 39.99,
"priceCurrency": "USD"
}
},
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "racket-12345",
"image": "https://www.example.com/racket.jpg",
"name": "Nice racket",
"description": "Racket for Tennis",
"gtin": "12345678901235",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/racket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"price": 59.99,
"priceCurrency": "USD"
}
}
]
Precio de oferta
El siguiente ejemplo muestra un producto básico con un precio de oferta. Para indicar un precio de oferta, especifique también el precio según catálogo original, que se indica con la propiedad /priceType.
Ejemplo
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "trinket-12345",
"image": "https://www.example.com/trinket.jpg",
"name": "Nice trinket",
"description": "Trinket with clean lines",
"gtin": "12345678901234",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trinket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"price": 10.00,
"priceCurrency": "USD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"priceType": "https://schema.org/ListPrice",
"price": 15.00,
"priceCurrency": "USD"
}
}
}
Si también se usa una propiedad /UnitPriceSpecification para el precio fuera de la oferta, el código tendrá dos propiedades /UnitPriceSpecification:
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "trinket-12345",
"image": "https://www.example.com/trinket.jpg",
"name": "Nice trinket",
"description": "Trinket with clean lines",
"gtin": "12345678901234",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trinket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"priceSpecification": [
{
"@type": "UnitPriceSpecification",
"price": 10.00,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"priceType": "https://schema.org/ListPrice",
"price": 15.00,
"priceCurrency": "USD"
}
]
}
}
Envíos
Para especificar los gastos de envío (recomendado) del producto, utilice el tipo de schema.org OfferShippingDetails
, que debe estar anidado en la sección Offer a través de la propiedad shippingDetails
y que se asocia al atributo shipping
en la especificación de datos de producto. Se pueden proporcionar varias propiedades shippingDetails
.
Atributo de datos de producto
|
Tipo y descripción |
---|---|
Los siguientes atributos pertenecen al tipo OfferShippingDetails de schema.org. |
|
|
Texto Código de país de 2 dígitos que siga la norma ISO 3166‑1. Utilice la propiedad |
Texto Código de subdivisión de acuerdo con la norma ISO 3166‑2 de 2 o 3 dígitos, sin el prefijo de país. Solo disponible en Australia, EE. UU. y Japón. Ejemplos: "NY", "NSW" o "03". Utilice la propiedad |
|
Utilice la propiedad |
|
Número (número entero no negativo) Sirve para especificar el número mínimo y máximo de días hábiles para la preparación y el transporte de un pedido. El tiempo de preparación (handlingTime) determina el tiempo que transcurre desde que se realiza el pedido hasta que se entrega a la empresa de transporte. El tiempo de transporte (transitTime) sirve para indicar el tiempo que transcurre desde que un producto se entrega a la empresa de transporte hasta que el cliente lo recibe. Utilice la propiedad |
Ejemplo
En el siguiente ejemplo se muestra cómo especificar la información de envío mediante schema.org. En él se indican unos gastos de envío de 3,49 USD para los estados de California, Nevada y Arizona en Estados Unidos. El tiempo de preparación es de entre 0 y 1 día hábil, y el tiempo de transporte es de entre 1 y 5 días hábiles.
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "trinket-12345",
"gtin": "12345678901234",
"image": "https://www.example.com/trinket.jpg",
"name": "Nice trinket",
"description": "Trinket with clean lines",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trinket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 39.99,
"priceCurrency": "USD"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US",
"addressRegion": [ "CA", "NV", "AZ" ]
},
"shippingRate": {
"@type": "MonetaryAmount",
"value": 3.49,
"currency": "USD"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 5,
"unitCode": "DAY"
}
}
}
}
}
Devoluciones
Para especificar el coste y los plazos de devolución de su producto, utilice el tipo MerchantReturnPolicy de Schema.org, que debe estar anidado en un tipo Offer mediante la propiedad hasMerchantReturnPolicy.
Atributo de datos de producto
|
Tipo y descripción |
---|---|
Las siguientes propiedades de schema.org pertenecen a MerchantReturnPolicy y deben anidarse dentro de un producto con la propiedad offers. A continuación, le proporcionamos algunos ejemplos. | |
applicableCountry |
Código de país con el formato de la norma ISO 3166-1 alfa 2 de dos letras (por ejemplo, "US"). Código de país con el formato de la norma ISO 3166-1 alfa 3 de tres letras (por ejemplo, "USA"). Un país donde se aplique la política de devoluciones de un comercio concreto. Puede ser diferente del país desde el que se envió el producto. Se pueden especificar hasta 50 países. |
Los valores válidos pertenecen al tipo MerchantReturnEnumeration. Si se especifica como MerchantReturnFiniteReturnWindow o MerchantReturnUnlimitedWindow, se recomienda usar returnMethod y returnShippingFeesAmount. Además, si se especifica como MerchantReturnFiniteReturnWindow, se requiere merchantReturnDays. |
|
merchantReturnDays |
El número de días a partir de la fecha de entrega en que se puede devolver un producto. |
returnMethod |
Los valores válidos pertenecen al tipo ReturnMethodEnumeration:
|
returnFees | El valor válido es FreeReturn del tipo ReturnFeesEnumeration. |
returnShippingFeesAmount |
Información sobre los gastos de envío de las devoluciones de productos. |
Ejemplo
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "trinket-12345",
"gtin": "12345678901234",
"image": "https://www.example.com/trinket.jpg",
"name": "Nice trinket",
"description": "Trinket with clean lines",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trinket_offer",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 39.99,
"priceCurrency": "USD"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 2.99,
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 5,
"unitCode": "DAY"
}
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 60,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}
Eficiencia energética
Schema.org admite el etiquetado de eficiencia energética en los productos con el tipo EnergyConsumptionDetails
, que se puede especificar en los productos que utilizan la propiedad EnergyConsumptionDetails
.
Atributo de datos de producto
|
Tipo y descripción |
---|---|
Las siguientes propiedades de schema.org son del tipo EnergyConsumptionDetails . |
|
Los valores válidos pertenecen al tipo |
|
Añádala a la instancia de EnergyConsumptionDetails que se utilizó para especificar el atributo energy_efficiency_class y seleccione el valor con la misma tabla de asignación. Si no se proporciona la propiedad y se especifica energy_efficiency_class , se entiende que se usa el valor EUEnergyEfficiencyCategoryG . |
|
Añádala a la instancia de EnergyConsumptionDetails que se utilizó para especificar el atributo energy_efficiency_class y seleccione el valor con la misma tabla de asignación. Si no se proporciona la propiedad y se especifica energy_efficiency_class , se entiende que se usa el valor EUEnergyEfficiencyCategoryA3Plus . |
Los valores de energyEfficiencyScale
, energyEfficiencyScaleMin
y energyEfficiencyScaleMax
proceden del tipo de enumeración EUEnergyEfficiencyEnumeration
de schema.org y se asignan a los valores para los tres atributos de eficiencia energética en la especificación de datos de producto tal y como se muestra a continuación.
Valor de la especificación de datos de producto | Valor de enumeración de schema.org de EUEnergyEfficiencyEnumeration (tipo) |
---|---|
A+++ |
EUEnergyEfficiencyCategoryA3Plus |
A++ |
EUEnergyEfficiencyCategoryA2Plus |
A+ |
EUEnergyEfficiencyCategoryA1Plus |
A |
EUEnergyEfficiencyCategoryA |
B |
EUEnergyEfficiencyCategoryB |
C |
EUEnergyEfficiencyCategoryC |
D |
EUEnergyEfficiencyCategoryD |
E |
EUEnergyEfficiencyCategoryE |
F |
EUEnergyEfficiencyCategoryF |
G |
EUEnergyEfficiencyCategoryG |
Ejemplo
En el siguiente ejemplo se muestra cómo especificar información sobre la eficiencia energética con schema.org. En él, se especifica el nivel "C" de eficiencia energética de la UE, en una escala que va desde "A+" hasta "F", para un calentador de agua.
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "1234-5678",
"image": "https://www.example.com/waterheater.jpg",
"name": "Water heater",
"description": "Large capacity water heater",
"gtin": "12345678901231",
"mpn": "WH1234",
"brand": {
"@type": "Brand",
"name": "ExampleWaterHeaterBrand"
},
"hasEnergyConsumptionDetails": {
"hasEnergyEffiencyCategory": "https://schema.org/EUEnergyEfficiencyCategoryC",
"energyEffiencyScaleMax":
"https://schema.org/EUEnergyEfficiencyCategoryA1Plus",
"energyEffiencyScaleMin": "https://schema.org/EUEnergyEfficiencyCategoryF"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/hotwaterheater",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"price": 1799.00,
"priceCurrency": "EUR"
}
}
Precio por unidad
Schema.org permite especificar precios por unidad de productos mediante la propiedad referenceQuantity
del tipo UnitPriceSpecification
, que se indica mediante la propiedad priceSpecification
en Offer. Al especificar precios por unidad, indique también el precio y la moneda de los productos mediante la propiedad priceSpecification
en lugar de usar directamente las propiedades price
y priceCurrency
en Offer.
Atributo de datos de producto
|
Tipo y descripción |
---|---|
Las siguientes propiedades de schema.org son del tipo UnitPriceSpecification . |
|
Especifique la medida de precio por unidad mediante una propiedad Utilice las propiedades |
|
Especifique la medida base de precio por unidad mediante una propiedad Utilice las propiedades |
Ejemplo
En el siguiente ejemplo se muestra un precio de 3,99 EUR por una bolsa de 5 kg de arroz con un precio preferido estándar por cada kilogramo. Esto significa que el producto puede mostrarse a los consumidores con un precio por unidad de 0,80 EUR por kilogramo.
{
"@context": "https://schema.org/",
"@type": "Product",
"sku": "basrice12345",
"image": "https://www.example.com/rice.jpg",
"name": "Basmati rice",
"description": "Large bag of Organic Basmati white rice, 5 Kilogram",
"gtin": "12345678901231",
"brand": {
"@type": "Brand",
"name": "ExampleRiceBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/basrice1kg",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 3.99,
"priceCurrency": "EUR",
"referenceQuantity": {
"@type": "QuantitativeValue",
"value": 5,
"unitCode": "KGM",
"valueReference": {
"value": 1,
"unitCode": "KGM"
}
}
}
}
}
Probar las etiquetas
Puede comprobar la implementación de schema.org con la herramienta de prueba de resultados enriquecidos. Para ello, revise los informes de datos estructurados de fichas de comerciantes. Si necesita más información para usar esta herramienta, depurar los problemas o interpretar los resultados, consulte el Centro de Ayuda de Google Search Console. Más información sobre datos estructurados de productos
Requisitos del marcado de datos estructurados
- El marcado de datos estructurados debe estar presente en el HTML obtenido del servidor web y no se puede generar con JavaScript después de cargar la página.
- La página de destino no puede cambiar según la información del cliente. Por ejemplo, no puede adaptar los precios en función de la dirección IP o del tipo de navegador que se utilice.
- Los datos estructurados deben coincidir con los valores que se muestran al cliente. Si especifica datos incorrectos en las páginas de destino de sus productos, estaría cometiendo una infracción de nuestras directrices para desarrolladores web.
- Google recomienda usar JSON‑LD para facilitar datos estructurados.