Datos estructurados de las fichas de comercios (Product, Offer)

presentación del panel de conocimiento de Shopping en los resultados de la búsqueda

Cuando agregas el lenguaje de marcado de Product a tu página, este puede ser apto para aparecer en las experiencias de fichas de comercios en la Búsqueda de Google, incluidos el panel de conocimiento de Shopping, Google Imágenes, los resultados de productos populares y los resúmenes de productos. Las fichas de comercios pueden destacar datos más específicos sobre un producto, como el precio, la disponibilidad y la información de envío y devolución.

Esta guía se centra en los requisitos de los datos estructurados de Product para las fichas de comercios. Si no sabes qué lenguaje de marcado debes usar, lee nuestra introducción al lenguaje de marcado de Product.

Cómo agregar datos estructurados

Los datos estructurados son un formato estandarizado para proporcionar información sobre una página y clasificar su contenido. Si aún no estás familiarizado con los datos estructurados, obtén más información sobre su funcionamiento.

A continuación, presentamos una descripción general para aprender a compilar, probar y actualizar datos estructurados.

  1. Agrega las propiedades obligatorias. Según el formato que uses, obtén información sobre las ubicaciones donde puedes insertar datos estructurados en la página.
  2. Sigue los lineamientos.
  3. Valida tu código con la Prueba de resultados enriquecidos y corrige cualquier error crítico. Procura también corregir los problemas no críticos que puedan marcarse en la herramienta, ya que pueden ayudar a mejorar la calidad de los datos estructurados (sin embargo, esto no es necesario para que se muestren los resultados enriquecidos).
  4. Implementa algunas páginas que incluyan tus datos estructurados y utiliza la Herramienta de inspección de URLs para probar el modo en el que Google ve la página. Asegúrate de que Google pueda acceder a la página y que no esté bloqueada por un archivo robots.txt, una etiqueta noindex ni requisitos de acceso. Si la página se ve bien, puedes pedirle a Google que vuelva a rastrear tus URLs.
  5. Para mantener informado a Google sobre los cambios futuros, te recomendamos que envíes un mapa del sitio. Puedes automatizar este proceso con la API de Search Console Sitemap.

Ejemplos

Con siguientes ejemplos, se ilustra cómo incluir datos estructurados en páginas web para diferentes situaciones.

Página del producto con una oferta

Este es un ejemplo de una página de venta de un producto, con opiniones sobre él.

JSON-LD


 <html>
  <head>
    <title>Executive Anvil</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Product",
      "name": "Executive Anvil",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "description": "Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height.",
      "sku": "0446310786",
      "mpn": "925872",
      "brand": {
        "@type": "Brand",
        "name": "ACME"
      },
      "review": {
        "@type": "Review",
        "reviewRating": {
          "@type": "Rating",
          "ratingValue": 4,
          "bestRating": 5
        },
        "author": {
          "@type": "Person",
          "name": "Fred Benson"
        }
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": 4.4,
        "reviewCount": 89
      },
      "offers": {
        "@type": "Offer",
        "url": "https://example.com/anvil",
        "priceCurrency": "USD",
        "price": 119.99,
        "priceValidUntil": "2024-11-20",
        "itemCondition": "https://schema.org/UsedCondition",
        "availability": "https://schema.org/InStock"
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

RDFa


 <html>
  <head>
    <title>Executive Anvil</title>
  </head>
  <body>
    <div typeof="schema:Product">
        <div rel="schema:review">
          <div typeof="schema:Review">
            <div rel="schema:reviewRating">
              <div typeof="schema:Rating">
                <div property="schema:ratingValue" content="4"></div>
                <div property="schema:bestRating" content="5"></div>
              </div>
            </div>
            <div rel="schema:author">
              <div typeof="schema:Person">
                <div property="schema:name" content="Fred Benson"></div>
              </div>
            </div>
          </div>
        </div>
        <div rel="schema:image" resource="https://example.com/photos/4x3/photo.jpg"></div>
        <div property="schema:mpn" content="925872"></div>
        <div property="schema:name" content="Executive Anvil"></div>
        <div property="schema:description" content="Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height."></div>
        <div rel="schema:image" resource="https://example.com/photos/1x1/photo.jpg"></div>
        <div rel="schema:brand">
          <div typeof="schema:Brand">
            <div property="schema:name" content="ACME"></div>
          </div>
        </div>
        <div rel="schema:aggregateRating">
          <div typeof="schema:AggregateRating">
            <div property="schema:reviewCount" content="89"></div>
            <div property="schema:ratingValue" content="4.4"></div>
          </div>
        </div>
        <div rel="schema:offers">
          <div typeof="schema:Offer">
            <div property="schema:price" content="119.99"></div>
            <div property="schema:availability" content="https://schema.org/InStock"></div>
            <div property="schema:priceCurrency" content="USD"></div>
            <div property="schema:priceValidUntil" datatype="xsd:date" content="2024-11-20"></div>
            <div rel="schema:url" resource="https://example.com/anvil"></div>
            <div property="schema:itemCondition" content="https://schema.org/UsedCondition"></div>
          </div>
        </div>
        <div rel="schema:image" resource="https://example.com/photos/16x9/photo.jpg"></div>
        <div property="schema:sku" content="0446310786"></div>
      </div>
  </body>
</html>

Microdatos


 <html>
  <head>
    <title>Executive Anvil</title>
  </head>
  <body>
  <div>
    <div itemtype="https://schema.org/Product" itemscope>
      <meta itemprop="mpn" content="925872" />
      <meta itemprop="name" content="Executive Anvil" />
      <link itemprop="image" href="https://example.com/photos/16x9/photo.jpg" />
      <link itemprop="image" href="https://example.com/photos/4x3/photo.jpg" />
      <link itemprop="image" href="https://example.com/photos/1x1/photo.jpg" />
      <meta itemprop="description" content="Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height." />
      <div itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
        <link itemprop="url" href="https://example.com/anvil" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="itemCondition" content="https://schema.org/UsedCondition" />
        <meta itemprop="price" content="119.99" />
        <meta itemprop="priceValidUntil" content="2024-11-20" />
      </div>
      <div itemprop="aggregateRating" itemtype="https://schema.org/AggregateRating" itemscope>
        <meta itemprop="reviewCount" content="89" />
        <meta itemprop="ratingValue" content="4.4" />
      </div>
      <div itemprop="review" itemtype="https://schema.org/Review" itemscope>
        <div itemprop="author" itemtype="https://schema.org/Person" itemscope>
          <meta itemprop="name" content="Fred Benson" />
        </div>
        <div itemprop="reviewRating" itemtype="https://schema.org/Rating" itemscope>
          <meta itemprop="ratingValue" content="4" />
          <meta itemprop="bestRating" content="5" />
        </div>
      </div>
      <meta itemprop="sku" content="0446310786" />
      <div itemprop="brand" itemtype="https://schema.org/Brand" itemscope>
        <meta itemprop="name" content="ACME" />
      </div>
    </div>
  </div>
  </body>
</html>

Precios

Aquí tienes dos ejemplos de codificación de precios en JSON-LD.

Los precios se pueden especificar con la propiedad price de la siguiente manera:

"offers": {
  "@type": "Offer",
  "price": 10.00,
  "priceCurrency": "USD",
  ...
}

Como alternativa, se puede especificar un precio con la propiedad priceSpecification.

"offers": {
  "@type": "Offer",
  "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "price": 10.00,
    "priceCurrency": "USD"
  },
  ...
}

Precios con medidas de precio por unidad

A continuación, se muestra un ejemplo de cómo especificar un precio para 4.5 l de un producto que siempre se vende en múltiplos de 750 ml. Esta forma de fijar precios es particularmente importante en la UE para los productos que se venden por volumen o peso.

Cuando están presentes la medida de precio por unidad y la medida base de precio por unidad, especifica el precio dentro de UnitPriceSpecification.

"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 81.00,
"priceCurrency": "EUR",
"referenceQuantity": {
  "@type": "QuantitativeValue",
  "value": "4.5",
  "unitCode": "LTR",
  "valueReference": {
    "@type": "QuantitativeValue",
    "value": "750",
    "unitCode": "MLT"
  }
}
}

Detalles del envío

Este es un ejemplo de una página de un producto con detalles de envío. En este ejemplo, se generaría una tarifa de envío de $3.49 para todos los usuarios que se encuentren en EE.UU. Para obtener más ejemplos, consulta la sección Envío.

JSON-LD


 <html>
  <head>
    <title>Nice trinket</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Product",
      "sku": "trinket-12345",
      "gtin14": "12345678901234",
      "image": [
        "https://example.com/photos/16x9/trinket.jpg",
        "https://example.com/photos/4x3/trinket.jpg",
        "https://example.com/photos/1x1/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",
        "price": 39.99,
        "priceCurrency": "USD",
        "priceValidUntil": "2024-11-20",
        "shippingDetails": {
          "@type": "OfferShippingDetails",
          "shippingRate": {
            "@type": "MonetaryAmount",
            "value": 3.49,
            "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"
            }
          }
        }
      },
      "review": {
        "@type": "Review",
          "reviewRating": {
            "@type": "Rating",
            "ratingValue": 4,
            "bestRating": 5
          },
          "author": {
            "@type": "Person",
            "name": "Fred Benson"
          }
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.4,
          "reviewCount": 89
        }
      }
    </script>
  </head>
  <body>
  </body>
</html>

RDFa


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
    <div typeof="schema:Product">
      <div property="schema:sku" content="trinket-12345"></div>
      <div property="schema:gtin14" content="12345678901234"></div>
      <div property="schema:name" content="Nice trinket"></div>
      <div rel="schema:image" resource="https://example.com/photos/16x9/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/4x3/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/1x1/trinket.jpg"></div>
      <div property="schema:description" content="Trinket with clean lines"></div>
      <div rel="schema:brand">
        <div typeof="schema:Brand">
          <div property="schema:name" content="MyBrand"></div>
        </div>
      </div>
      <div rel="schema:offers">
        <div typeof="schema:Offer">
          <div rel="schema:url" resource="https://example.com/trinket_offer"></div>
          <div property="schema:itemCondition" content="https://schema.org/NewCondition"></div>
          <div property="schema:availability" content="https://schema.org/InStock"></div>
          <div property="schema:price" content="39.99"></div>
          <div property="schema:priceCurrency" content="USD"></div>
          <div property="schema:priceValidUntil" datatype="xsd:date" content="2024-11-20"></div>
          <div rel="schema:shippingDetails">
            <div typeof="schema:OfferShippingDetails">
              <div rel="schema:shippingRate">
                <div typeof="schema:MonetaryAmount">
                  <div property="schema:value" content="3.49"></div>
                  <div property="schema:currency" content="USD"></div>
                </div>
              </div>
              <div rel="schema:shippingDestination">
                <div typeof="schema:DefinedRegion">
                  <div property="schema:addressCountry" content="US"></div>
                </div>
              </div>
              <div rel="schema:deliveryTime">
                <div typeof="schema:ShippingDeliveryTime">
                  <div rel="schema:handlingTime">
                    <div typeof="schema:QuantitativeValue">
                      <div property="schema:minValue" content="0"></div>
                      <div property="schema:maxValue" content="1"></div>
                      <div property="schema:unitCode" content="DAY"></div>
                    </div>
                  </div>
                  <div rel="schema:transitTime">
                    <div typeof="schema:QuantitativeValue">
                      <div property="schema:minValue" content="1"></div>
                      <div property="schema:maxValue" content="5"></div>
                      <div property="schema:unitCode" content="DAY"></div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div rel="schema:review">
        <div typeof="schema:Review">
          <div rel="schema:reviewRating">
            <div typeof="schema:Rating">
              <div property="schema:ratingValue" content="4"></div>
              <div property="schema:bestRating" content="5"></div>
            </div>
          </div>
          <div rel="schema:author">
            <div typeof="schema:Person">
              <div property="schema:name" content="Fred Benson"></div>
            </div>
          </div>
        </div>
      </div>
      <div rel="schema:aggregateRating">
        <div typeof="schema:AggregateRating">
          <div property="schema:reviewCount" content="89"></div>
          <div property="schema:ratingValue" content="4.4"></div>
        </div>
      </div>
    </div>
  </body>
</html>

Microdatos


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
  <div>
    <div itemtype="https://schema.org/Product" itemscope>
      <meta itemprop="sku" content="trinket-12345" />
      <meta itemprop="gtin14" content="12345678901234" />
      <meta itemprop="name" content="Nice trinket" />
      <link itemprop="image" href="https://example.com/photos/16x9/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/4x3/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/1x1/trinket.jpg" />
      <meta itemprop="description" content="Trinket with clean lines" />
      <div itemprop="brand" itemtype="https://schema.org/Brand" itemscope>
        <meta itemprop="name" content="MyBrand" />
      </div>
      <div itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
        <link itemprop="url" href="https://www.example.com/trinket_offer" />
        <meta itemprop="itemCondition" content="https://schema.org/NewCondition" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="price" content="39.99" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceValidUntil" content="2024-11-20" />
        <div itemprop="shippingDetails" itemtype="https://schema.org/OfferShippingDetails" itemscope>
          <div itemprop="shippingRate" itemtype="https://schema.org/MonetaryAmount" itemscope>
            <meta itemprop="value" content="3.49" />
            <meta itemprop="currency" content="USD" />
          </div>
          <div itemprop="shippingDestination" itemtype="https://schema.org/DefinedRegion" itemscope>
            <meta itemprop="addressCountry" content="US" />
          </div>
          <div itemprop="deliveryTime" itemtype="https://schema.org/ShippingDeliveryTime" itemscope>
            <div itemprop="handlingTime" itemtype="https://schema.org/QuantitativeValue" itemscope>
              <meta itemprop="minValue" content="0" />
              <meta itemprop="maxValue" content="1" />
              <meta itemprop="unitCode" content="DAY" />
            </div>
            <div itemprop="transitTime" itemtype="https://schema.org/QuantitativeValue" itemscope>
              <meta itemprop="minValue" content="1" />
              <meta itemprop="maxValue" content="5" />
              <meta itemprop="unitCode" content="DAY" />
            </div>
          </div>
        </div>
      </div>
      <div itemprop="review" itemtype="https://schema.org/Review" itemscope>
        <div itemprop="author" itemtype="https://schema.org/Person" itemscope>
          <meta itemprop="name" content="Fred Benson" />
        </div>
        <div itemprop="reviewRating" itemtype="https://schema.org/Rating" itemscope>
          <meta itemprop="ratingValue" content="4" />
          <meta itemprop="bestRating" content="5" />
        </div>
      </div>
      <div itemprop="aggregateRating" itemtype="https://schema.org/AggregateRating" itemscope>
        <meta itemprop="reviewCount" content="89" />
        <meta itemprop="ratingValue" content="4.4" />
      </div>
    </div>
  </div>
  </body>
</html>

Envío gratis

Este es un ejemplo de cómo brindar envíos gratis a compradores en el estado de Nueva York (EE.UU).

"shippingDetails": {
  "@type": "OfferShippingDetails",
  "shippingRate": {
    "@type": "MonetaryAmount",
    "value": "0",
    "currency": "USD"
  },
  "shippingDestination": [
    {
      "@type": "DefinedRegion",
      "addressCountry": "US",
      "addressRegion": ["NY"]
    }
  ]
}

Detalles de la devolución

Este es un ejemplo de una página de producto con detalles de devolución. El lenguaje de marcado coincide con una política de devoluciones que requiere que los productos se devuelvan en un plazo de 60 días, se envíen a EE.UU. y no se cobren tarifas por devolución.

JSON-LD


 <html>
  <head>
    <title>Nice trinket</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Product",
      "sku": "trinket-12345",
      "gtin14": "12345678901234",
      "image": [
        "https://example.com/photos/16x9/trinket.jpg",
        "https://example.com/photos/4x3/trinket.jpg",
        "https://example.com/photos/1x1/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": "PriceSpecification",
          "price": 39.99,
          "priceCurrency": "CHF"
        },
        "hasMerchantReturnPolicy": {
          "@type": "MerchantReturnPolicy",
          "applicableCountry": "CH",
          "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
          "merchantReturnDays": 60,
          "returnMethod": "https://schema.org/ReturnByMail",
          "returnFees": "https://schema.org/FreeReturn"
        }
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

RDFa


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
    <div typeof="schema:Product">
      <div property="schema:sku" content="trinket-12345"></div>
      <div property="schema:gtin14" content="12345678901234"></div>
      <div property="schema:name" content="Nice trinket"></div>
      <div rel="schema:image" resource="https://example.com/photos/16x9/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/4x3/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/1x1/trinket.jpg"></div>
      <div property="schema:description" content="Trinket with clean lines"></div>
      <div rel="schema:brand">
        <div typeof="schema:Brand">
          <div property="schema:name" content="MyBrand"></div>
        </div>
      </div>
      <div rel="schema:offers">
        <div typeof="schema:Offer">
          <div rel="schema:url" resource="https://example.com/trinket_offer"></div>
          <div property="schema:itemCondition" content="https://schema.org/NewCondition"></div>
          <div property="schema:availability" content="https://schema.org/InStock"></div>
          <div property="schema:price" content="39.99"></div>
          <div property="schema:priceCurrency" content="CHF"></div>
          <div property="schema:priceValidUntil" datatype="xsd:date" content="2024-11-20"></div>
          <div rel="schema:hasMerchantReturnPolicy">
            <div typeof="schema:MerchantReturnPolicy">
              <div property="schema:applicableCountry" content="US"></div>
              <div property="schema:returnPolicyCategory" content="https://schema.org/MerchantReturnFiniteReturnWindow"></div>
              <div property="schema:merchantReturnDays" content="60"></div>
              <div property="schema:returnMethod" content="https://schema.org/ReturnByMail"></div>
              <div property="schema:returnFees" content="https://schema.org/FreeReturn"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>

Microdatos


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
  <div>
    <div itemtype="https://schema.org/Product" itemscope>
      <meta itemprop="sku" content="trinket-12345" />
      <meta itemprop="gtin14" content="12345678901234" />
      <meta itemprop="name" content="Nice trinket" />
      <link itemprop="image" href="https://example.com/photos/16x9/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/4x3/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/1x1/trinket.jpg" />
      <meta itemprop="description" content="Trinket with clean lines" />
      <div itemprop="brand" itemtype="https://schema.org/Brand" itemscope>
        <meta itemprop="name" content="MyBrand" />
      </div>
      <div itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
        <link itemprop="url" href="https://www.example.com/trinket_offer" />
        <meta itemprop="itemCondition" content="https://schema.org/NewCondition" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="price" content="39.99" />
        <meta itemprop="priceCurrency" content="CHF" />
        <meta itemprop="priceValidUntil" content="2024-11-20" />
        <div itemprop="hasMerchantReturnPolicy" itemtype="https://schema.org/MerchantReturnPolicy" itemscope>
          <meta itemprop="applicableCountry" content="US" />
          <meta itemprop="returnPolicyCategory" content="https://schema.org/MerchantReturnFiniteReturnWindow" />
          <meta itemprop="merchantReturnDays" content="60" />
          <meta itemprop="returnMethod" content="https://schema.org/ReturnByMail" />
          <meta itemprop="returnFees" content="https://schema.org/FreeReturn" />
        </div>
      </div>
    </div>
  </div>
  </body>
</html>

Calificaciones de eficiencia energética

En el siguiente ejemplo, se muestra cómo especificar información de eficiencia energética mediante datos estructurados. En él, se especifica la eficiencia energética de la UE de nivel "C", en una escala que va de "A+" a "F" para un calentador de agua.

Ten en cuenta que el nivel mínimo de eficiencia energética especifica el nivel de eficiencia energética más bajo en la escala de consumo de energía (en este caso, "F"), mientras que el nivel máximo de eficiencia energética especifica el nivel más eficiente (en este caso, "A+").

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "sku": "1234-5678",
  "image": "https://www.example.com/waterheater.jpg",
  "name": "Water heater",
  "description": "Large capacity water heater",
  "gtin14": "12345678901231",
  "mpn": "WH1234",
  "brand": {
    "@type": "Brand",
    "name": "ExampleWaterHeaterBrand"
  },
  "hasEnergyConsumptionDetails": {
    "@type": "EnergyConsumptionDetails",
    "hasEnergyEfficiencyCategory": "https://schema.org/EUEnergyEfficiencyCategoryC",
    "energyEfficiencyScaleMin": "https://schema.org/EUEnergyEfficiencyCategoryF",
    "energyEfficiencyScaleMax": "https://schema.org/EUEnergyEfficiencyCategoryA1Plus"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/hotwaterheater",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "price": 1799.00,
    "priceCurrency": "EUR"
  }
}

Modelo 3D

En este ejemplo, se muestra cómo vincular un Modelo 3D a un producto con la propiedad subjectOf y el tipo 3DModel.

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "sku": "1234-5678",
  "image": "https://www.example.com/sofa.jpg",
  "name": "Water heater",
  "description": "White 3-Seat Sofa",
  "gtin14": "12345678901231",
  "mpn": "S1234W3",
  "brand": {
    "@type": "Brand",
    "name": "ExampleSofaBrand"
  },
  "subjectOf": {
    "@type": "3DModel",
    "encoding": {
      "@type": "MediaObject",
      "contentUrl": "https://example.com/sofa.gltf"
    }
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/whitechaiselongue",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "price": 1299.00,
    "priceCurrency": "USD"
  }
}

Lineamientos

Para que tu lenguaje de marcado de Product sea apto para las experiencias de fichas de comercios, debes seguir estos lineamientos:

Lineamientos técnicos

  • Solo las páginas en las que los usuarios pueden comprar un producto son aptas para la experiencia de fichas de comercio, no aquellas que incluyan vínculos a otros sitios en los que se vende el producto. Google puede intentar verificar los datos de productos de la ficha de comercio antes de mostrar la información en los resultados de la búsqueda.
  • Actualmente, los resultados enriquecidos de productos solo admiten páginas que se enfocan en un solo producto (o diferentes variantes del mismo producto). Por ejemplo, "calzado de nuestra tienda" no es un producto específico. Se incluyen variantes de productos en las que cada variante tiene una URL diferente. Te recomendamos que te enfoques en agregar lenguaje de marcado a las páginas de productos, en lugar de a las páginas que enumeran productos o una categoría de productos.
  • Consulta la documentación sobre datos estructurados de variantes de productos para obtener más información sobre cómo marcar variantes de productos.
  • Cuando ofrezcas productos para la venta en varias monedas, ten una URL diferente para cada una. Por ejemplo, si un producto está disponible para la venta en dólares canadienses y estadounidenses, usa dos URLs distintas, una por moneda.
  • Actualmente, Car no se admite automáticamente como subtipo de Producto. Por ahora, incluye tipos de autos y productos si deseas adjuntar calificaciones y que se cumplan los requisitos para la función de búsqueda. Por ejemplo, en JSON-LD:
    {
      "@context": "https://schema.org",
      "@type": ["Product", "Car"],
      ...
    }

Lineamientos de contenido

  • No permitimos contenido que promocione productos, servicios ni información ampliamente prohibidos o regulados que puedan facilitar daños graves, inmediatos o a largo plazo a las personas. Esto incluye contenido relacionado con armas de fuego y armas blancas, drogas recreativas, productos de tabaco y cigarrillos electrónicos, y productos relacionados con juegos de apuestas.

Definiciones de tipos de datos estructurados

Debes incluir las propiedades obligatorias a fin de que tu contenido sea apto para aparecer como resultado enriquecido. También puedes incluir las propiedades recomendadas para agregar más información a tus datos estructurados, lo que podría mejorar la experiencia del usuario.

Información del producto

Product

La definición completa de Product está disponible en schema.org/Product. Cuando incluyas lenguaje de marcado en el contenido de la información del producto, usa las siguientes propiedades del tipo Product:

Propiedades obligatorias
name

Text

Es el nombre del producto.

image

Es un valor repetido de ImageObject o URL.

Es la URL de una foto del producto. Se recomienda el uso de imágenes que muestren claramente el producto (por ejemplo, con un fondo blanco).

Lineamientos de imagen adicionales:

  • Las URLs de las imágenes se deben poder indexar y rastrear. Para comprobar si Google puede acceder a tus URL, usa la Herramienta de inspección de URL.
  • Deben representar el contenido con lenguaje de marcado.
  • Las imágenes deben estar en un formato de archivo compatible con Google Imágenes.
  • Para obtener mejores resultados, recomendamos proporcionar varias imágenes de alta resolución (mínimo de 50,000 píxeles al multiplicar el ancho por la altura) con la siguiente relación de aspecto: 16x9, 4x3 y 1x1.

Por ejemplo:

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
offers

Offer

Corresponde a un objeto Offer anidado para vender el producto.

Los resúmenes de producto aceptan Offer o AggregateOffer, pero las fichas de comercios requieren una Offer dado que el comercio debe ser el vendedor del producto para poder ser apto para las experiencias de fichas de comercio.

Propiedades recomendadas
aggregateRating

AggregateRating

Corresponde a un objeto aggregateRating anidado del producto. Sigue los lineamientos para los fragmentos de opiniones y la lista de propiedades AggregateRating obligatorias y recomendadas.

audience

PeopleAudience

Información adicional sobre el público sugerido al que se ofrece el producto (como el género y la edad). Solo se admite el tipo PeopleAudience. Consulta la lista de propiedades PeopleAudience compatibles con Google.

brand.name

Text

Incluye la marca del producto en la propiedad name del tipo Brand, si la conoces. Incluye, como máximo, un nombre de marca.

color

Text

Indica el color o la combinación de colores del producto (por ejemplo, "rojo" o "amarillo/azul cielo"). Consulta también el atributo Color en la Ayuda de Google Merchant Center.

description

Text

Es la descripción del producto. Si bien la descripción del producto no es obligatoria, se recomienda proporcionarla en esta propiedad.

gtin | gtin8 | gtin12 | gtin13 | gtin14 | isbn

Text

Incluye todos los identificadores globales correspondientes que se describen en schema.org/Product. Si bien puedes usar la propiedad genérica gtin para todos los GTINs, te recomendamos que uses el GTIN más específico que se aplique a tu producto, ya que esta es la representación más precisa del producto. Asegúrate de que el valor de GTIN tenga formato numérico; no admitimos el formato URL para GTIN.

isbn es solo una propiedad válida en Book. Para obtener los mejores resultados, usa el formato ISBN-13. Para usar Book correctamente, escribe junto con Product. Esto te permitirá usar propiedades de ambos tipos en el nodo. Por ejemplo:

{
  "@context": "https://schema.org",
  "@type": ["Product", "Book"],
  ....
}
hasEnergyConsumptionDetails

EnergyConsumptionDetails

Incluye información sobre el consumo energético de los productos (por ejemplo, los eléctricos). Esta propiedad es especialmente importante en los países europeos. Consulta también la lista de propiedades de EnergyConsumptionDetails compatibles con Google.

inProductGroupWithID

Text

Es el ID de un grupo de productos al que pertenece esta variante. Consulta también Item Group Id en Ayuda de Google Merchant Center. Especifica un valor como máximo.

Si quieres obtener más información para agregar lenguaje de marcado a variantes de productos, consulta la documentación sobre datos estructurados de variantes de productos.
isVariantOf

ProductGroup

Es un grupo de productos al que pertenece esta variante del producto, si corresponde. Si quieres obtener más información para agregar lenguaje de marcado a variantes de productos, consulta la documentación sobre datos estructurados de variantes de productos.

material

Text

Indica el material o la combinación de materiales con la que está hecho el producto, como "Cuero" o "Algodón/Poliéster". Consulta también Material en la Ayuda de Google Merchant Center.

mpn

Text

Es el número de pieza del fabricante. Esta propiedad identifica de forma única el producto de un fabricante determinado.

pattern

Text

El diseño del producto, como "con lunares" o "con rayas". También consulta Pattern en la página de especificaciones de datos de productos de Google Merchant Center.

review

Review

Corresponde a un objeto Review anidado del producto. Sigue los lineamientos para los fragmentos de opiniones, así como la lista de propiedades de opiniones obligatorias y recomendadas. Consulta también la lista de propiedades Review adicionales específicas del tipo de schema.org Product.

Si agregas una opinión sobre el producto, el nombre del autor de la opinión debe ser un nombre válido de una persona (Person) o de un equipo (Team).

No se recomienda: 50% de descuento durante Black Friday

Se recomienda: "Juan Pérez" o "Revisores de CNET"

size

Text o SizeSpecification

El tamaño del producto, como "XL" o "mediano". También consulta size en la página de especificaciones de datos de productos de Google Merchant Center. Consulta la lista de propiedades SizeSpecification compatibles con Google. Especifica un valor como máximo.

sku

Text

Es el identificador específico del comercio para el producto. Especifica un valor como máximo.

  • El valor sku debe usar caracteres Unicode que sean válidos para el intercambio.
  • El valor sku no debe contener caracteres de espacio en blanco (como lo define la propiedad de espacio en blanco Unicode).
  • Te recomendamos que el valor sku contenga solo caracteres ASCII.
subjectOf

3DModel

Un Modelo 3D del producto, si corresponde. Consulta la lista de propiedades 3DModel compatibles con Google. Especifica un valor 3DModel como máximo.

3DModel

La definición completa de 3DModel está disponible en schema.org/3DModel.

Utiliza las siguientes propiedades para vincular a un Modelo 3D. Actualmente, solo se admiten modelos en formato glTF.

Propiedades obligatorias
encoding

MediaObject

Los medios para el Modelo 3D.

encoding.contentUrl

URL

El vínculo a un archivo de definición de un Modelo 3D en formato glTF. El archivo debe tener un sufijo .gltf o .glb.

Detalles de la oferta

Offer

La definición completa de Offer está disponible en schema.org/Offer. Cuando incluyas lenguaje de marcado en ofertas en un producto, usa las siguientes propiedades del tipo schema.org Offer.

Propiedades obligatorias
price o priceSpecification.price

Number

Es el precio de oferta de un producto. Sigue los lineamientos de uso de schema.org.

A continuación, se muestra un ejemplo de la propiedad price:

"offers": {
  "@type": "Offer",
  "price": 39.99,
  "priceCurrency": "USD"
}

A diferencia de los fragmentos de producto, las experiencias de las fichas de comercios requieren un precio superior a cero.

El precio de oferta es obligatorio, pero se puede anidar dentro de una propiedad priceSpecification en lugar de proporcionarse en el nivel de Offer.

priceCurrency o priceSpecification.priceCurrency

Text

Corresponde a la moneda utilizada para describir el precio del producto con el formato ISO 4217 de tres letras.

priceCurrency es obligatorio si se especifica price; de lo contrario, se requiere priceSpecification.priceCurrency si se especifica priceSpecification.price.

priceSpecification

UnitPriceSpecification

Los precios complejos se pueden especificar con priceSpecification en lugar de con la propiedad price. Consulta la lista de propiedades compatibles de UnitPriceSpecification y los ejemplos para ver ejemplos de cómo agregar lenguaje de marcado a diversas formas de fijación de precios.

Los precios se pueden especificar con price y priceCurrency a nivel de Offer o dentro de la propiedad priceSpecification.

Los precios con medidas de precio por unidad pueden especificar una propiedad referenceQuantity dentro de un UnitPriceSpecification.

Propiedades recomendadas
availability

ItemAvailability

Son las posibles opciones de disponibilidad del producto. También se admiten los nombres cortos sin el prefijo de la URL (por ejemplo, BackOrder).

  • https://schema.org/BackOrder: El artículo está en espera.
  • https://schema.org/Discontinued: El artículo ya no está disponible.
  • https://schema.org/InStock: El artículo está en stock.
  • https://schema.org/InStoreOnly: El artículo solo está disponible para comprarlo en la tienda.
  • https://schema.org/LimitedAvailability: El artículo tiene disponibilidad limitada.
  • https://schema.org/OnlineOnly: El artículo solo está disponible en línea.
  • https://schema.org/OutOfStock: El artículo está agotado actualmente.
  • https://schema.org/PreOrder: El artículo está disponible para pedirlo por adelantado.
  • https://schema.org/PreSale: El artículo está disponible para pedidos y entrega antes de la disponibilidad general.
  • https://schema.org/SoldOut: Se agotó el artículo.

No especifiques más de un valor.

hasMerchantReturnPolicy

MerchantReturnPolicy

Información anidada sobre las políticas de devoluciones asociadas con un Offer. Si decides agregar hasMerchantReturnPolicy, agrega las propiedades de MerchantReturnPolicy obligatorias y recomendadas.

itemCondition

OfferItemCondition

Estado del artículo que se ofrece para la venta. También se admiten los nombres cortos sin el prefijo de la URL (por ejemplo, NewCondition).

  • https://schema.org/NewCondition: El artículo es nuevo.
  • https://schema.org/RefurbishedCondition: Se reacondicionó el artículo.
  • https://schema.org/UsedCondition: El artículo se usa (no es nuevo).

No especifiques más de un valor.

shippingDetails

OfferShippingDetails

Información anidada sobre las políticas y las opciones de envío asociadas a un objeto Offer. Si decides agregar shippingDetails, agrega las propiedades de OfferShippingDetails obligatorias y recomendadas.

url

URL

Una URL de la página web del producto en la que un usuario puede comprar el producto. Esta URL puede ser la URL preferida de la página actual con todas las opciones de variantes seleccionadas de forma adecuada. Se puede omitir la URL. No proporciones varias URLs.

Si quieres obtener más información para agregar lenguaje de marcado a variantes de productos, consulta la documentación sobre datos estructurados de variantes de productos.

UnitPriceSpecification

La definición completa de UnitPriceSpecification está disponible en schema.org/UnitPriceSpecification. Usa las siguientes propiedades para capturar esquemas de precios más complejos.

Propiedades obligatorias
price

Number

Es el precio de oferta de un producto. Consulta también la propiedad price de Offer.

priceCurrency

Text

Corresponde a la moneda utilizada para describir el precio del producto con el formato ISO 4217 de tres letras. Consulta también la propiedad priceCurrency de Offer.

Propiedades recomendadas
referenceQuantity

QuantitativeValue (para el precio unitario)

La cantidad de referencia se usa para los precios que especifican un valor de referencia. Consulta también los ejemplos Precios con medidas de precio por unidad y medidas de precio por unidad en la Ayuda de Google Merchant Center para obtener un análisis detallado sobre el precio por unidad.

QuantitativeValue (para el precio unitario)

En esta sección, se explica el uso de QuantitativeValue para la propiedad referenceQuantity de una especificación de precio por unidad. (QuantitativeValue también se usa para la duración del envío, pero con diferentes reglas). La definición completa de QuantitativeValue está disponible en schema.org/QuantitativeValue.

QuantitativeValue se puede usar para fijar precios en función de una medida de unidad, como comprar pisos por metro cuadrado o líquidos por litro. Consulta la medida de precio por unidad en la Ayuda de Google Merchant Center para obtener un análisis detallado del precio unitario.

Este es un ejemplo de un precio de venta por 4.5 l de un producto que se puede comprar en múltiplos de 750 ml.

"priceSpecification": {
  "@type": "UnitPriceSpecification",
  "price": 81.00,
  "priceCurrency": "EUR",
  "referenceQuantity": {
    "@type": "QuantitativeValue",
    "value": "4.5",
    "unitCode": "LTR",
    "valueReference": {
      "@type": "QuantitativeValue",
      "value": "750",
      "unitCode": "MLT"
    }
  }
}

Usa las siguientes propiedades para capturar los detalles de los precios por unidad.

Propiedades obligatorias
unitCode

Text o URL

La unidad de medida. Se admiten los códigos UN/CEFACT o sus equivalentes legibles, como se indica en la medida de precio por unidad de la Ayuda de Google Merchant Center.

value

Text

Valor numérico de la unidad vendida.

Propiedades recomendadas
valueReference

QuantitativeValue

El QuantitativeValue de la propiedad referenceQuantity de un UnitPriceSpecification debe incluir un QuantitativeValue anidado en esta propiedad valueReference.

SizeSpecification

El tipo SizeSpecification se usa para indicar el tamaño de un producto. La definición completa del tipo está disponible en schema.org/SizeSpecification.

Propiedades recomendadas
name

Text

Un nombre legible para el tamaño, como "XL". Consulta el atributo de tamaño en la Ayuda de Google Merchant Center para obtener más detalles.

sizeGroup

WearableSizeGroupEnumeration o Text

El grupo de tallas sugerido para el producto, si corresponde. La propiedad sizeGroup define la interpretación del grupo. Se pueden proporcionar dos grupos de tamaños como máximo. Los valores admitidos son los que se detallan a continuación:

  • https://schema.org/WearableSizeGroupRegular: El tamaño del artículo es "normal".
  • https://schema.org/WearableSizeGroupPetite: El tamaño del artículo es "pequeño".
  • https://schema.org/WearableSizeGroupPlus: El tamaño del artículo es "grande".
  • https://schema.org/WearableSizeGroupTall: El tamaño del artículo es "alto".
  • https://schema.org/WearableSizeGroupBig: El tamaño del artículo es "grande".
  • https://schema.org/WearableSizeGroupMaternity: El tamaño del artículo es "maternidad".

También se admiten los nombres cortos sin el prefijo de la URL (por ejemplo, WearableSizeGroupRegular).

Consulta también size_type en la Ayuda de Google Merchant Center y los valores y tipos de datos estructurados admitidos en la Ayuda de Google Merchant Center para obtener más información sobre los siguientes temas: sistemas de tallas compatibles. Google también comprende los valores de texto de size_type (regular, petite, plus, tall, big y maternity) , pero es posible que otros motores de búsqueda no lo hagan, por lo que se recomienda usar los valores de enumeración schema.org estándar.

sizeSystem

WearableSizeSystemEnumeration o Text

El sistema de tallas del producto, si corresponde. Los valores admitidos son los que se detallan a continuación:

  • https://schema.org/WearableSizeSystemAU: Es el sistema de tallas de Australia.
  • https://schema.org/WearableSizeSystemBR: Es el sistema de tallas de Brasil.
  • https://schema.org/WearableSizeSystemCN: Es el sistema de tallas de China.
  • https://schema.org/WearableSizeSystemDE: Es el sistema de tallas de Alemania.
  • https://schema.org/WearableSizeSystemEurope: Es el sistema de tallas de Europa.
  • https://schema.org/WearableSizeSystemFR: Es el sistema de tallas de Francia.
  • https://schema.org/WearableSizeSystemIT: Es el sistema de tallas de Italia.
  • https://schema.org/WearableSizeSystemJP: Es el sistema de tallas de Japón.
  • https://schema.org/WearableSizeSystemMX: Es el sistema de tallas de México.
  • https://schema.org/WearableSizeSystemUK: Es el sistema de tallas del Reino Unido.
  • https://schema.org/WearableSizeSystemUS: Es el sistema de tallas de Estados Unidos.

También se admiten los nombres cortos sin el prefijo de la URL (por ejemplo, WearableSizeSystemAU).

Consulta también size_system en la Ayuda de Google Merchant Center. Google también comprende los valores de texto de size_system (por ejemplo, UR, BR, CN, DE y EU), pero es posible que otros motores de búsqueda no lo hagan, por lo que se recomienda usar los valores de enumeración estándar schema.org.

PeopleAudience

La definición completa de PeopleAudience está disponible en schema.org/PeopleAudience.

Usa las siguientes propiedades cuando indiques el público recomendado para un producto. Consulta también Atributos y valores de datos estructurados admitidos en la Ayuda de Google Merchant Center.

Propiedades recomendadas
suggestedGender

Text o GenderType

El género sugerido para el que es adecuado el producto. Debe ser uno de los siguientes valores:

  • https://schema.org/Male
  • https://schema.org/Female
  • Unisex: Este valor (no distingue mayúsculas de minúsculas) no se encuentra en el estándar de schema.org y no debe tener un prefijo https://schema.org/.

Consulta Gender en la Ayuda de Google Merchant Center para obtener más detalles.

Ten en cuenta que Google completará los valores de GenderType sin el prefijo de schema.org; por lo tanto, también se aceptan los valores de male y female sin procesar.

suggestedMaxAge (o suggestedAge.maxValue)

Number

La edad máxima sugerida para el producto, en años. Google asigna las edades máximas sugeridas para los productos al siguiente conjunto fijo de valores numéricos:

  • 0.25: recién nacidos
  • 1.0: de 3 a 12 meses
  • 5.0: de 1 a 5 años
  • 13.0: de 5 a 13 años
suggestedMinAge (o suggestedAge.minValue)

Number

La edad mínima sugerida para el producto, en años. Google asigna las edades mínimas sugeridas para los productos al siguiente conjunto fijo de valores numéricos:

  • 0: recién nacidos
  • 0.25: de 3 a 12 meses
  • 1.0: de 1 a 5 años
  • 5.0: de 5 a 13 años
  • 13.0: adultos

EnergyConsumptionDetails

La definición completa de EnergyConsumptionDetails está disponible en schema.org/EnergyConsumptionDetails.

Usa las siguientes propiedades para indicar el consumo de energía de un producto, como los productos eléctricos. Actualmente, solo se admiten calificaciones de eficiencia energética de la UE.

Propiedades obligatorias
hasEnergyEfficiencyCategory

EUEnergyEfficiencyEnumeration

Es la categoría de eficiencia energética del producto. Actualmente, solo se admiten las clasificaciones de eficiencia energética de la UE:

  • https://schema.org/EUEnergyEfficiencyCategoryA3Plus: Nivel de eficiencia energética A+++ de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryA2Plus: Nivel de eficiencia energética A++ de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryA1Plus: Nivel de eficiencia energética A+ de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryA: Nivel de eficiencia energética A de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryB: Nivel de eficiencia energética B de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryC: Nivel de eficiencia energética C de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryD: Nivel de eficiencia energética D de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryE: Nivel de eficiencia energética E de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryF: Nivel de eficiencia energética F de la UE.
  • https://schema.org/EUEnergyEfficiencyCategoryG: Nivel de eficiencia energética G de la UE.

También se admiten los nombres cortos sin el prefijo de URL (por ejemplo, EUEnergyEfficiencyCategoryA).

Propiedades recomendadas
energyEfficiencyScaleMin y energyEfficiencyScaleMax

EUEnergyEfficiencyEnumeration

Es el nivel de eficiencia energética más bajo y el más alto en la escala regulada del consumo de energía de la UE para la categoría a la que pertenece un producto.

Consulta hasEnergyEfficiencyCategory para obtener una lista de los valores admitidos.

La propiedad energyEfficiencyScaleMin especifica la clase menos eficiente en la escala de consumo de energía, mientras que energyEfficiencyScaleMax especifica la clase más eficiente. Por ejemplo, para un producto con un nivel de eficiencia energética "C" en una escala de "A+++" a "D", usa lo siguiente:

{
  "@type": "EnergyConsumptionDetails",
  "hasEnergyEfficiencyCategory":  "https://schema.org/EUEnergyEfficiencyCategoryC",
  "energyEfficiencyScaleMin": "https://schema.org/EUEnergyEfficiencyCategoryD",
  "energyEfficiencyScaleMax": "https://schema.org/EUEnergyEfficiencyCategoryA3Plus"
}

Si no se proporciona energyEfficiencyScaleMin, se supone que tiene el valor https://schema.org/EUEnergyEfficiencyCategoryG. Si no se proporciona energyEfficiencyScaleMax, se supone que tiene el valor https://schema.org/EUEnergyEfficiencyCategoryA3Plus.

Envío

OfferShippingDetails

OfferShippingDetails permite que las personas vean los costos de envío y los plazos de entrega estimados en función de su ubicación y las políticas de envío de la empresa. Si quieres que tus productos sean aptos para la mejora en los detalles de envío, agrega las siguientes propiedades de OfferShippingDetails y datos estructurados de Product a la página del producto.

A veces, los comercios pueden ofrecer varias opciones para que los usuarios seleccionen cuando envíen un producto a un destino (por ejemplo, Expreso en una noche, Urgente en 2 días y estándar). Puedes indicar cada una de ellas utilizando varias propiedades shippingDetails, cada una con diferentes combinaciones de las propiedades shippingRate y deliveryTime.

Si bien no es obligatorio utilizar OfferShippingDetails, las siguientes propiedades son obligatorias si desea que sus detalles de envío sean aptos para la mejora.

La definición completa de OfferShippingDetails está disponible en schema.org/OfferShippingDetails.

Propiedades obligatorias
deliveryTime

ShippingDeliveryTime

El tiempo total de demora desde que se recibe la orden hasta que los productos llegan al cliente final. Las siguientes propiedades se pueden anidar en la propiedad deliveryTime:

  • handlingTime
  • transitTime

No proporciones más de un deliveryTime. Consulta también la lista de propiedades de ShippingDeliveryTime compatibles con Google.

shippingDestination

DefinedRegion

Indica cuáles son los destinos de envío. Especifica la información de shippingDestination.addressCountry. Consulta también la lista de propiedades de DefinedRegion compatibles con Google.

shippingRate

MonetaryAmount

Es la información sobre el costo del envío al destino especificado. Se debe especificar al menos uno de los valores shippingRate.value o shippingRate.maxValue, junto con shippingRate.currency.

Solo puedes especificar una shippingRate por propiedad OfferShippingDetails. Si quieres asignar varias tarifas para un producto, especifica varias propiedades OfferShippingDetail.

shippingRate.currency

Text

La moneda del costo de envío en formato ISO 4217 de 3 letras. La moneda debe ser la misma que se especificó en la oferta.

shippingRate.value o shippingRate.maxValue

Number

El costo de envío a shippingDestination. Si se usa una string para proporcionar el valor, no incluyas símbolos de moneda, separadores de miles ni espacios.

Para indicar que el envío es gratis, establece el valor en 0.

DefinedRegion

DefinedRegion se usa para crear áreas personalizadas, de manera que se establezcan tiempos en tránsito y costos de envío exactos en varios servicios de envío. Actualmente, esta función solo está disponible para un conjunto de países restringido, como se indica en la sección sobre cómo configurar regiones de la Ayuda de Google Merchant Center.

Propiedades obligatorias
addressCountry

Text

Corresponde al código de país de dos letras en el formato ISO 3166-1 alpha-2.

Propiedades recomendadas
Elige addressRegion o postalCode

Identifica la región del área de entrega del cliente. Si se omite, el país completo es la región definida. Se pueden enumerar varias regiones, pero no puedes mezclar diferentes maneras de especificar las regiones en una instancia DefinedRegion.

addressRegion

Text

Si incluyes esta propiedad, la región debe ser un código de subdivisión de 2 o 3 dígitos, sin prefijo del país, en formato ISO 3166-2. Actualmente, la Búsqueda de Google solo admite EE.UU., Australia y Japón. Ejemplos: "NY" (para EE.UU., estado de Nueva York), "NSW" (para Australia, estado de Nueva Gales del Sur) o "03" (para Japón, prefectura de Iwate).

No proporcione información sobre la región y el código postal.

postalCode

Text

Corresponde al código postal, por ejemplo, 94043. Por el momento, se admiten los códigos postales para Australia, Canadá y EE.UU.

ShippingDeliveryTime

ShippingDeliveryTime se usa para compartir la demora total entre la recepción de un pedido y la mercadería que llega al cliente final.

Propiedades recomendadas
handlingTime

QuantitativeValue (para tiempos de envío)

Es el tiempo típico de demora desde que se recibe la orden hasta que los productos salen del almacén.

transitTime

QuantitativeValue (para tiempos de envío)

El tiempo típico de demora desde que se envía el pedido hasta la entrega y el momento en que la mercadería llega al cliente final.

QuantitativeValue (para tiempos de envío)

QuantitativeValue se usa aquí para representar los tiempos de envío. Se debe especificar una cantidad mínima y máxima de días. (QuantitativeValue también se usa para el precio por unidad, con diferentes reglas de validación para las propiedades).

Propiedades obligatorias
maxValue

Number

La cantidad máxima de días. El valor debe ser un número entero no negativo.

minValue

Number

La cantidad mínima de días. El valor debe ser un número entero no negativo.

unitCode

Text

Unidades de los valores mínimos y máximos. El valor debe ser DAY o d.

Devoluciones

MerchantReturnPolicy

Usa las siguientes propiedades para que tu ficha del comercio sea apta para mostrar información sobre la política de devoluciones, como las tarifas por devolución y el período para devolver un producto.

Propiedades obligatorias
applicableCountry

Text

Es el código de país al que se aplica la política de devoluciones mediante el formato de código de país de dos letras ISO 3166-1 alpha-2. Puedes especificar hasta 50 países.

returnPolicyCategory

MerchantReturnEnumeration

Es el tipo de política de devoluciones. Usa uno de los siguientes valores:

  • https://schema.org/MerchantReturnFiniteReturnWindow: Hay una cantidad determinada de días para devolver un producto.
  • https://schema.org/MerchantReturnNotPermitted: No se permiten las devoluciones.
  • https://schema.org/MerchantReturnUnlimitedWindow: Puedes devolver un producto de forma ilimitada.

Si usas MerchantReturnFiniteReturnWindow, se requiere la propiedad merchantReturnDays.

Propiedades recomendadas
merchantReturnDays

Integer

Es la cantidad de días posteriores a la fecha de entrega en que se puede devolver un producto. Esta propiedad solo es obligatoria si configuras returnPolicyCategory en MerchantReturnFiniteReturnWindow.

returnFees

ReturnFeesEnumeration

Es el tipo de tarifas de devolución. Usa uno de los siguientes valores admitidos:

  • https://schema.org/FreeReturn: No se aplican cargos al consumidor por devolver el producto. Si lo usas, no incluyas la propiedad returnShippingFeesAmount.
  • https://schema.org/ReturnFeesCustomerResponsibility: El consumidor debe encargarse de pagar el envío por devolución. Si se usa, no incluyas la propiedad returnShippingFeesAmount.
  • https://schema.org/ReturnShippingFees: El comercio cobra una tarifa de envío al consumidor por devolver el producto. Especifica la tarifa de envío (que no sea cero) con la propiedad returnShippingFeesAmount.
returnMethod

ReturnMethodEnumeration

Es el tipo de método de devolución que se ofrece. Esto solo se recomienda si configuras returnPolicyCategory en MerchantReturnFiniteReturnWindow o MerchantReturnUnlimitedWindow. Usa uno o más de los siguientes valores:

  • https://schema.org/ReturnAtKiosk: El artículo se puede devolver en un kiosco.
  • https://schema.org/ReturnByMail: El artículo se puede devolver por correo.
  • https://schema.org/ReturnInStore: El artículo se puede devolver en la tienda.
returnShippingFeesAmount

MonetaryAmount

Indica el costo de envío de la devolución de un producto. Esta propiedad solo es necesaria si hay una tarifa de envío distinta de cero que el consumidor debe pagar al comercio para devolver un producto. En este caso, returnFees debe establecerse en https://schema.org/ReturnShippingFees). Si la devolución es gratuita, returnFees debe establecerse en https://schema.org/FreeReturn. Si es necesario que el consumidor tenga que encargarse de pagar el costo de envío por devolución, returnFees debe establecerse en https://schema.org/ReturnFeesCustomerResponsibility.

Enfoque alternativo para configurar las opciones de envío y devolución con Google

Las políticas de envío de los minoristas pueden complicarse y cambiar con frecuencia. Si posees una cuenta de Google Merchant Center y tienes problemas para crear los detalles de envío y devolución y mantenerlos actualizados con lenguaje de marcado, te recomendamos que ajustes la configuración de envío y la política de devoluciones en Ayuda de Google Merchant Center.

Cómo supervisar resultados enriquecidos con Search Console

Search Console es una herramienta que te ayuda a supervisar el rendimiento de tus páginas en la Búsqueda de Google. Si bien no es necesario que te registres en Search Console para que se incluya tu contenido en los resultados de la Búsqueda de Google, puede ayudarte a comprender y mejorar la forma en que Google ve tu sitio. Te recomendamos que revises Search Console en los siguientes casos:

  1. Después de implementar datos estructurados por primera vez
  2. Después de lanzar plantillas nuevas o actualizar código
  3. Para analizar tráfico periódicamente

Después de implementar datos estructurados por primera vez

Después de que Google haya indexado tus páginas, busca problemas con el informe de estado de resultados enriquecidos relevante. Lo ideal es que haya un aumento de los elementos válidos y no de los elementos no válidos. Si encuentras problemas en los datos estructurados, haz lo siguiente:

  1. Corrige los elementos no válidos.
  2. Inspecciona una URL publicada para verificar si persiste el problema.
  3. Solicita una validación desde el informe de estado.

Después de lanzar plantillas nuevas o actualizar código

Cuando realices cambios significativos en tu sitio web, supervisa los aumentos en los elementos no válidos de datos estructurados.
  • Si notas un aumento en la cantidad de elementos no válidos, tal vez se deba a que implementaste una plantilla que no funciona o a que tu sitio interactúa con la plantilla actual de una forma diferente e incorrecta.
  • Si notas una disminución de los elementos válidos (que no coincide con un aumento en la cantidad de elementos no válidos), es posible que ya no estés incorporando datos estructurados en tus páginas. Usa la Herramienta de inspección de URLs para saber cuál es la causa del problema.

Cómo analizar el tráfico periódicamente

Analiza el tráfico de la Búsqueda de Google con el Informe de rendimiento. Los datos te mostrarán con qué frecuencia tu página aparece como resultado enriquecido en la Búsqueda, con qué frecuencia los usuarios hacen clic en ella y cuál es la posición promedio en la que apareces en los resultados de la búsqueda. También puedes extraer esos resultados automáticamente con la API de Search Console.

Existen dos informes de Search Console relacionados con los datos estructurados de Product:

Ambos informes brindan advertencias y errores relacionados con los datos estructurados de Product, pero son independientes debido a los diferentes requisitos de las experiencias asociadas. Por ejemplo, el informe de fichas de comercios incluye verificaciones de resúmenes de productos que incluyen datos estructurados de Offer, por lo que los resúmenes de productos solo se deben consultar para las páginas de fichas que no pertenecen al comercio.

Solución de problemas

Si tienes problemas para implementar o depurar datos estructurados, te brindamos algunos recursos que podrían resultarte útiles.