Falta el campo "shippingDetails" (en "offers"): es opcional, y así se añade
Es un problema no crítico del informe Fichas de comerciante, así que tus productos pueden salir con su precio. Añade los datos de envío si quieres que Google muestre también tus gastos y tu plazo de entrega.
Por qué aparece
La documentación de Google marca shippingDetails como recomendado, no obligatorio. Suele aparecer junto a Falta el campo "hasMerchantReturnPolicy", porque los dos vienen del mismo hueco: un marcado de producto sin datos de envío ni de devolución.
Elige de dónde saca Google tus envíos
Google lee los envíos de varios sitios. Si no coinciden, usa este orden, del más fuerte al más débil: los feeds de productos de Merchant Center, la Content API for Shopping, la configuración de Merchant Center o de Search Console, el marcado del producto y, por último, el marcado de Organization.
- Search Console, sin código: abre Ajustes > Compras > Envíos y devoluciones. En la pestaña Envío, haz clic en Añadir política de envío. Elige un país, los días mínimos y máximos de entrega y los gastos. Google aprueba los datos de envío automáticamente. Tienes que ser propietario o usuario con permisos completos de la propiedad.
- Marcado de Organization, una vez para toda la tienda: un
ShippingServicedentro deOrganizationconhasShippingService. Google lo recomienda para una política estándar. - Marcado de la oferta, en cada producto:
shippingDetailsdentro deoffers. Úsalo para productos con envíos distintos o para quitar este aviso.
Google no dice si una política de Search Console o de Organization quita este aviso. Propietarios de tiendas en el foro de Shopify cuentan que puede seguir. Si quieres que desaparezca, añade shippingDetails a la oferta.
La corrección en JSON-LD
Añade un OfferShippingDetails a la oferta. Google exige tres partes dentro: shippingRate, shippingDestination y deliveryTime.
<!-- Después: envío de 4,95 € a España, 1 día de preparación y de 2 a 5 días de tránsito -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Bolso de viaje de lona",
"image": "https://example.com/fotos/bolso-de-viaje.jpg",
"offers": {
"@type": "Offer",
"price": 89,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": 4.95, "currency": "EUR" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "ES" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 2, "maxValue": 5, "unitCode": "DAY" }
}
}
}
}
</script>shippingRate.currencytiene que coincidir con elpriceCurrencyde la oferta.- Para envío gratis, pon
shippingRate.valuea0. handlingTimeva del pedido al envío.transitTimeva del envío a la puerta. Cada uno necesitaminValue,maxValueyunitCodeDAY.- Una tarifa por cada
OfferShippingDetails. Para estándar y exprés, añade dos entradasshippingDetails. addressCountryes un código de dos letras, comoESoMX.
¿Ya describes tu política de envío una vez con marcado de Organization en otra página? La oferta puede apuntar a ella con su @id en lugar de repetirla:
{
"@type": "Offer",
"price": 89,
"priceCurrency": "EUR",
"shippingDetails": {
"@type": "OfferShippingDetails",
"hasShippingService": { "@id": "https://example.com/envios#politica" }
}
}Dónde va la corrección
- Shopify: Dawn imprime el marcado de producto con
{{ product | structured_data }}cerca del final desections/main-product.liquid. Horizon lo hace al principio desections/product-information.liquid. Ese filtro escribe el producto, la marca y las ofertas, sin envíos. Liquid no puede leer tus zonas de envío, así que las tarifas van a mano: cambia esa línea por tu propio bloque JSON-LD o usa una app de datos estructurados. La vía sin código es la configuración de Envíos y devoluciones de Search Console. - WooCommerce: el marcado de producto de WooCommerce no tiene datos de envío. Rank Math documenta un filtro de código,
rank_math/snippet/rich_snippet_product_entity, que añadeshippingDetailsa cada oferta desde el archivorank-math.phpde tu tema. - Wix: ve a SEO & GEO > Tools and settings > SEO Settings > Products y haz clic en Edit junto a Structured data markup. Haz clic en Convert to custom markup en el preset Product y añade
shippingDetailsa su oferta. Wix permite 5 marcados por tipo de página, incluido el preset. - Squarespace: escribe el marcado de producto por ti y su ayuda dice que no puedes editarlo ni quitarlo. Usa la configuración de Envíos y devoluciones de Search Console.
- BigCommerce: en el tema Cornerstone, el marcado de producto está en
templates/components/products/schema.html. Su bloqueoffersno tiene envíos. AñadeshippingDetailsahí y sube el tema.
Comprueba que funcionó
- Pasa la dirección de un producto por la prueba de resultados enriquecidos. En Fichas de comerciante, el aviso de envío debería haber desaparecido.
- En Search Console, abre el informe Fichas de comerciante, haz clic en Falta el campo "shippingDetails" (en "offers") y en Validar corrección.
Antes de los envíos, la indexación
Los datos de envío solo se ven si Google indexó la página del producto. CrawlCoach te muestra qué páginas de tu tienda dejó fuera Google y la solución de cada una. No revisa los campos de envío.
Preguntas frecuentes
¿"Falta el campo shippingDetails" es opcional?
Sí. Google marca shippingDetails como recomendado, y Search Console lo muestra como problema no crítico. Tus productos pueden salir como fichas de comerciante sin él.
Configuré los envíos en Merchant Center. ¿Por qué Search Console sigue mostrando el aviso?
El informe Fichas de comerciante revisa el marcado de la página. La documentación de Google no dice que una política de Merchant Center o de Search Console quite el aviso. Google sigue usando esa configuración para tus fichas, y tiene prioridad sobre el marcado de la página.
¿Necesito shippingDetails en cada producto?
No. Para una política única de toda la tienda, Google recomienda el marcado de Organization o la configuración de Search Console. Añade shippingDetails a las ofertas con envíos distintos, o donde quieras quitar el aviso.
Fuentes
Revisado el 8 de octubre de 2026. Google cambia Search Console y su ayuda de vez en cuando. Si algo no coincide con lo que ves en pantalla, consulta la fuente.
- Ayuda de Search Console: Descripción general del informe de resultados enriquecidos
- Centro de la Búsqueda de Google: Datos estructurados de fichas de comerciante (Product, Offer)
- Centro de la Búsqueda de Google: Datos estructurados de política de envío del comerciante
- Ayuda de Search Console: Configuración de envíos y devoluciones
- Referencia de Shopify Liquid: filtro structured_data (en inglés)
- Código del tema Dawn de Shopify: sección de producto (en inglés)
- Rank Math: añadir políticas de devolución y envío en WooCommerce (en inglés)
- Ayuda de Wix: personalizar la configuración SEO (en inglés)
- Ayuda de Squarespace: cómo optimiza Squarespace tu sitio para la búsqueda (en inglés)
Descubre qué páginas de tu sitio se quedaron fuera de Google
Inicia sesión con Google. CrawlCoach revisa gratis hasta 500 páginas y te da la solución de cada problema.
Obtener mi informe gratisGratis hasta 500 páginas. Sin tarjeta. Inicia sesión con la cuenta de Google que usas en Search Console.
La aplicación y los informes de CrawlCoach están en inglés.
Otros errores de datos estructurados
- Falta el campo "hasMerchantReturnPolicy" (en "offers")Google quiere tu política de devoluciones y tu marcado no la tiene. No es crítico: tus productos siguen siendo aptos.
- Falta el campo "price" (en "offers")Si falta name, image o el precio de la oferta, el problema es crítico. Si falta description, shippingDetails o el GTIN, puede esperar.
- No se ha proporcionado ningún identificador internacional, como GTIN, MPN o ISBNGoogle quiere un identificador del producto que sea igual en todas partes, como el número del código de barras. No es crítico.