Cómo auditar los datos estructurados de una ficha de producto
Auditar los datos estructurados de una ficha es comparar tres cosas: lo que ve el comprador en la página publicada, lo que dice el JSON-LD de esa misma página y lo que Google entiende de él. Las herramientas solo cubren una parte. La Prueba de resultados enriquecidos dice si el marcado cumple los requisitos de Google, el Schema Markup Validator dice si cumple Schema.org y Search Console cuenta los errores de todo el sitio. Ninguna te dice si el precio del marcado es el que ve tu cliente: eso se comprueba a mano, propiedad por propiedad. Aquí tienes seis pasos para hacerlo en una ficha.
Lo esencial
- Se audita la ficha publicada, no el panel de administración: el marcado que cuenta es el que sale en el HTML de la página.
- Google pide que los datos estructurados sean un reflejo fiel de la página y que no marques lo que el comprador no ve, como una valoración que no aparece en la ficha.
- Para las fichas de comerciante, el marcado Product necesita nombre, imagen y una oferta con un precio mayor que cero y su moneda en código ISO 4217. La disponibilidad lleva un solo valor.
- La Prueba de resultados enriquecidos valida contra los requisitos de Google y el Schema Markup Validator contra Schema.org. Ninguna compara el marcado con lo que muestra la página.
- En Search Console, los informes de fichas de comerciante y de fragmentos de producto cuentan elementos, no páginas, y enseñan una muestra. Una URL concreta se mira con la inspección de URLs.
Una herramienta que dice «válido» no ha mirado tu tienda: ha mirado tu código. Auditar los datos estructurados de una ficha de producto es otra cosa, y la parte que más importa no la hace ninguna herramienta: comprobar que el JSON-LD dice lo mismo que la página que ve el comprador, porque de eso depende que la ficha pueda optar a los resultados enriquecidos de Google. Esta guía va por orden: qué regla aplica cada comprobación, cómo se lee el marcado de una ficha publicada, qué comparar propiedad por propiedad, qué validan la Prueba de resultados enriquecidos y el validador oficial del schema markup, el Schema Markup Validator, y qué te cuenta Search Console de todo el sitio.
La regla con la que se audita
Antes de abrir nada conviene saber contra qué se compara. Google lo resume en sus directrices generales: tus datos estructurados tienen que ser un reflejo fiel del contenido de la página, y no se marca lo que el lector no ve. Su ejemplo es de otro sector, pero se aplica tal cual a una tienda: si el JSON-LD describe a un artista, el cuerpo de la página tiene que describir a ese mismo artista. Tampoco se marca contenido engañoso, como reseñas falsas, y hay que incluir todas las propiedades obligatorias del tipo de resultado, porque un elemento al que le falta una no puede optar a un resultado enriquecido.[1]Google Search Central. General structured data guidelines
Para una ficha, el tipo es Product y la experiencia que importa son las fichas de comerciante (merchant listings): el precio, la disponibilidad, el envío y la devolución que Google puede enseñar en la Búsqueda, en el panel de Shopping o en Google Imágenes.[2]Google Search Central. Merchant listing (Product, Offer) structured data Google separa dos casos. Los fragmentos de producto (product snippets) son para páginas donde no se compra directamente, como una reseña; las fichas de comerciante, para las páginas donde el cliente te compra a ti. Si tu marcado tiene lo que piden las fichas de comerciante, la página puede optar también a los fragmentos de producto.[3]Google Search Central. Intro to Product structured data on Google
Y una advertencia que ahorra discusiones: un marcado correcto no garantiza el resultado enriquecido. Google no promete enseñar los datos estructurados aunque la Prueba de resultados enriquecidos los dé por buenos, y entre las razones que da están un marcado que no representa el contenido principal, contenido oculto al usuario o un error que la prueba no puede detectar.[1]Google Search Central. General structured data guidelines
Paso 1: abre la ficha publicada, no el panel de administración
El panel de tu plataforma enseña lo que tienes guardado. Lo que leen Google y cualquier agente es lo que publica la página, y entre una cosa y otra están el tema, las apps y la caché. Elige una ficha que se pueda comprar, ábrela en una ventana privada y apunta, con la fecha y la hora, lo que ve un comprador:
- el nombre del producto, tal como sale en el título de la página;
- el precio, con su moneda, y si hay un precio tachado;
- el mensaje de existencias: disponible, agotado, en reserva;
- la valoración media y el número de reseñas, si se ven;
- el código de barras o la referencia, si la ficha los enseña.
Esa lista es tu referencia para el paso 3. Si la ficha tiene variantes, apunta cuál está seleccionada al cargar: Google solo admite resultados de producto en páginas centradas en un único producto o en varias variantes del mismo producto.[2]Google Search Central. Merchant listing (Product, Offer) structured data Cómo se marcan las variantes está en la entrada de variantes de producto.
Paso 2: encuentra el marcado en el HTML de la página
Abre el código fuente de la ficha («Ver código fuente de la página», o view-source: delante de la URL) y busca application/ld+json. Anota cuántos bloques hay, qué @type declara cada uno y si alguno usa @graph o @id para enlazar nodos. Google admite tres formatos, JSON-LD (el que recomienda), microdatos y RDFa,[1]Google Search Central. General structured data guidelines así que busca también itemprop e itemscope: un tema puede llevar el marcado en microdatos, repartido por el HTML.
Dos comprobaciones de forma antes de leer el contenido:
- ¿Está en el HTML del servidor o lo añade JavaScript? Google procesa el marcado que encuentra en el DOM al renderizar la página,[4]Google Search Central. Generate structured data with JavaScript pero recomienda poner el marcado Product en el HTML inicial y avisa de que el generado con JavaScript puede hacer los rastreos de Shopping menos frecuentes y menos fiables, un problema con datos que cambian rápido, como el precio y la disponibilidad.[2]Google Search Central. Merchant listing (Product, Offer) structured data La diferencia entre el código fuente y la página renderizada, y cómo verla, está en la guía de lo que ve un bot en tu tienda, que explica también qué es un rastreador de IA.
- ¿Hay comentarios dentro del JSON-LD? La Prueba de resultados enriquecidos los ignora, pero el estándar JSON-LD no los admite y pueden dar errores en el uso real. Google pide quitarlos antes de publicar.[5]Ayuda de Search Console. Rich Results Test
Si encuentras más de un nodo Product para la misma ficha, por ejemplo uno del tema y otro de una app, anótalo y audita cada uno en el paso siguiente: cada nodo es una declaración sobre el mismo producto, y todas tienen que coincidir con la página.
Paso 3: compara cada propiedad con lo que ve el comprador
Este es el paso que no hace ninguna herramienta. Pon tu lista del paso 1 al lado del JSON-LD y recorre las propiedades que piden las fichas de comerciante, con los nombres del vocabulario de Schema.org. Lo obligatorio es corto: el Product necesita nombre (name), imagen (image) y una oferta (offers), y esa oferta, del tipo Offer, necesita precio y moneda.[2]Google Search Central. Merchant listing (Product, Offer) structured data
| Propiedad | Lo que pide Google o Schema.org | Lo que compruebas en la ficha |
|---|---|---|
name |
Obligatoria: el nombre del producto.[2]Google Search Central. Merchant listing (Product, Offer) structured data | Que sea el producto de la página, no el de otra variante. |
image |
Obligatoria. La imagen tiene que representar el producto marcado y su URL tiene que poder rastrearse e indexarse.[2]Google Search Central. Merchant listing (Product, Offer) structured data | Que la URL abra la foto de este producto. |
offers |
Obligatoria. Las fichas de comerciante exigen una Offer, porque el comerciante tiene que ser quien vende.[2]Google Search Central. Merchant listing (Product, Offer) structured data | Que haya una oferta y sea la tuya. |
price |
Mayor que cero para las fichas de comerciante; los fragmentos de producto admiten un precio de cero.[2]Google Search Central. Merchant listing (Product, Offer) structured data[6]Google Search Central. Product snippet (Product, Review, Offer) structured data Schema.org pide el punto como separador decimal y la moneda aparte, no un símbolo dentro del valor.[7]Schema.org. Offer | Que sea el precio que paga el comprador hoy. |
priceCurrency |
Código de tres letras ISO 4217. Si vendes en varias monedas, Google pide una URL distinta por moneda.[2]Google Search Central. Merchant listing (Product, Offer) structured data | Que sea la moneda en la que se cobra en esa URL. |
availability |
Recomendada. Un solo valor de la lista de Schema.org, como InStock, OutOfStock, PreOrder o BackOrder; Google admite el nombre corto sin la URL.[2]Google Search Central. Merchant listing (Product, Offer) structured data[8]Schema.org. ItemAvailability |
Que diga lo mismo que el mensaje de existencias. |
priceValidUntil |
Recomendada. Si la fecha ya ha pasado, la ficha puede no mostrarse.[2]Google Search Central. Merchant listing (Product, Offer) structured data | Que no sea la fecha de una rebaja que ya acabó. |
gtin, gtin8, gtin12, gtin13, gtin14 |
Recomendada. Google aconseja la más específica y solo admite la forma numérica, no la URL.[2]Google Search Central. Merchant listing (Product, Offer) structured data Schema.org pide 8, 12, 13 o 14 dígitos con un dígito de control válido.[9]Schema.org. gtin | Que sea el código del envase o de tu catálogo, sin espacios ni letras. |
aggregateRating |
Recomendada. Lleva ratingValue y ratingCount o reviewCount, y la valoración tiene que verse en la página.[10]Google Search Central. Review snippet (Review, AggregateRating) structured data |
Que la media y el número de reseñas coincidan con lo que se ve. |
brand.name, sku, mpn |
Recomendadas. Una sola marca; el sku sin espacios.[2]Google Search Central. Merchant listing (Product, Offer) structured data |
Que coincidan con la ficha y con tu catálogo. |
El GTIN merece una mirada aparte: compáralo dígito a dígito con el de tu catálogo, donde quizá lo tengas guardado como código EAN. Un dígito de más o de menos no se nota en la página, pero deja el código sin un dígito de control válido. Lo mismo vale para el SKU y el MPN. Cómo encajan el precio y la disponibilidad entre la página, el marcado y los feeds está en precio y disponibilidad, y la valoración media, en AggregateRating.
Un ejemplo ficticio para entrenar el ojo. La ficha enseña «34,90 €», «Agotado» y ninguna estrella; el marcado dice otra cosa en tres sitios:
{ "@context": "https://schema.org", "@type": "Product", "name": "Zapatilla de ejemplo", "image": "https://tu-tienda.example/img/zapatilla.jpg", "gtin13": "8400000000000", "offers": { "@type": "Offer", "price": 29.9, "priceCurrency": "EUR", "availability": "https://schema.org/InStock" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.6, "reviewCount": 12 } }
El precio no es el que se cobra, la disponibilidad dice que hay existencias cuando la página dice que no, y la valoración describe algo que el comprador no ve. Ninguna de las dos herramientas de los pasos siguientes marcaría estos tres desajustes como error: el código es correcto y tiene todo lo obligatorio. Los desajustes solo aparecen al poner el marcado al lado de la página.
Paso 4: pasa la URL por la Prueba de resultados enriquecidos
La Prueba de resultados enriquecidos responde a qué resultados enriquecidos de Google puede generar tu página.[11]Google Search Central. Schema markup testing tools Úsala con la URL publicada, no pegando el código: Google lo recomienda porque el modo de código tiene límites con JavaScript.[4]Google Search Central. Generate structured data with JavaScript Así lees lo que ve:
- El rastreo. La prueba entra como Google-InspectionTool, sin tus credenciales, y por defecto como un móvil. Si un
robots.txto unnoindeximpiden que Google rastree la página, no se puede probar. Si no carga algunos recursos, avisa, y el resultado puede cambiar de una ejecución a otra.[5]Ayuda de Search Console. Rich Results Test - Lo detectado. Lista los tipos de resultado enriquecido que encuentra, con un estado por URL: elementos válidos, válidos con advertencias, no válidos, o datos estructurados con errores de sintaxis.[5]Ayuda de Search Console. Rich Results Test En una ficha esperas ver las fichas de comerciante y los fragmentos de producto.
- Los errores y las advertencias. Al abrir uno, el explorador te lleva a la línea del código, y ese código es el renderizado, no el HTML original.[5]Ayuda de Search Console. Rich Results Test Google pide corregir los errores críticos; los no críticos conviene arreglarlos porque mejoran la calidad del marcado, pero no son necesarios para optar al resultado.[2]Google Search Central. Merchant listing (Product, Offer) structured data
Lo que esta prueba no hace también está escrito: los problemas de contenido que no son de sintaxis, como un marcado que no coincide con la página, no los puede identificar.[2]Google Search Central. Merchant listing (Product, Offer) structured data Por eso va después del paso 3, no en su lugar.
Paso 5: pasa la misma URL por el Schema Markup Validator
El Schema Markup Validator, que en español se presenta como Validador de marcado Schema.org,[12]Schema.org. Validador de marcado Schema.org (Schema Markup Validator) valida cualquier tipo de marcado de Schema.org sin las comprobaciones propias de Google.[11]Google Search Central. Schema markup testing tools Te sirve para lo que la prueba de Google no mira: tipos que Google no usa para resultados enriquecidos y propiedades que no aparecen en su documentación.
Pasar la misma ficha por las dos herramientas enseña dónde no coinciden, porque cada una valida contra una regla distinta. Dos ejemplos de las fuentes:
- El GTIN como URL. Schema.org admite un GTIN escrito como URL de GS1 Digital Link;[9]Schema.org. gtin Google solo admite la forma numérica.[2]Google Search Central. Merchant listing (Product, Offer) structured data El validador lo da por bueno y Google no lo usa.
- El precio cero. Un
"price": 0sirve para los fragmentos de producto,[6]Google Search Central. Product snippet (Product, Review, Offer) structured data pero las fichas de comerciante piden un precio mayor que cero.[2]Google Search Central. Merchant listing (Product, Offer) structured data
Ninguna de las dos herramientas comprueba que lo que validas es lo que se ha publicado en todas tus fichas ni que coincide con lo que ve el comprador. Esa distinción tiene su propia página: validar el marcado no es lo mismo que verificar la publicación.
Paso 6: mira los informes de producto en Search Console
Las dos pruebas miran una URL; Search Console mira el sitio. Los informes de producto están en el apartado de Shopping, no en el de mejoras donde están los demás informes de resultados enriquecidos.[13]Ayuda de Search Console. Rich result report overview Son dos:[2]Google Search Central. Merchant listing (Product, Offer) structured data[14]Ayuda de Search Console. Shopping reports and tools
- Fichas de comerciante, para las páginas donde el comprador puede comprar. Incluye las comprobaciones de los fragmentos de producto que llevan una Offer.
- Fragmentos de producto, para las demás páginas de producto, como reseñas o comparadores. En una tienda solo hace falta mirarlo para las páginas que no son fichas de comerciante.
Cada informe enseña un gráfico de elementos válidos y no válidos y dos tablas: los problemas críticos, que impiden el resultado enriquecido, y los no críticos, que afectan a cómo se ve. Los números cuentan elementos, no páginas, y el informe es una muestra, no la lista completa: para una URL que no aparece, Google remite a la inspección de URLs.[13]Ayuda de Search Console. Rich result report overview Si no ves el informe, Google no ha encontrado marcado válido de ese tipo en tu sitio.[14]Ayuda de Search Console. Shopping reports and tools
Cómo leer los cambios, según Google: tras una plantilla nueva, un aumento de elementos no válidos puede indicar que la plantilla no funciona; una bajada de elementos válidos sin aumento de los no válidos puede indicar que la página ha dejado de llevar el marcado. Cuando corrijas, inspecciona la URL en directo para ver si el problema sigue y pide la validación desde el informe.[2]Google Search Central. Merchant listing (Product, Offer) structured data
La inspección de URLs cierra la auditoría de una ficha concreta. Su sección de mejoras enseña los resultados enriquecidos que Google encontró la última vez que indexó la página, con sus errores y advertencias; «Ver página rastreada» enseña el HTML que devolvió tu servidor, y la prueba en directo examina la versión actual, con una captura de lo que pintó.[15]Ayuda de Search Console. URL Inspection tool
Los desajustes que buscan las reglas
Si solo tienes diez minutos por ficha, estos son los desajustes que las propias reglas de Google y de Schema.org señalan, y dónde se ven:
- El precio del marcado no es el de la página. Va contra la regla del reflejo fiel.[1]Google Search Central. General structured data guidelines Si tienes Google Merchant Center, sus actualizaciones automáticas leen el precio, la disponibilidad y el estado del producto en la página para corregir el feed: su ejemplo es un producto a 4 dólares en el feed y a 3 en la página, que pasa a 3. Pero pueden no funcionar con productos cuyo precio o disponibilidad cambian a menudo, por ejemplo más de una vez al día, y si detectan un desajuste el producto puede quedar rechazado en lugar de actualizado.[16]Ayuda de Google Merchant Center. Allow Merchant Center to update product information automatically
- La disponibilidad no es la del mensaje de existencias, o lleva más de un valor.[2]Google Search Central. Merchant listing (Product, Offer) structured data
- Una valoración que no se ve en la página. Si usas
aggregateRating, el comprador tiene que poder ver esa valoración en la ficha.[10]Google Search Central. Review snippet (Review, AggregateRating) structured data Cómo las trata Google está en reseñas de producto. - Un
priceValidUntilcaducado, que puede dejar la ficha sin mostrarse.[2]Google Search Central. Merchant listing (Product, Offer) structured data - Un GTIN en forma de URL o con un dígito de control que no cuadra.[2]Google Search Central. Merchant listing (Product, Offer) structured data[9]Schema.org. gtin
- Envíos y devoluciones declarados en varios sitios. Google aplica un orden, de más fuerte a más débil: el feed de Merchant Center, los ajustes de la Content API for Shopping, los ajustes de Merchant Center o Search Console, el marcado de la oferta en la ficha y, por último, el de la organización.[2]Google Search Central. Merchant listing (Product, Offer) structured data Si la ficha y la organización dicen cosas distintas, gana la ficha. El detalle está en OfferShippingDetails y MerchantReturnPolicy.
Lo que hemos probado
- La ficha. Una ficha real, con el permiso escrito de la tienda (la página suma entonces
real-example), o una ficha montada para la prueba y marcada «ejemplo ficticio». Pública, que se pueda comprar o simular la compra, con un precio mayor que cero, un mensaje de existencias, valoraciones visibles y un GTIN. Se anotan la plataforma y su versión, el tema y su versión, las apps que tocan el marcado y la fecha. - Los seis pasos, en orden. La lista del paso 1 con la hora; el número de bloques JSON-LD y de nodos Product del paso 2, y si están en el HTML del servidor; la tabla del paso 3 rellena, propiedad por propiedad, con lo que dice el marcado y lo que dice la página; el resultado de la Prueba de resultados enriquecidos y del Schema Markup Validator sobre la misma URL el mismo día; y los dos informes de Search Console con su fecha.
- Las capturas, fechadas. Las tres que esta guía deja preparadas: la ficha con los datos señalados, la Prueba de resultados enriquecidos y el informe de fichas de comerciante. Con la fecha visible o en el pie, y sin datos de clientes.
- Lo que se publica. La tabla de abajo, cualquier desajuste encontrado con su corrección, y los límites: una ficha, un día, y lo que Google muestre ese día.
Probado en: plataforma y versión, tema y versión, fecha.
| Comprobación | Lo que dice la página | Lo que dice el marcado | ¿Coinciden? | Herramienta que lo detecta |
|---|---|---|---|---|
| Nombre | ||||
| Precio y moneda | ||||
| Disponibilidad | ||||
| GTIN | ||||
| Valoración media y número de reseñas | ||||
| Prueba de resultados enriquecidos | ||||
| Schema Markup Validator | ||||
| Search Console: fichas de comerciante |
Fuentes
- [1] Google Search Central. General structured data guidelines. Consultado el . ↑ ↑ ↑ ↑
- [2] Google Search Central. Merchant listing (Product, Offer) structured data. Consultado el . ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
- [3] Google Search Central. Intro to Product structured data on Google. Consultado el . ↑
- [4] Google Search Central. Generate structured data with JavaScript. Consultado el . ↑ ↑
- [5] Ayuda de Search Console. Rich Results Test. Consultado el . ↑ ↑ ↑ ↑
- [6] Google Search Central. Product snippet (Product, Review, Offer) structured data. Consultado el . ↑ ↑
- [7] Schema.org. Offer. Consultado el . ↑
- [8] Schema.org. ItemAvailability. Consultado el . ↑
- [9] Schema.org. gtin. Consultado el . ↑ ↑ ↑
- [10] Google Search Central. Review snippet (Review, AggregateRating) structured data. Consultado el . ↑ ↑
- [11] Google Search Central. Schema markup testing tools. Consultado el . ↑ ↑
- [12] Schema.org. Validador de marcado Schema.org (Schema Markup Validator). Consultado el . ↑
- [13] Ayuda de Search Console. Rich result report overview. Consultado el . ↑ ↑
- [14] Ayuda de Search Console. Shopping reports and tools. Consultado el . ↑ ↑
- [15] Ayuda de Search Console. URL Inspection tool. Consultado el . ↑
- [16] Ayuda de Google Merchant Center. Allow Merchant Center to update product information automatically. Consultado el . ↑
Historial de cambios
- Primera versión.
Otras preguntas
¿Qué diferencia hay entre la Prueba de resultados enriquecidos y el Schema Markup Validator?
¿Por qué Google no enseña mis estrellas o mi precio si la prueba sale válida?
¿El precio del marcado tiene que coincidir con el que se ve en la página?
¿Dónde están los informes de producto en Search Console?
Términos relacionados
Datos estructurados
Qué son los datos estructurados, qué piezas los forman, qué consigue una tienda con ellos según Google y cómo comprobar que dicen lo mismo que la ficha.
Ficha de producto
Qué es una ficha de producto, qué datos lleva, cómo la leen Google y los asistentes de IA, y cómo comprobar que el texto y el marcado dicen lo mismo.
Validador de schema
Qué es un validador de schema, qué comprueba el Schema Markup Validator, en qué se diferencia de la prueba de Google y qué errores no ve ninguno.
Prueba de resultados enriquecidos
Qué es la Prueba de resultados enriquecidos de Google, qué comprueba en una ficha de producto, qué no puede ver y cómo leer sus errores y advertencias.
Fichas de comerciante
Qué son las fichas de comerciante (merchant listings) de Google, dónde aparecen, qué marcado Product y Offer piden y cómo comprobar si tu ficha opta.
Product
Qué es el tipo Product de Schema.org, qué propiedades lleva, qué pide Google para fragmentos de producto y fichas de comerciante, y cómo contrastarlo.
Sigue leyendo
Comparativa
Validar el marcado vs verificar la publicación
Validar el marcado vs verificar la publicación: qué comprueba cada una, con qué herramienta y por qué un JSON-LD válido puede no estar en tu ficha.
Leer el artículo →
El Corpus
Los 2.000 principales ecommerce de España, en un informe.
Cómo leen los asistentes de IA los 2.000 principales ecommerce de España, en un informe de 100 páginas y el dataset que lo sostiene.
Pídelo gratis →
Estudio
Del dato guardado al dato publicado en Shopify y BigCommerce
Medimos si lo que guardas en el admin de Shopify o BigCommerce llega al HTML publicado, capa por capa: método, resultados y lo que no falló.
Leer el artículo →Haz que los bots entiendan tu catálogo
Clione completa cada ficha de producto con lo que los bots leen mejor: el grafo JSON-LD con sus datos estructurados, la meta description y las preguntas frecuentes. Tú revisas y pulsas Push; después comprobamos tu tienda en vivo para que todo siga publicado.