Es habitual mezclar dos conceptos que resuelven problemas distintos. Schema.org es el vocabulario: una colección pública de tipos (Product, Article, Organization, Recipe) y propiedades (name, price, author, datePublished) que Google, Bing, Yahoo y Yandex fundaron en 2011 y mantienen de forma conjunta desde entonces. El proyecto nació precisamente para resolver un problema previo: antes de 2011 cada motor de búsqueda promovía su propio sistema de marcado, con microformatos y RDFa dispersos, y quien publicaba una web tenía que duplicar el mismo dato en varios formatos distintos para cubrir a todos los buscadores. Ese vocabulario define qué se puede describir en una página y bajo qué etiquetas, pero no dice nada sobre cómo escribir ese código.
JSON-LD, Microdata y RDFa son los tres formatos con los que ese vocabulario se traduce en HTML.
JSON-LD (JavaScript Object Notation for Linked Data) es hoy el formato que Google recomienda para la mayoría de casos: se escribe en un bloque
<script type="application/ld+json"> independiente, sin tocar el HTML visible de la página. Microdata, en cambio, obliga a añadir atributos (itemscope, itemprop) directamente sobre las etiquetas existentes, lo que complica el mantenimiento cada vez que cambia el diseño.
La consecuencia práctica es esta: dos páginas pueden usar exactamente el mismo vocabulario de Schema.org, el mismo tipo Product y las mismas propiedades, y diferir solo en el formato elegido para incluirlo. Google procesa los tres formatos, pero su documentación de Search Central prioriza JSON-LD porque es más fácil de generar de forma dinámica desde un
CMS y de validar sin riesgo de romper el maquetado visible.
Un ejemplo ayuda a ver la diferencia. El tipo Organization con las propiedades name, url y logo es el mismo vocabulario en cualquier página que lo use. Su implementación en JSON-LD se ve así:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Nombre de la empresa",
"url": "https://ejemplo.com",
"logo": "https://ejemplo.com/logo.png"
}
</script>
La misma información en Microdata exige repartir esos atributos por varias etiquetas HTML visibles, algo que en plantillas dinámicas genera más errores de sintaxis que un bloque JSON-LD centralizado y aislado del resto del código. Para el detalle técnico de cada formato, ver
JSON-LD y
Datos Estructurados.