Antes había tres formatos de datos estructurados (Microdata, RDFa y JSON-LD). En 2026, solo JSON-LD. Google lo prefiere, es el más fácil de mantener y no contamina tu HTML.

Sintaxis básica

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Cómo aparecer en ChatGPT",
  "author": {
    "@type": "Person",
    "name": "José Antonio Manzano"
  },
  "datePublished": "2026-04-14"
}
</script>

Se coloca idealmente en <head> o al final del <body>. Puedes tener varios bloques en la misma página (uno para Article, otro para FAQPage, otro para BreadcrumbList, etc.).

Ventajas frente a Microdata/RDFa

  • Separado del HTML visible: puedes cambiar el diseño sin tocar el schema
  • Más legible y fácil de generar desde cualquier backend
  • Google lo prefiere oficialmente
  • No afecta al render: el JSON-LD no se muestra al usuario

Validación

Siempre valida antes de publicar:

Errores comunes en JSON-LD

  • Olvidar "@context": "https://schema.org"
  • Tipo inventado que no existe en Schema.org
  • Comillas tipográficas en vez de rectas (rompe el JSON)
  • Campos obligatorios ausentes (ej. datePublished en Article)
  • Información contradictoria con el contenido visible (Google penaliza)
  • JSON-LD con entidades reales pero datos falsos (reseñas inventadas): penalización manual

En Next.js / React

Lo más limpio es inyectarlo con:

<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>

Así construyes el objeto en JavaScript/TypeScript y se serializa limpio. Es exactamente lo que hacemos en NoSoloAgencia.es.

¿Quieres que validemos tu schema actual? Auditoría gratis.