En beta, con plazas limitadasAbierto a todos en el primer trimestre de 2027

↑↓ moverse · Enter abrir · Esc cerrar

Datos estructurados

¿Qué es el grafo de producto de una ficha?

El grafo de producto es el conjunto de nodos de datos estructurados que describen un producto en su ficha, enlazados entre sí: el Product, su oferta (Offer), la tienda que lo vende (Organization), su marca (Brand) y sus reseñas (Review). Lo que convierte esos nodos en un grafo son las referencias: propiedades que anidan un nodo dentro de otro o lo citan por su @id.

Escrito por
Revisado por
Publicado 7 min de lectura
Takeaway:

Lo esencial

  • El grafo de producto no es un tipo de Schema.org ni una palabra clave de JSON-LD: es el nombre del conjunto de nodos que rodean a un producto y de los enlaces entre ellos.
  • Cada enlace es una propiedad: offers une el producto con su oferta, seller la oferta con la tienda, brand el producto con su marca, y review y aggregateRating con las opiniones.
  • Un nodo sin enlaces es una isla: Google pide usar @id cuando dos elementos se entienden mejor juntos.
  • No es el Knowledge Graph de Google ni el @graph de un bloque: es lo que tu ficha dice de un producto, y con quién lo relaciona.

Una ficha de producto no se describe con un solo nodo de datos estructurados. Está el producto, pero también la oferta con su precio, la tienda que lo vende, la marca que lo fabrica y las opiniones de quienes lo han comprado. Llamamos grafo de producto a ese conjunto y, sobre todo, a los enlaces que lo unen. No es un término de ninguna especificación ni un tipo de Schema.org: es la forma de mirar el marcado de una ficha como lo que es, una red de cosas relacionadas. Tampoco es el Knowledge Graph de Google, que es la base de datos del buscador sobre el mundo. Te importa porque un producto con precio pero sin vendedor, o con una marca escrita como texto suelto, dice menos de lo que crees.

Cómo funciona

La especificación JSON-LD del W3C describe sus datos como un grafo dirigido y etiquetado: los nodos son recursos, y las propiedades son los arcos que los unen.⁠[1]W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data Cada nodo puede llevar un identificador con @id, y otro nodo puede citarlo con una referencia, un objeto que solo lleva ese @id.⁠[1]W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data La especificación distingue dos maneras de relacionar nodos: anidar uno dentro de una propiedad de otro, que crea una relación de padre e hijo, o referenciarlo por su identificador.⁠[1]W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data

En una tienda, los nodos y sus enlaces salen del vocabulario de Schema.org. Estos son los que forman el grafo de un producto:

Desde Propiedad Hacia Qué dice el enlace
Product offers Offer Que existe una oferta para vender o proporcionar ese producto.⁠[2]Schema.org. Product
Offer seller Organization o Person Quién vende, alquila o presta el producto.⁠[3]Schema.org. Offer
Product brand Brand u Organization La marca o marcas asociadas al producto.⁠[2]Schema.org. Product
Product review Review Una reseña del producto.⁠[2]Schema.org. Product
Product aggregateRating AggregateRating La valoración global, calculada a partir de un conjunto de reseñas o valoraciones.⁠[2]Schema.org. Product
Offer hasMerchantReturnPolicy MerchantReturnPolicy La política de devoluciones que se aplica.⁠[3]Schema.org. Offer
Offer shippingDetails OfferShippingDetails Las condiciones y opciones de envío de esa oferta.⁠[3]Schema.org. Offer
Product isVariantOf ProductGroup El producto base del que esta variante deriva.⁠[2]Schema.org. Product

Que dos nodos estén en la misma página no los une. Google explica que entiende varios elementos en una página tanto si van anidados, con un elemento principal y los demás agrupados bajo él, como si van por separado; y para los que se entienden mejor juntos pide usar @id en los dos y así indicar la relación.⁠[4]Google Search Central. General structured data guidelines Por eso, en un grafo bien hecho, lo que solo tiene sentido dentro del producto va anidado (su oferta, sus reseñas), y lo que se repite en todo el sitio, como la tienda, se describe una vez con un @id estable y se cita desde donde haga falta.

Lo que Google hace con él

Google tiene dos funciones para productos: los fragmentos de producto, para páginas donde no se puede comprar directamente, y las fichas de comerciante, para páginas donde el cliente puede comprarte el producto. Si una página lleva las propiedades obligatorias de las fichas de comerciante, también puede optar a los fragmentos de producto, y cuantas más propiedades añades, a más mejoras puede optar.⁠[5]Google Search Central. Introduction to Product structured data Google recomienda además que la política de devoluciones de la tienda y su programa de fidelización vayan en un nodo Organization anidado.⁠[5]Google Search Central. Introduction to Product structured data Es decir: parte del grafo no cuelga del producto, sino de la tienda.

En una tienda

Un ejemplo ficticio: la ficha de una lámpara de una tienda inventada, con el grafo completo y recortado a lo esencial.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.example.com/#organization",
      "name": "Luz de Arnes",
      "url": "https://www.example.com/"
    },
    {
      "@type": "Product",
      "@id": "https://www.example.com/lampara-sobremesa-oria#product",
      "name": "Lámpara de sobremesa Oria",
      "brand": { "@type": "Brand", "name": "Oria Studio" },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.6",
        "reviewCount": "38"
      },
      "offers": {
        "@type": "Offer",
        "price": "89.00",
        "priceCurrency": "EUR",
        "availability": "https://schema.org/InStock",
        "seller": { "@id": "https://www.example.com/#organization" }
      }
    }
  ]
}

Dibujado, el grafo queda así:

Product (#product)
  +-- brand ----------> Brand "Oria Studio"
  +-- aggregateRating -> AggregateRating 4,6 (38 reseñas)
  +-- offers ---------> Offer 89,00 EUR
                          +-- seller --> Organization (#organization)

Se lee de arriba abajo. El producto tiene su @id, así que otra página o la misma página pueden citarlo. La marca, la valoración y la oferta van anidadas porque solo tienen sentido dentro de este producto. La tienda, en cambio, está descrita una vez, fuera del producto, y la oferta la cita por su @id: ese enlace es el que dice quién vende. Quita el seller y el marcado ya no dice quién vende; cambia una letra del @id y la referencia apunta a un nodo que no existe. Con el identificador @id bien elegido, el mismo nodo de la tienda sirve para todas las fichas.

Una ficha publicada con Clione lleva un solo @graph con Organization, WebSite, BreadcrumbList y Product, con una oferta por producto, y su nodo Product tiene un @id estable que convive con el del tema en lugar de duplicarlo.

Warning:

Lo que se suele confundir

Creer que, como el producto está en tu web, el marcado ya dice que lo vendes tú. No lo dice: la especificación JSON-LD trata cada relación como una propiedad que hay que escribir,⁠[1]W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data y la que dice quién vende una oferta es seller.⁠[3]Schema.org. Offer Un Product y un Organization en la misma página, sin esa referencia, son dos nodos sin relación, y Google avisa de que debes enlazar con @id lo que se entiende mejor junto.⁠[4]Google Search Central. General structured data guidelines

Cómo comprobarlo

  1. Abre el código fuente de una ficha y localiza el nodo Product. Apunta su @id; si no tiene, el producto es anónimo y nadie puede citarlo.⁠[1]W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data
  2. Sigue offers. Tiene que haber una Offer, y su seller tiene que apuntar a un @id que exista en la página, letra por letra.
  3. Mira brand. La marca tendría que ser un nodo Brand u Organization con su nombre,⁠[2]Schema.org. Product y coincidir con la marca que se ve en la ficha.
  4. Comprueba que las reseñas y la valoración del marcado se ven en la página. Google pide no marcar lo que el visitante no ve.⁠[4]Google Search Central. General structured data guidelines
  5. Dibújalo en un papel. Un recuadro por nodo y una flecha por propiedad. Todo nodo al que no llega ni del que sale ninguna flecha es una isla.

Concepto cercano: @graph

El @graph es una palabra clave de JSON-LD: la lista que reúne varios nodos en un mismo bloque, con un único contexto. El grafo de producto es otra cosa: la red de enlaces que rodea a un producto, esté escrita como esté. Se puede escribir un grafo de producto completo sin @graph, con todos los nodos anidados dentro del Product, y se puede tener un @graph con cuatro nodos que no forman ningún grafo, porque la especificación permite que un @graph de nivel superior contenga nodos que no estén conectados.⁠[1]W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data El @graph dice qué nodos hay; el grafo de producto, cómo se relacionan.

Para seguir, la guía para auditar los datos estructurados de una ficha aplica estas comprobaciones paso a paso, y la ruta de lectura de datos estructurados ordena el resto de tipos.

Sinónimos

English
product graph, product schema graph
Español
grafo del producto, grafo de datos estructurados del producto

Fuentes

  1. [1] W3C. JSON-LD 1.1, A JSON-based Serialization for Linked Data. Consultado el . ↑ ↑ ↑ ↑ ↑ ↑
  2. [2] Schema.org. Product. Consultado el . ↑ ↑ ↑ ↑ ↑ ↑
  3. [3] Schema.org. Offer. Consultado el . ↑ ↑ ↑ ↑
  4. [4] Google Search Central. General structured data guidelines. Consultado el . ↑ ↑ ↑
  5. [5] Google Search Central. Introduction to Product structured data. Consultado el . ↑ ↑

Historial de cambios

  • Primera versión.

Esta definición se publica bajo licencia CC BY 4.0. Puedes reutilizar esta definición citando a Clione con un enlace a esta página.

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.