Datos estructurados de la política de envío del comercio (ShippingService)
Muchos comercios tienen políticas de envíos que describen el proceso de envío de productos comprados por los clientes.
Cuando agregas datos estructurados de ShippingService a tu sitio, la Búsqueda de Google puede usar esta información para
mostrar la información de envío junto con tus productos y en los paneles de conocimiento de los resultados de la Búsqueda.
ShippingService te permite especificar detalles como los costos de envío y los tiempos de entrega según las características del producto, como el peso, las dimensiones o la ubicación de entrega.
Se puede especificar una política de envío estándar para tu empresa que se aplique a la mayoría o a todos los productos que vendes con
el tipo de datos estructurados ShippingService anidado en el tipo de datos estructurados Organization
con la propiedad hasShippingService.
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.
- 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.
- Sigue los lineamientos.
- 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).
- 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
noindexni requisitos de acceso. Si la página se ve bien, puedes pedirle a Google que vuelva a rastrear tus URLs. - 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
En este ejemplo, se muestra que, en EE.UU. y Canadá, hay envío gratis en 2 días para pedidos superiores a USD 29.99 y, de lo contrario, envío en 3 días por USD 3.49. En México, no hay envío para pedidos inferiores a MXN 500. De lo contrario, hay envío en 4 días con un costo de envío del 10%.
<html>
<head>
<title>Our shipping policy</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "https://schema.org/Organization",
"hasShippingService": {
"@type": "ShippingService",
"@id": "#us_ca_mx_standard_shipping",
"name": "Standard shipping policies for US, Canada and Mexico",
"description": "US and Canada: Free 2-day shipping for orders over $29.99,
otherwise 3-day shipping for $3.49.
Mexico: No shipping to Mexico for orders under $50,
otherwise 10% shipping cost and 4-day shipping.",
"fulfillmentType": "FulfillmentTypeDelivery",
"handlingTime": {
"@type": "ServicePeriod",
"cutoffTime": "14:30:00-07:00",
"duration": {
"@type": "QuantitativeValue",
"minValue": "0",
"maxValue": "1",
"unitCode": "DAY"
},
"businessDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
"shippingConditions": [
{
"@type": "ShippingConditions",
"shippingDestination": [
{
"@type": "DefinedRegion",
"addressCountry": "US"
},
{
"@type": "DefinedRegion",
"addressCountry": "CA"
}
],
"orderValue": {
"@type": "MonetaryAmount",
"minValue": "0",
"maxValue": "29.99",
"currency": "USD"
},
"shippingRate": {
"@type": "MonetaryAmount",
"value": "3.49",
"currency": "USD"
},
"transitTime": {
"@type": "ServicePeriod",
"duration": {
"@type": "QuantitativeValue",
"minValue": "1",
"maxValue": "2",
"unitCode": "DAY"
},
"businessDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
}
},
{
"@type": "ShippingConditions",
"shippingDestination": [
{
"@type": "DefinedRegion",
"addressCountry": "US"
},
{
"@type": "DefinedRegion",
"addressCountry": "CA"
}
],
"orderValue": {
"@type": "MonetaryAmount",
"minValue": "30",
"currency": "USD"
},
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "USD"
},
"transitTime": {
"@type": "ServicePeriod",
"duration": {
"@type": "QuantitativeValue",
"minValue": "1",
"maxValue": "1",
"unitCode": "DAY"
},
"businessDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
}
},
{
"@type": "ShippingConditions",
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "MX"
},
"orderValue": {
"@type": "MonetaryAmount",
"minValue": "0",
"maxValue": "49.99",
"currency": "USD"
},
"doesNotShip": true
},
{
"@type": "ShippingConditions",
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "MX"
},
"orderValue": {
"@type": "MonetaryAmount",
"minValue": "50",
"currency": "USD"
},
"shippingRate": {
"@type": "ShippingRateSettings",
"orderPercentage": "0.10"
},
"transitTime": {
"@type": "ServicePeriod",
"duration": {
"@type": "QuantitativeValue",
"minValue": "2",
"maxValue": "3",
"unitCode": "DAY"
},
"businessDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
}
}
]
}
// Other Organization-level properties
// ...
}
</script>
</head>
<body>
</body>
</html>Lineamientos
Para que el lenguaje de marcado de tu política de envíos sea apto para usarse en la Búsqueda de Google, debes seguir estos lineamientos:
- Lineamientos generales de datos estructurados
- Conceptos básicos sobre la Búsqueda
- Lineamientos técnicos
Lineamientos técnicos
-
Te recomendamos que coloques la información de la política de envío en una sola página de tu sitio que describa la
política de envío de tu empresa. No es necesario que la incluyas en todas las páginas de tu sitio. Incluye el tipo de datos estructurados de
ShippingServiceen el tipo de datos estructurados deOrganization. También puedes consultar el Lenguaje de marcado de organización para obtener más información. -
Si tienes una política de envíos no estándar para un producto en particular, especifica el tipo de datos estructurados
OfferShippingDetailsen el tipo de datos estructuradosOffer. Ten en cuenta que las propiedades admitidas para las políticas de envíos a nivel de la oferta son un subconjunto de las propiedades admitidas para las políticas de envíos a nivel de la organización. Consulta el lenguaje de marcado de la ficha de comercio para conocer el subconjunto de propiedades que se admiten para las políticas de envíos a nivel del producto.
Definiciones de tipos de datos estructurados
Debes incluir las propiedades obligatorias para que tus datos estructurados sean aptos para usarse en la Búsqueda de Google. También puedes incluir propiedades recomendadas para agregar más información sobre tus políticas de devoluciones, lo que podría brindar una mejor experiencia del usuario.
ShippingService (anidada en Organization
con la propiedad hasShippingService)
Usa las siguientes propiedades para describir los servicios de envío estándar de tu empresa.
| Propiedades obligatorias | |
|---|---|
shippingConditions |
Especifica el costo de envío o los tiempos de entrega que se aplican a un conjunto particular de condiciones, por ejemplo,
un rango de peso del producto, las dimensiones del producto, el valor del pedido o la ubicación de entrega. Un |
| Propiedades recomendadas | |
|---|---|
name |
Es un nombre único para tu servicio de envío, si corresponde. Por ejemplo, "Envío estándar". |
description |
Es una descripción de tu servicio de envío, si corresponde. Por lo general, es más completo que el nombre. |
fulfillmentType |
Es la forma en que se entrega el producto al cliente para este servicio de envío, si corresponde.
|
handlingTime |
Es información opcional sobre los tiempos de preparación (por ejemplo, en un almacén) después de recibir un pedido, si corresponde. Consulta también la lista de propiedades deServicePeriod en ShippingService admitidas por Google.
|
validForMemberTier |
Es el programa y nivel de lealtad para los que es válido este servicio de envío, si corresponde. Puedes especificar varios niveles de membresía si la configuración de envío es la misma para todos los niveles.
Si usas la propiedad
Los programas y niveles de lealtad que ofreces para tu empresa pueden
definirse en tu cuenta de Merchant Center o con el tipo de datos
estructurados Este es un ejemplo de la propiedad "validForMemberTier": { "@type": "MemberProgramTier", "name": "silver", "isTierOf": { "@type": "MemberProgram", "name": "member-plus" } } Este es un ejemplo de la propiedad "validForMemberTier": { "@id": "https://www.example.com/com/member-plus#tier_silver" } |
ServicePeriod (para tiempos de preparación)
Para especificar los tiempos de preparación del envío, usa la clase ServicePeriod.
Este es un ejemplo de un objeto ServicePeriod en el que los pedidos se procesan de lunes a viernes, con una hora límite de las 10:30 p.m. (hora estándar del este). La duración del tiempo de preparación es de entre 0 y 2 días.
(donde un tiempo de preparación de 0 significa que los pedidos se procesan el mismo día si se reciben antes de la hora límite).
"handlingTime": { "@type": "ServicePeriod", "businessDays": [ "https://schema.org/Monday", "https://schema.org/Tuesday", "https://schema.org/Wednesday", "https://schema.org/Thursday", "https://schema.org/Friday" ], "cutoffTime": "22:30:00-05:00", "duration": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2, "unitCode": "DAY" } }
| Propiedades recomendadas | |
|---|---|
businessDays |
Son los días de la semana en que se procesan los pedidos recibidos, si corresponde. |
cutoffTime |
Es la hora después de la cual los pedidos recibidos en un día no se procesan ese mismo día, si corresponde. A los pedidos que se procesan después de la hora límite se les agrega un día al tiempo de entrega estimado. La hora se indica con el formato de hora ISO-8601, por ejemplo, "23:30:00-05:00" representa las 6:30 p.m. (EST), que son 5 horas menos que el tiempo universal coordinado (UTC). |
duration |
Es la demora entre la recepción de un pedido y la salida de los productos del almacén, si corresponde. |
QuantitativeValue (para tiempos de preparación del envío)
La clase QuantitativeValue se usa para representar los tiempos mínimos y máximos de preparación de pedidos.
Debes proporcionar value (para un tiempo de preparación fijo) o maxValue (para un límite superior del tiempo de preparación) junto con unitCode. De manera opcional, se puede proporcionar minValue para especificar un límite inferior para el tiempo de preparación.
| Propiedades recomendadas | |
|---|---|
maxValue |
La cantidad máxima de días. El valor debe ser un número entero no negativo. |
minValue |
Es la cantidad mínima de días, si corresponde. El valor debe ser un número entero no negativo. |
unitCode |
Unidades de los valores mínimos y máximos. El valor debe ser |
value |
Es la cantidad exacta de días de preparación, si se conoce. El valor debe ser un número entero no negativo.
Si se proporciona, no se deben especificar |
ShippingConditions (anidada en ShippingService
con la propiedad shippingConditions)
Usa las siguientes propiedades para describir las condiciones, los costos asociados y los tiempos en tránsito de un servicio de envío.
Si no se especifica un destino de envío, las condiciones de envío se aplican a todos los destinos de envío del mundo.
| Propiedades recomendadas | |
|---|---|
shippingOrigin |
Indica el origen del envío, si corresponde. Consulta la lista de propiedades de |
shippingDestination |
Indica el destino de envío, si corresponde. Consulta la lista de propiedades de |
weight |
Es el rango de peso del paquete para este objeto de condiciones de envío, si corresponde.
Consulta también la lista de propiedades de |
numItems |
Es el rango de la cantidad de productos en el pedido para este objeto de condiciones de envío, si corresponde.
Consulta también la lista de propiedades de |
orderValue |
Es el rango del costo del pedido para este objeto de condiciones de envío, si corresponde.
Consulta también la lista de propiedades de |
doesNotShip |
Si corresponde, configura este campo como |
transitTime |
Si corresponde, se usa para especificar el tiempo en tránsito esperado entre la salida del origen del envío (por lo general, un almacén) y la llegada al destino del envío (por lo general, el cliente). Se aplica a los envíos desde una ubicación en el |
shippingRate |
Si corresponde, usa esta propiedad para especificar el costo de envío de los envíos desde una ubicación en el |
seasonalOverride |
Si corresponde, usa esta propiedad para especificar un período limitado durante el cual este objeto de condiciones de envío es válido.
Consulta también la lista de propiedades de |
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.
| Propiedades obligatorias | |
|---|---|
addressCountry |
Corresponde al código de país de dos letras en el formato ISO 3166-1 alpha-2. |
| Propiedades recomendadas | |
|---|---|
addressRegion |
Es el código de región específico del país, si corresponde. La región debe ser un código de subdivisión de 2 o 3 caracteres, sin prefijo del país, en formato ISO 3166-2. La Búsqueda de Google solo admite EE.UU., Australia y Japón. Ejemplos: No proporcione información sobre la región y el código postal. |
postalCode |
El código postal específico del país, si corresponde. como |
ServicePeriod (para tiempos en tránsito)
ServicePeriod se usa para representar rangos de tiempos en tránsito de un pedido.
"transitTime": { "@type": "ServicePeriod", "businessDays": [ "https://schema.org/Monday", "https://schema.org/Tuesday", "https://schema.org/Wednesday", "https://schema.org/Thursday", "https://schema.org/Friday" ], "duration": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2, "unitCode": "DAY" } }
| Propiedades recomendadas | |
|---|---|
businessDays |
Días de la semana en que un pedido está en tránsito activo, si corresponde. Si los días hábiles de tu organización son de lunes a sábado, no es necesario que agregues esta propiedad. |
duration |
Cantidad de días hábiles en tránsito, si corresponde.
Consulta también la lista de propiedades de |
QuantitativeValue (para tiempos en tránsito del envío)
La clase QuantitativeValue se usa para representar los tiempos en tránsito mínimos y máximos de los pedidos.
Debes proporcionar value (para un tiempo en tránsito fijo) o maxValue (para un límite superior del tiempo en tránsito) junto con unitCode. minValue
se puede proporcionar de forma opcional para especificar un límite inferior para el tiempo en tránsito.
| Propiedades recomendadas | |
|---|---|
maxValue |
La cantidad máxima de días. El valor debe ser un número entero no negativo. |
minValue |
Es la cantidad mínima de días, si corresponde. El valor debe ser un número entero no negativo. |
value |
Es la cantidad exacta de días en tránsito, si se conoce. El valor debe ser un número entero no negativo.
Si se proporciona, no se deben especificar |
unitCode |
Es la unidad de tiempo en tránsito. El valor debe ser |
QuantitativeValue (en el contexto de las dimensiones de empaquetado del envío)
QuantitativeValue se usa en el contexto de ShippingConditions para representar rangos de valores de las dimensiones de empaque del envío (weight y numItems) para los que se aplican una tarifa de envío y un tiempo en tránsito particulares.
Se debe proporcionar minValue o maxValue. minValue
tiene el valor predeterminado 0 y maxValue tiene el valor predeterminado infinito cuando no se proporcionan.
| Propiedades recomendadas | |
|---|---|
maxValue |
Es la cantidad máxima para la dimensión ( |
minValue |
Es la cantidad mínima para la dimensión ( |
unitCode |
Es una unidad pertinente para la dimensión (
|
MonetaryAmount (en el contexto de las condiciones de envío)
MonetaryAmount se usa en el contexto de las condiciones de envío para representar rangos de valores de pedidos para los que se aplican una tarifa de envío y un tiempo de entrega determinados.
Se debe proporcionar minValue o maxValue. minValue
tiene el valor predeterminado 0 y maxValue tiene el valor predeterminado infinito cuando no se proporcionan.
Ten en cuenta que el tipo MonetaryAmount también se usa en un formato diferente para especificar los costos de envío.
| Propiedades obligatorias | |
|---|---|
maxValue |
Es el valor máximo del pedido. El valor predeterminado es infinito cuando no se proporciona. |
minValue |
Es el valor mínimo del pedido. El valor predeterminado es 0 cuando no se proporciona. |
currency |
Es el código de moneda del valor del pedido en formato ISO 4217. |
MonetaryAmount (en el contexto de la tarifa de envío)
MonetaryAmount se usa en el contexto de las tarifas de envío para especificar una tarifa de envío máxima o específica para una condición de envío determinada. MonetaryAmount se usa como una alternativa más simple a ShippingRateSettings, que es más compleja, y se puede usar cuando solo necesitas especificar una tarifa de envío específica o máxima. Se debe proporcionar maxValue o value junto con currency.
| Propiedades obligatorias | |
|---|---|
maxValue |
Es el costo de envío máximo para la condición de envío determinada. No especifiques |
value |
Es el costo de envío fijo para la condición de envío determinada. Para el envío gratis, usa |
currency |
Es el código de moneda del costo de envío en formato ISO 4217. |
ShippingRateSettings (en el contexto de la tarifa de envío)
ShippingRateSettings se usa en el contexto de las tarifas de envío para especificar la tarifa de envío de una condición de envío determinada como un porcentaje del valor del pedido o el peso de los bienes pedidos. Se debe proporcionar orderPercentage o weightPercentage cuando se usa ShippingRateSettings.
| Propiedades recomendadas | |
|---|---|
weightPercentage |
Es el costo de envío para la condición de envío determinada como una fracción del peso de los bienes enviados.
Usa un valor entre |
orderPercentage |
Es el costo de envío para la condición de envío determinada como una fracción del valor del pedido.
Usa un valor entre |
OpeningHoursSpecification (en el contexto de las anulaciones de envío de temporada)
OpeningHoursSpecification se usa en el contexto de las condiciones de envío para representar cuándo es válida la condición, por ejemplo, debido a días festivos de temporada. Se debe proporcionar al menos uno de los valores validFrom y validThrough cuando se usa OpeningHoursSpecification.
| Propiedades recomendadas | |
|---|---|
validFrom |
Es la primera fecha en la que la condición de envío es válida, en formato ISO 8601. |
validThrough |
Es la última fecha en la que la condición de envío es válida, en formato ISO 8601. |
Enfoque alternativo para configurar las opciones de envío con Google
Las políticas de envío de los minoristas pueden complicarse y cambiar con frecuencia. Si tienes problemas para crear detalles de envío y mantenerlos actualizados con lenguaje de marcado y tienes una cuenta de Google Merchant Center, te recomendamos que consultes cómo configurar las opciones de envío en Google Merchant Center. También puedes configurar políticas de envíos en Search Console, a nivel de la cuenta, que se agregan automáticamente a Merchant Center.
Combinación de varios parámetros de configuración de envío
Si combinas varios parámetros de configuración de envíos, ten en cuenta puedes anular la información de la política según el orden de prioridad. Por ejemplo, si proporcionas tanto lenguaje de marcado de políticas de envíos en tu sitio y parámetros de configuración de políticas de envíos en Search Console, Google solo usará la información proporcionada en Search Console.
Google usa el siguiente orden de prioridad (de mayor a menor):
- Content API for Shopping (configuración de envío a nivel de la cuenta)
- Configuración en Merchant Center o Search Console
- Lenguaje de marcado de la ficha del comercio a nivel del producto
- Lenguaje de marcado a nivel de la organización
Solución de problemas
Si tienes problemas para implementar o depurar datos estructurados, te brindamos algunos recursos que podrían resultarte útiles.
- Si usas un sistema de administración de contenido (CMS), o si alguien más se encarga de tu sitio, pídele que te ayude. Asegúrate de reenviarle cualquier mensaje de Search Console que detalle el problema.
- Google no garantiza que se muestren en los resultados de la búsqueda las funciones que consumen datos estructurados. Para obtener una lista de los motivos comunes por los que Google podría no mostrar tu contenido en un resultado enriquecido, consulta los Lineamientos generales de datos estructurados.
- Es posible que haya un error en los datos estructurados. Consulta la lista de errores de datos estructurados y el Informe de datos estructurados que no se pueden analizar.
- Si recibiste una acción manual de datos estructurados en tu página, estos datos se ignorarán (aunque la página puede seguir apareciendo en los resultados de la Búsqueda de Google). Para solucionar los problemas con datos estructurados, usa el Informe de acciones manuales.
- Vuelve a consultar los lineamientos para determinar si tu contenido no cumple con ellos. El problema puede deberse a contenido generador de spam o a un uso fraudulento del lenguaje de marcado. Sin embargo, es posible que no sea un problema de sintaxis, por lo que la prueba de resultados enriquecidos no podrá identificar estos problemas.
- Soluciona problemas de resultados enriquecidos faltantes o disminución del total de resultados enriquecidos.
- Espera un tiempo suficiente para que se vuelvan a realizar el rastreo y la indexación. No olvides que pueden transcurrir varios días después de publicar una página para que Google la encuentre y la rastree. Si tienes preguntas generales sobre el rastreo y la indexación, consulta las Preguntas frecuentes sobre el rastreo y la indexación de la Búsqueda de Google.
- Publica una pregunta en el foro de la Central de la Búsqueda de Google.