Saltar al contenido

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.

En Search Console:Falta el campo "shippingDetails" (en "offers")

Por Bruno Amorim · ·

Leer en: English · Português (Brasil) · Deutsch · Français · Italiano · Polski · 日本語 · 한국어

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 ShippingService dentro de Organization con hasShippingService. Google lo recomienda para una política estándar.
  • Marcado de la oferta, en cada producto: shippingDetails dentro de offers. Ú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.currency tiene que coincidir con el priceCurrency de la oferta.
  • Para envío gratis, pon shippingRate.value a 0.
  • handlingTime va del pedido al envío. transitTime va del envío a la puerta. Cada uno necesita minValue, maxValue y unitCode DAY.
  • Una tarifa por cada OfferShippingDetails. Para estándar y exprés, añade dos entradas shippingDetails.
  • addressCountry es un código de dos letras, como ES o MX.

¿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 de sections/main-product.liquid. Horizon lo hace al principio de sections/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ñade shippingDetails a cada oferta desde el archivo rank-math.php de 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 shippingDetails a 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 bloque offers no tiene envíos. Añade shippingDetails ahí y sube el tema.

Comprueba que funcionó

  1. 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.
  2. 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.

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 gratis

Gratis 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

Guías relacionadas (en inglés)