Guía técnica

Schema.org para LLMs:
la guía técnica con código real.

Si ChatGPT o Perplexity no te citan, probablemente tu schema está incompleto o mal estructurado. Esta guía cubre los 8 schemas que importan en 2026, con código JSON-LD listo para copiar, notas técnicas y los 5 errores que más penalizan. Pensada para que tu marca aparezca con confianza cuando un LLM la mencione.

Resumen

  • Schema.org en 2026 dejó de ser \"plus SEO\" — es piedra angular de GEO. Los LLMs leen JSON-LD para identificar entidades con confianza.
  • 8 schemas mínimos: Organization, ProfessionalService/LocalBusiness, SoftwareApplication, Article, FAQPage, BreadcrumbList, MedicalBusiness (si aplica), Person.
  • Usa JSON-LD, no microdata ni RDFa. Sintaxis recomendada por Google y la que mejor parsean los LLMs.
  • Referencia entidades con @id en lugar de repetirlas en cada página. Centraliza Organization, referencia desde Article, MedicalBusiness, etc.
  • Errores que penalizan: marcar lo que NO está visible, AggregateRating inventado, schemas en idioma equivocado, datos inconsistentes entre páginas.
  • Valida siempre con: validator.schema.org + Google Rich Results Test + test manual preguntando a ChatGPT \"qué entiendes que es esta entidad\".

Por qué schema.org importa más con los LLMs que con Google

Hasta 2023, schema.org era un \"plus técnico\" para SEO: Google lo usaba para rich results (snippets enriquecidos), pero el contenido en sí lo entendía con NLP propio. Una página sin schema pero con buen contenido podía rankear.

En 2024-2026 ha cambiado la regla. Los asistentes IA (ChatGPT, Perplexity, Claude con tools, AI Overviews, Copilot) cuando procesan una página web priorizan datos estructurados sobre NLP libre — porque los datos estructurados eliminan ambigüedad. Una página marcada como MedicalBusiness con medicalSpecialty: \"Dentistry\" deja CERO espacio a interpretación. Y los LLMs prefieren CERO espacio a interpretación cuando van a citar tu marca con confianza.

Resultado práctico: dos sitios con contenido equivalente, uno con schema completo y otro sin él, el primero es citado rutinariamente por LLMs y el segundo no aparece nunca. La diferencia no es \"un poco mejor SEO\" — es invisibilidad versus citación.

Si vienes desde la base de SEO + GEO, las guías qué es GEO y cómo aparecer en ChatGPT como empresa dan el contexto general. Esta es la versión técnica.

Schema #1 de 8

Organization

Cuándo usar

En todas las páginas del sitio. Define quién es tu empresa.

Por qué importa

Es el ancla. Cualquier otro schema referencia esta entidad. Sin Organization bien marcada, los LLMs no saben con confianza qué empresa hay detrás del dominio.

Notas técnicas

  • El campo `@id` te permite referenciar esta entidad desde otros schemas con `{"@id": "..."}` en lugar de repetir todo.
  • `sameAs` es CRÍTICO para LLMs. Es como les dices "esta entidad es la misma que ese perfil de LinkedIn, Crunchbase, etc.". Los LLMs cruzan datos entre fuentes — sin sameAs pierden ese cruce.
  • `taxID` y `vatID` ayudan a Google a desambiguar entidades con nombre similar y suben confianza en sectores regulados.
JSON-LD @type: Organization
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://tudominio.com/#organization",
  "name": "Tu Empresa",
  "legalName": "Tu Empresa, S.L.",
  "taxID": "B12345678",
  "vatID": "ESB12345678",
  "url": "https://tudominio.com",
  "logo": "https://tudominio.com/logo.png",
  "email": "hola@tudominio.com",
  "telephone": "+34900000000",
  "foundingDate": "2020-01-15",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "C/ Ejemplo, 25",
    "addressLocality": "Vigo",
    "addressRegion": "Galicia",
    "postalCode": "36210",
    "addressCountry": "ES"
  },
  "areaServed": [
    { "@type": "Country", "name": "España" }
  ],
  "knowsLanguage": ["es-ES", "gl-ES", "en"],
  "sameAs": [
    "https://linkedin.com/company/tuempresa",
    "https://twitter.com/tuempresa",
    "https://www.crunchbase.com/organization/tuempresa"
  ]
}

Schema #2 de 8

ProfessionalService / LocalBusiness

Cuándo usar

Si vendes servicio profesional o tienes presencia física.

Por qué importa

Diferencia tu schema Organization ("somos una empresa") del servicio concreto que vendes. Para SEO local pesa más que Organization sola.

Notas técnicas

  • Cambia `ProfessionalService` por `LocalBusiness` para negocios físicos genéricos, `MedicalBusiness` para sanitarios, `LegalService` para abogados, `RealEstateAgent` para inmobiliarias, etc. Schema.org tiene 100+ subtipos — usa el más específico.
  • `priceRange` acepta `€`, `€€`, `€€€` o un texto literal tipo "Desde 390 €/mes". Lo segundo da más contexto al LLM.
  • `geo` con latitud y longitud es opcional pero pesa en Map Pack. Para online-only, omítelo.
JSON-LD @type: ProfessionalService
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "@id": "https://tudominio.com/#service",
  "name": "Tu Servicio Pro",
  "description": "Descripción de 150-300 caracteres explicando exactamente qué haces.",
  "url": "https://tudominio.com",
  "image": "https://tudominio.com/og.png",
  "telephone": "+34900000000",
  "email": "hola@tudominio.com",
  "priceRange": "€€",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "C/ Ejemplo, 25",
    "addressLocality": "Vigo",
    "postalCode": "36210",
    "addressCountry": "ES"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 42.2406,
    "longitude": -8.7207
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "09:00",
      "closes": "18:00"
    }
  ],
  "serviceType": ["Categoría 1", "Categoría 2"],
  "provider": { "@id": "https://tudominio.com/#organization" }
}

Schema #3 de 8

SoftwareApplication

Cuándo usar

Si vendes software o SaaS.

Por qué importa

Tipo específico para apps y SaaS. Lleva precio, plataforma, requerimientos y, lo más importante, lista de features (featureList) — los LLMs leen featureList literal cuando responden "qué hace X".

Notas técnicas

  • `applicationCategory` debe ser uno de los valores oficiales de schema.org: BusinessApplication, DesignApplication, DeveloperApplication, FinanceApplication, GameApplication, etc.
  • `featureList` es literalmente la primera cosa que LLM lee cuando le preguntas "qué hace [tu app]". Trátalo como copy de venta: claro, accionable, no vago.
  • Si tienes prueba gratis, añade `offers[0].priceValidUntil` y un `Offer` separado con `price: "0"` y `eligibleDuration` para hacerlo explícito.
JSON-LD @type: SoftwareApplication
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "@id": "https://tudominio.com/#software",
  "name": "Tu SaaS",
  "description": "Tu SaaS hace X para empresas que necesitan Y.",
  "applicationCategory": "BusinessApplication",
  "applicationSubCategory": "SEOSoftware",
  "operatingSystem": "Web",
  "url": "https://tudominio.com",
  "publisher": { "@id": "https://tudominio.com/#organization" },
  "offers": [
    {
      "@type": "Offer",
      "name": "Starter",
      "price": "390",
      "priceCurrency": "EUR",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "price": "390",
        "priceCurrency": "EUR",
        "unitText": "MONTH"
      },
      "url": "https://tudominio.com/planes",
      "availability": "https://schema.org/InStock"
    }
  ],
  "featureList": [
    "Feature 1 con descripción concreta",
    "Feature 2",
    "Feature 3"
  ],
  "inLanguage": ["es-ES", "en"]
}

Schema #4 de 8

Article

Cuándo usar

En cada post de blog o artículo editorial.

Por qué importa

Marca el contenido como editorial autoral. Author + datePublished + dateModified son las 3 señales que más pesan para E-E-A-T y para que LLMs citen el artículo con confianza.

Notas técnicas

  • El `author` como Person con sameAs a LinkedIn es clave para E-E-A-T. Un artículo sin autor identificable se descarta en YMYL.
  • `datePublished` es fijo; `dateModified` se actualiza cada revisión. Google da más peso a artículos modificados recientemente — actualiza con criterio, no por SEO.
  • Para análisis o opinión usa `OpinionNewsArticle`; para tutoriales `HowTo`; para reportajes `ReportageNewsArticle`. Cada subtipo da contexto específico al LLM.
JSON-LD @type: Article
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Título exacto del artículo",
  "description": "Resumen de 150-160 caracteres.",
  "image": "https://tudominio.com/post-cover.png",
  "author": {
    "@type": "Person",
    "name": "Nombre del autor",
    "url": "https://tudominio.com/equipo/nombre-autor",
    "jobTitle": "Cargo del autor",
    "worksFor": { "@id": "https://tudominio.com/#organization" },
    "sameAs": [
      "https://linkedin.com/in/autor",
      "https://twitter.com/autor"
    ]
  },
  "publisher": { "@id": "https://tudominio.com/#organization" },
  "datePublished": "2026-05-14T10:00:00+02:00",
  "dateModified": "2026-05-14T10:00:00+02:00",
  "inLanguage": "es-ES",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://tudominio.com/blog/post-slug"
  }
}

Schema #5 de 8

FAQPage

Cuándo usar

En cualquier página con sección FAQ visible.

Por qué importa

Le dice a Google y a los LLMs "estas preguntas-respuestas son explícitamente Q&A". Los LLMs citan FAQs casi literalmente cuando responden preguntas similares.

Notas técnicas

  • Solo márcalo si las preguntas/respuestas EXISTEN visibles en la página. Marcar FAQ que solo está en el JSON-LD es señal de spam y Google lo penaliza.
  • Una respuesta de 50 palabras es mejor que ninguna, pero las de 150-300 palabras se citan mucho más en LLMs porque el modelo puede usar la respuesta entera.
  • Las FAQs deben ser preguntas REALES de tu cliente, no inventadas para meter keywords. Las inventadas suenan a IA y los LLMs las descartan.
JSON-LD @type: FAQPage
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "¿Pregunta exacta tal como aparece en la página?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Respuesta completa de 80-300 palabras. Sin HTML, solo texto plano (puedes incluir saltos de línea con \\n)."
      }
    },
    {
      "@type": "Question",
      "name": "¿Segunda pregunta?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Segunda respuesta."
      }
    }
  ]
}

Schema #7 de 8

MedicalBusiness / Physician

Cuándo usar

Para clínicas, consultas y profesionales sanitarios.

Por qué importa

Schema.org tiene una jerarquía médica completa que Google y los LLMs leen con peso de E-E-A-T extra alto. Sin estos schemas, una clínica está renunciando a su mejor activo SEO/GEO.

Notas técnicas

  • `medicalSpecialty` acepta valores controlados de schema.org: Dentistry, Surgery, Pediatrics, Cardiovascular, etc. Usa el más específico.
  • Para psicólogos usa `@type: "Psychologist"` (subtipo de Physician). Para fisios `@type: "Physiotherapy"`. Para abogados que no son médicos, `LegalService` con `Attorney` para cada profesional.
  • El `identifier` con número de colegiado es el activo E-E-A-T más fuerte que tienes — los LLMs leen esto y suben la confianza del autor sustancialmente.
JSON-LD @type: MedicalBusiness
{
  "@context": "https://schema.org",
  "@type": "MedicalBusiness",
  "@id": "https://tudominio.com/#clinica",
  "name": "Clínica Tal",
  "medicalSpecialty": ["Dentistry", "Orthodontics"],
  "description": "Clínica dental especializada en implantología y ortodoncia invisible.",
  "url": "https://tudominio.com",
  "telephone": "+34900000000",
  "address": { ... },
  "employee": [
    {
      "@type": "Physician",
      "name": "Dra. Ejemplo",
      "medicalSpecialty": "Dentistry",
      "identifier": {
        "@type": "PropertyValue",
        "propertyID": "colegiado",
        "value": "12345"
      },
      "alumniOf": {
        "@type": "EducationalOrganization",
        "name": "Universidad Complutense de Madrid"
      }
    }
  ],
  "availableService": [
    {
      "@type": "MedicalProcedure",
      "name": "Implante dental",
      "procedureType": "https://schema.org/SurgicalProcedure"
    }
  ]
}

Schema #8 de 8

Person

Cuándo usar

Para cada autor, miembro del equipo o profesional verificable.

Por qué importa

Cuando aparece como `author` en Articles o como `employee` en MedicalBusiness, sin Person bien marcado el autor queda como anónimo y se pierde el E-E-A-T.

Notas técnicas

  • `knowsAbout` es muy infrautilizado. Le dice al LLM "esta persona es autoridad en X, Y, Z". Si la página del autor dice eso visible ("Especializado en…") puedes marcarlo legítimamente.
  • `sameAs` con perfiles verificables externos (LinkedIn, GitHub, ORCID si es académico) construye Knowledge Graph entity y mejora citation rate del autor en LLMs.
  • Para una empresa cooperativa con socios visibles, marca cada uno con Person y enlázalos con `Organization.member`.
JSON-LD @type: Person
{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://tudominio.com/equipo/nombre#person",
  "name": "Nombre Apellido",
  "jobTitle": "CEO y fundador",
  "image": "https://tudominio.com/equipo/nombre.jpg",
  "url": "https://tudominio.com/equipo/nombre",
  "worksFor": { "@id": "https://tudominio.com/#organization" },
  "alumniOf": [
    {
      "@type": "EducationalOrganization",
      "name": "Universidad Pompeu Fabra"
    }
  ],
  "knowsAbout": ["SEO", "Generative Engine Optimization", "Digital PR"],
  "sameAs": [
    "https://linkedin.com/in/nombre",
    "https://twitter.com/nombre",
    "https://github.com/nombre"
  ]
}

5 errores que penalizan en schema.org

Los vemos repetidamente en auditorías. Cualquiera de los 5 puede provocar manual action de Google o, peor, hacer que los LLMs descarten tu schema entero como ruido.

01

Marcar schemas que no existen visibles en la página

Generas un FAQPage en el JSON-LD pero en HTML no hay sección FAQ visible. Google lo detecta como spam y aplica penalización manual. Regla: solo marca lo que está visible.

02

Schemas duplicados con datos contradictorios

Tienes Organization con `name: "Empresa SL"` en el layout base y otro Organization con `name: "Empresa S.L."` en otra página. Los LLMs detectan inconsistencia y bajan confianza. Centraliza la entidad y referencia con `@id`.

03

AggregateRating sin reseñas verificables

Marcar un AggregateRating con `"ratingValue": "5.0", "reviewCount": "237"` cuando en realidad hay 3 reseñas. Google aplica manual action a sitios completos que hacen esto, no solo a la página afectada.

04

Olvidar @id y duplicar entidades en cada página

Repites el JSON-LD completo de Organization en cada página en lugar de referenciar con `{"@id": "..."}`. Funciona, pero los LLMs se confunden si los datos divergen levemente entre páginas. Mejor referencia explícita.

05

Schemas en idioma equivocado o sin inLanguage

Página en español con schema en inglés (`"name": "Dental Clinic"` para una clínica que se llama "Clínica Dental"). Sin `inLanguage` los LLMs adivinan, a veces mal. Marca siempre `inLanguage` ("es-ES", "gl-ES", etc.).

Cómo validar que tu schema funciona

Tres pasos secuenciales. Si el schema no pasa el paso 1, no tiene sentido seguir. Si pasa los 3, está listo para producción.

Paso 1: validador sintáctico — validator.schema.org

Pega tu JSON-LD o la URL pública. Detecta errores de sintaxis (comas, paréntesis), tipos no reconocidos y propiedades inválidas en cada tipo. Es el chequeo mínimo: si falla aquí, el schema no existe para los crawlers.

Paso 2: Rich Results Test de Google

search.google.com/test/rich-results. Te dice qué rich results puede generar Google con tu schema (FAQ snippet, breadcrumb en SERP, sitelinks search box, etc.) Sirve para confirmar que el schema es compatible con SERP — pero ojo: pasar este test NO significa que aparecerán rich results, solo que son posibles.

Paso 3: test cualitativo con LLM

Esto es lo que casi nadie hace y es el que más importa para GEO. Coge tu URL recién publicada, abre ChatGPT (con browsing habilitado) y pregunta literalmente:

  • "¿Puedes resumir qué es la entidad detrás de [URL]?"
  • "¿Quién está detrás de [URL] y qué hace?"
  • "¿Esta página describe un servicio, un producto, una organización o una persona?"

Si ChatGPT responde con datos correctos y completos (\"esta es la empresa X, especializada en Y, fundada en Z, con domicilio en W\"), tu schema está bien estructurado. Si responde \"no tengo información\" o da datos genéricos, tu schema está siendo ignorado o malinterpretado. Itera.

Auditoría gratis SEO + GEO

¿Cómo te ven Google
y ChatGPT hoy?

En 30 segundos te decimos qué schemas tiene tu web, cuáles le faltan y cuáles están mal estructurados. Sin registro, con criterio, en castellano.

Preguntas frecuentes

Sobre schema.org y LLMs.

01 ¿Schema.org sigue importando en 2026 con los LLMs?

Más que nunca. Google sigue usándolo para rich results, pero además los asistentes IA (ChatGPT con browsing, Perplexity, Claude con web tools, AI Overviews) leen JSON-LD para entender qué tipo de entidad es cada página. Una organización con Organization + ProfessionalService bien marcado se cita con MUCHO más confianza que una sin estructura. En 2026 schema deja de ser "plus SEO técnico" para ser piedra angular de la presencia en LLMs.

02 ¿JSON-LD, microdata o RDFa?

JSON-LD, sin discusión. Es la sintaxis que Google recomienda explícitamente, la más fácil de mantener (separada del HTML), la que los validadores soportan mejor y la que los crawlers de LLM parsean con menos errores. Microdata y RDFa eran del 2010 — déjalos.

03 ¿Cuántos tipos de schema necesita una empresa SaaS típica?

Mínimo viable: Organization + WebSite + SoftwareApplication + BreadcrumbList. Si tienes blog, añade Article en cada post. Si tienes FAQ, añade FAQPage. Si tienes equipo visible, añade Person para cada miembro. Si vendes en LATAM y Europa, añade hreflang + multiple Organization con sameAs entre ellas. Total: 5-8 tipos para una SaaS con cobertura completa.

04 ¿Tengo que poner schema en TODAS las páginas?

Sí, pero no el mismo en todas. Organization + WebSite van en TODAS las páginas (suelen estar en el layout base). Después cada tipo de página añade su schema específico: blog post → Article, página de producto → Product, FAQ → FAQPage, contacto → ContactPage, etc. La regla: cada página debe ser identificable por un solo tipo principal de schema, no por una lista vaga.

05 ¿Cómo valido que mi schema está bien?

Tres herramientas. Una: validator.schema.org (validez sintáctica). Dos: Google Rich Results Test (compatibilidad con SERP). Tres: leer manualmente el JSON-LD que generas en preview y preguntar a ChatGPT "¿qué entiendes que es esta entidad?" — si el LLM responde con datos correctos y completos, has hecho bien tu trabajo. Si responde "no estoy seguro", revisa el schema.

06 ¿Schema agresivo puede penalizar?

Sí, en tres casos: 1) Schema que NO corresponde con el contenido visible (markeas un FAQ que no existe en la página), 2) marcar como Review cosas que no son reviews legítimas, 3) inflar artificialmente aggregateRating con datos no verificables. Google penaliza schema engañoso con manual actions. La regla: marca SOLO lo que está visiblemente en la página, no inventes datos.

07 ¿LLMs leen también schemas no soportados oficialmente por Google?

Sí. Los LLMs son mucho más permisivos con schema.org que Google. Mientras que Google solo soporta 30-40 tipos para rich results, los LLMs procesan cualquier tipo válido de schema.org (Person, Place, Event, CreativeWork…) y lo usan para construir el contexto de la entidad. Si tu negocio encaja con un schema poco común (Brewery, GovernmentOrganization, MovieTheater…) úsalo aunque Google no muestre nada — el LLM sí lo lee.

¿Tu marca aparece en ChatGPT?
Compruébalo gratis en 30s.

Probar gratis