Actualización de Google para Product.category: cómo arreglar tu schema de merchant listing
La nueva propiedad category y las reglas de duración de oferta, con JSON-LD listo para copiar
El 7 de julio de 2026 Google actualizó la documentación de datos estructurados de merchant listings con dos cambios que ya están decidiendo qué fichas de producto ganan resultados enriquecidos: la nueva propiedad Product.category y una sección dedicada de "Duración de la oferta" que endurece cómo pueden convivir validFrom, validThrough y priceValidUntil. Si tu schema de producto sigue como en 2024, Google puede dejar de mostrarte la ficha enriquecida — los docs ahora avisan que la ficha puede no aparecer cuando priceValidUntil indica una fecha pasada. Esta guía te muestra el JSON-LD exacto que necesitás agregar, con ejemplos para Shopify y WooCommerce, y un checklist para correr antes de tocar la plantilla.
Las dos actualizaciones se registraron el mismo día en el changelog de Search Central: "Added category to merchant listing structured data" y "Clarified sale price effective dates". Leídas juntas te dicen dos cosas: Google ahora quiere la categoría del producto tipada dentro del markup (no solo en el feed de Merchant Center), y hace cumplir que los precios promocionales aparezcan solo cuando las fechas todavía tienen sentido.
Qué cambió en el schema de merchant listing el 7 de julio de 2026
Google agregó soporte para Product.category como propiedad del merchant listing. La propiedad acepta Text plano (tu propia etiqueta de categoría) o un objeto CategoryCode que apunte a la Google Product Taxonomy — la misma taxonomía que usa Merchant Center bajo google_product_category. También podés pasar un array que mezcle ambos, que es lo que Google recomienda cuando querés señalar al mismo tiempo tu taxonomía interna y la canónica de Google.
La segunda actualización agregó una sección nueva de "Duración de la oferta" a los docs. Divide la fecha de la oferta en dos nodos:
- En el nodo
Offer: usápriceValidUntilpara indicar hasta cuándo vale el precio actual.validFrompuede ir acá también, como fecha de inicio. - En un nodo
PriceSpecification: usávalidFromyvalidThrough.priceValidUntilno aplica acá.
La redacción de Google es: usá o validThrough o priceValidUntil como fecha de fin — nunca las dos en el mismo nodo. Y la advertencia que importa: la ficha puede no mostrarse si priceValidUntil indica una fecha pasada. Esa regla ya estaba implícita, pero ponerla en los docs significa que Rich Results Test, Merchant Center y Search Console van a tratar un precio de oferta vencido como un descalificador, no como un aviso suave.
El JSON-LD exacto para copiar, con el ejemplo de Vestidos
Este es el bloque category que Google usa en su propia documentación. El ID de Google Product Category para Vestidos es 2271. Si lo buscás en la taxonomía de Google, corresponde a Apparel & Accessories > Clothing > Dresses.
"category": [
{
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "2271"
},
"Vestidos de verano"
]
Dos puntos importantes sobre cómo armarlo: codeValue puede ser el ID numérico (preferido) o la ruta completa con > como separador; y la cadena de texto plano — "Vestidos de verano" arriba — es donde va tu propia taxonomía. Si las plantillas de ficha ya emiten un breadcrumb, el último nodo del breadcrumb suele servir perfecto para ese slot.
Para una oferta, el Offer queda así:
"offers": {
"@type": "Offer",
"url": "https://ejemplo.com/productos/vestido-lino",
"priceCurrency": "ARS",
"price": "49000",
"priceValidUntil": "2026-11-15T23:59:00-03:00",
"availability": "https://schema.org/InStock"
}
Si preferís el patrón nuevo con un nodo priceSpecification — que es lo que Google recomienda cuando necesitás codificar al mismo tiempo una oferta y un precio tachado — usá validFrom y validThrough, no priceValidUntil:
"offers": {
"@type": "Offer",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "49000",
"priceCurrency": "ARS",
"validFrom": "2026-10-20T00:00:00-03:00",
"validThrough": "2026-11-15T23:59:00-03:00"
}
}
Qué fichas de producto pierden resultados enriquecidos si ignorás esto
Google es explícito sobre priceValidUntil en el pasado: la ficha puede no aparecer. Tres escenarios concretos donde esto hoy golpea a los ecommerce chicos:
- La oferta del año pasado quedó en el markup. Muchas tiendas WooCommerce setearon un
priceValidUntildurante el Black Friday 2025 y nunca lo limpiaron. El precio regular ahora tiene unpriceValidUntilvencido atado, que descalifica la ficha aunque el producto esté en stock a precio lleno. - El tema de Shopify hardcodea
priceValidUntila un año en el futuro. El tema Dawn de Shopify emitíapriceValidUntila un año de la fecha de render en todas las fichas — un truco para evitar el aviso de "fecha pasada". Google tolera el placeholder lejano como técnicamente válido, pero la documentación de Merchant Center recomienda sacarlo si no hay una promo real. - Ambas
validThroughypriceValidUntilen el mismo nodo. Rich Results Test va a avisar, y la mejora de merchant listing no va a renderizar.
Cómo actualizar tu Product schema en cada plataforma
Shopify
Si usás el JSON-LD por defecto del tema, podés o bien dejar que el tema siga emitiendo el markup de Product e inyectar los dos campos nuevos vía un snippet, o pasarte a una app de Merchant Listing. El archivo relevante en Dawn es snippets/product-structured-data.liquid (o el equivalente en tu tema). Agregá el array category usando el metafield de Google product category del producto si lo tenés, y sacá el priceValidUntil hardcodeado a un año de ventaja en los productos que no están en oferta. Si hay un descuento de Shopify activo, emití priceValidUntil solo en la oferta de descuento y que coincida con la fecha de fin del descuento.
WooCommerce
Si dependés de Yoast WooCommerce SEO o Rank Math WooCommerce, los dos plugins ahora exponen un campo de Google product category en la pantalla de edición del producto que escribe a category como CategoryCode. Para tiendas viejas que todavía emiten schema desde un hook propio, enganchate a woocommerce_structured_data_product y agregá el array category. Auditá los valores de priceValidUntil en todos los productos activos — una query SQL única contra wp_postmeta para keys que mencionen "sale_price_dates_to" te muestra las ventanas vencidas.
Builds a medida
Si renderizás JSON-LD server-side, mantené dos variables en la plantilla: categoryCode para el ID de GPC (poblada desde una tabla de lookup producto→GPC) y categoryLabel para tu taxonomía interna. Para los períodos de oferta, emití las fechas con el offset de huso horario. Google parsea ISO 8601, y la ambigüedad hora local alrededor de la medianoche en las promos es una causa común de fichas que se caen de un día para el otro.
Una tabla rápida de qué va dónde
| Campo del schema | Dónde vive | Equivalente en Merchant Center |
|---|---|---|
Product.category (CategoryCode) | Nodo Product | google_product_category |
Product.category (Text) | Nodo Product | product_type |
priceValidUntil | Nodo Offer | Fecha fin de la promo |
validFrom / validThrough | Nodo PriceSpecification | Inicio / fin de la promo |
Guías relacionadas en Clariola
Para ubicar esto en el panorama más amplio de datos estructurados, nuestro pilar sobre datos estructurados para búsqueda con IA en 2026 cubre qué tipos de entidad importan más para AI Overviews. Si estás en WordPress, nuestra comparación Yoast vs. Rank Math explica qué campos escribe cada plugin. Para un ángulo ecommerce más amplio, nuestra guía para optimizar la ficha de producto cubre el lado UX que acompaña estas ganancias de schema. Si querés la versión en inglés de este artículo, mirá our guide to Product.category and sale duration.
Cuándo necesitás una auditoría
Si te aplica alguna de estas señales, pasá por una auditoría de Clariola antes de tocar otra plantilla de producto:
- Tu tienda Shopify o WooCommerce tenía resultados enriquecidos con precio de oferta en Search Console hace un año, y esas impresiones cayeron en los últimos 90 días.
- Rich Results Test te muestra avisos de "Either validThrough or priceValidUntil, but not both" en la mitad de tus productos.
- Migraste de tema en 2025 y nadie volvió a testear el Product schema después.
- Tus breadcrumbs de categoría aparecen en la SERP pero tus rich snippets de producto dejaron de mostrarse.
La auditoría de Clariola por USD 9,99 crawlea el HTML crudo que renderizan tus plantillas de producto (sin asumir JavaScript), lista todos los tipos de schema encontrados por página, marca los campos que Google retiró con la fecha, y compara lo que emitís contra los docs de merchant listing de este trimestre. Recibís un plan de acción en PDF priorizado por mail con los campos exactos para agregar, mantener o sacar por plantilla — pedí una auditoría por USD 9,99 para tu ecommerce.
Preguntas frecuentes
¿Necesito un ID de Google Product Category en cada producto?
No. Google trata Product.category como opcional. Pero cuando una ficha gana el carrusel de Shopping o de Popular Products, Google usa el GPC para decidir en qué carrusel ponerte. Si vendés en muchas taxonomías, agregar un CategoryCode es la forma más rápida de influir en ese match.
¿Puedo tener priceValidUntil en el Offer y validThrough en un PriceSpecification al mismo tiempo?
Sí, siempre que estén en nodos distintos. La regla "o uno o el otro" es por nodo, no por Product. El error común es agregar los dos al mismo Offer, lo que Rich Results Test marca como aviso.
¿Y si mis productos nunca entran en oferta?
Entonces podés saltarte priceValidUntil, validFrom y validThrough por completo. Solo emitilos cuando hay una promo real. Una fecha hardcodeada a futuro es tolerada por Google pero agrega ruido y complica el diagnóstico en Merchant Center.
¿Esto aplica a servicios y precios de SaaS?
Las mejoras de merchant listing aplican a bienes físicos y digitales trackeados como Product. Para precios de SaaS, la entidad recomendada es SoftwareApplication o Service, que tienen su propia estructura de oferta.
Seguí leyendo
- technical seo8 min
Datos estructurados en Webflow: campo nativo, CMS y errores comunes
Webflow ahora tiene un campo nativo Schema markup. Cómo usarlo en páginas estáticas y plantillas del CMS, qué campos puede vincular, cómo evitar bloques duplicados y por qué el schema de FAQ ya no rinde en Google.
- technical seo7 min
¿Tu pyme necesita un archivo llms.txt en 2026?
Ningún gran proveedor de IA lee oficialmente llms.txt, y un estudio de 300.000 dominios no encontró relación entre el archivo y las citas de IA. Aun así se añade en minutos y no tiene riesgo. Un marco práctico para decidir si tu pyme necesita un archivo llms.txt en 2026 y qué importa más.
- technical seo9 min
Datos estructurados para pymes: el mejor schema para la búsqueda con IA en 2026
Google dice que AI Overviews y AI Mode no requieren ningún schema especial. Los mejores datos estructurados para una pyme son Organization, LocalBusiness, Article y Product bien hechos y en el HTML. Qué usar según tu negocio y cómo agregarlo.
