Si tu web no le explica a Google y a los LLMs qué es cada cosa, no apareces en AI Overviews. Así de directo. El schema markup —los datos estructurados en formato JSON-LD— es el lenguaje que Google, ChatGPT, Perplexity y los demás motores generativos leen para entender tu contenido y decidir si te citan como fuente.
Este artículo no es una explicación filosófica de schema. Es un manual técnico con plantillas que puedes copiar a tu web hoy mismo. Pensado para webs reales, no para casos de manual.
Por qué el schema markup pasó de “nice to have” a obligatorio
Hasta 2024, schema markup servía sobre todo para rich snippets: estrellas en SERP, FAQs desplegables, breadcrumbs. Importante, pero no crítico.
En 2026 el juego cambió. Google AI Overviews, ChatGPT Search, Perplexity y los modos generativos de Bing necesitan estructura para parsear tu contenido y atribuirte la respuesta. Sin JSON-LD bien hecho, tu artículo es texto plano que el modelo puede resumir, pero raramente citar.
Las consecuencias prácticas:
- En cluster con autoridad (Person + Organization + Article bien anidados), las citas en AI Overviews suben hasta 3x según datos públicos de SearchEngineLand de febrero 2026.
- Sin
Personschema consameAsa LinkedIn, los LLMs no sabe atribuirte expertise → no citan. - Las FAQ con
FAQPageschema y respuestas concretas son una de las fuentes preferidas para AI Overviews por su formato pregunta-respuesta directo.
Si todavía dudas si invertir tiempo en esto, lee primero la diferencia entre GEO y SEO y la importancia del E-E-A-T en la era de la IA. Sin esos dos cimientos el schema no rinde.
Los 6 tipos de schema que sí mueven la aguja en GEO
No todos los tipos de schema son igual de útiles para búsqueda generativa. Estos son los que realmente importan:
1. Article (o BlogPosting)
El imprescindible. Marca cada artículo del blog con autor, fecha, headline y inLanguage.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Schema markup para AI Overviews: la guía técnica 2026",
"description": "Cómo estructurar JSON-LD para que Google y los LLMs te citen.",
"datePublished": "2026-05-03",
"dateModified": "2026-05-03",
"inLanguage": "es-ES",
"author": { "@id": "https://ad2place-digital.net/#jose" },
"publisher": { "@id": "https://ad2place-digital.net/#org" },
"mainEntityOfPage": "https://ad2place-digital.net/blog/schema-markup-ai-overviews/"
}
Truco crítico: usa @id con anchors (#jose, #org) en vez de duplicar el objeto Person/Organization en cada artículo. Reduce tamaño y deja un grafo coherente.
2. Person con sameAs
Sin este, los LLMs no saben quién firma el contenido y no te atribuyen autoridad. El sameAs debe apuntar a perfiles verificables: LinkedIn, X, Crunchbase, GitHub.
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://ad2place-digital.net/#jose",
"name": "José Redondo Delgado",
"jobTitle": "Director de Ad2Place Digital",
"sameAs": [
"https://www.linkedin.com/in/jose-redondo-delgado-8b560214b/"
],
"knowsAbout": ["SEO", "GEO", "Marketing Digital", "Schema Markup"],
"worksFor": { "@id": "https://ad2place-digital.net/#org" }
}
knowsAbout es opcional pero ayuda a perfilar la autoridad temática. Limítate a 4-6 áreas reales, no spamees con 30 keywords.
3. Organization (o LocalBusiness)
La identidad de tu empresa. Se declara una vez en home y se referencia con @id desde el resto del sitio.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://ad2place-digital.net/#org",
"name": "Ad2Place Digital",
"url": "https://ad2place-digital.net/",
"logo": "https://ad2place-digital.net/logo.webp",
"sameAs": [
"https://www.linkedin.com/company/ad2place"
]
}
Si tu negocio tiene local físico, usa LocalBusiness con address, geo y openingHoursSpecification añadidos. AI Overviews locales (mapa con resultados) los usan directamente.
4. FAQPage
El formato preferido por AI Overviews. Pregunta-respuesta literal, sin adornos, una entidad por duda real.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "¿Hace falta schema markup para aparecer en AI Overviews?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Sí. Sin JSON-LD bien estructurado, los LLMs pueden resumir tu contenido pero raramente te citan como fuente atribuida."
}
}
]
}
Regla dura: la respuesta del schema tiene que coincidir literalmente con la del HTML visible. Si las divergan, Google penaliza por contenido oculto.
5. HowTo
Para tutoriales paso a paso. AI Overviews los muestra con frecuencia cuando la query es accionable (“cómo configurar X”, “pasos para Y”).
{
"@type": "HowTo",
"name": "Cómo añadir schema FAQ a una página",
"step": [
{ "@type": "HowToStep", "name": "Identifica las preguntas reales", "text": "..." },
{ "@type": "HowToStep", "name": "Genera el JSON-LD", "text": "..." },
{ "@type": "HowToStep", "name": "Valida con Rich Results Test", "text": "..." }
]
}
6. BreadcrumbList
Estructura jerárquica de la navegación. Ayuda a los LLMs a entender el contexto temático de cada URL.
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Inicio", "item": "https://ad2place-digital.net/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://ad2place-digital.net/blog/" },
{ "@type": "ListItem", "position": 3, "name": "Schema markup para AI Overviews" }
]
}
El patrón @graph: cómo anidarlo todo sin duplicar
El error más común es declarar 5 bloques JSON-LD separados, cada uno con sus propias entidades. Resultado: HTML inflado, Google parsea peor, y las relaciones entre entidades se pierden.
La solución es @graph: un único <script type="application/ld+json"> que contiene un array de entidades referenciadas con @id. Así declaramos cada cosa una sola vez.
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "@id": "https://example.com/#org", "name": "Ad2Place" },
{ "@type": "Person", "@id": "https://example.com/#jose", "name": "José Redondo", "worksFor": { "@id": "https://example.com/#org" } },
{ "@type": "Article", "headline": "...", "author": { "@id": "https://example.com/#jose" }, "publisher": { "@id": "https://example.com/#org" } },
{ "@type": "BreadcrumbList", "itemListElement": [...] }
]
}
Esa es la forma profesional. Una entidad declarada con @id y referenciada con { "@id": ... } en todas las que la necesiten.
Errores frecuentes que estás cometiendo (con seguridad)
Después de auditar +200 webs en los últimos meses, estos son los fallos que veo en el 80% de proyectos:
descriptionliteral copiada de la meta description. Google lo detecta como duplicado y desactiva el snippet enriquecido.- Schema en el HTML pero no en el HTML estático. Si lo inyectas con JavaScript después de cargar, Googlebot lo ve, pero los LLMs que parsean HTML crudo (Perplexity, Claude) no.
authordeclarado como string ("author": "José Redondo") en vez de objeto Person. Pierdes autoridad atribuible.- FAQ schema con respuestas que no aparecen en la página. Penalización casi automática.
- Mismo
@idapuntando a entidades diferentes entre páginas. Crea conflicto en el knowledge graph de Google. mainEntityOfPageapuntando a la URL sin trailing slash cuando el sitio sí lo lleva. Los crawlers tratan dos URLs distintas.- No declarar
inLanguageen sitios multidioma. Google no sabe a qué versión hreflang corresponde.
Cómo validar tu schema sin morir en el intento
Tres herramientas, en este orden:
- Schema.org Validator (
validator.schema.org) — sintaxis correcta. Es estricto pero ortodoxo. - Rich Results Test (
search.google.com/test/rich-results) — qué snippets enriquecidos puede generar Google. Si una entidad no aparece aquí, Google la ignora. - Google Search Console → Mejoras — qué entidades está indexando Google de tu sitio en producción. La verdad incontestable.
Regla práctica: si el Rich Results Test pasa pero Search Console no muestra la entidad después de 2 semanas, hay algo más bloqueando (robots.txt, JS render, conflicto entre @id).
Cómo aplicarlo en tu sitio sin reescribir todo
Si estás empezando, este es el orden eficiente:
- Home:
Organization+WebSite+Person(un solo@graph). - Blog hub
/blog/:CollectionPageconmainEntityapuntando a los últimos artículos. - Cada artículo:
Article+BreadcrumbList+Person(referenciado por@id). - Páginas de servicio:
Serviceconproviderapuntando aOrganization. - Páginas con FAQs reales:
FAQPage. - Tutoriales operativos:
HowTo.
No hace falta meterlo todo a la vez. Empieza por home y los 5 artículos con más tráfico orgánico. El impacto en GSC se ve en 2-4 semanas.
Preguntas frecuentes
¿Schema markup posiciona mejor en Google clásico? Indirectamente. No es factor de ranking directo, pero los rich snippets aumentan CTR y eso sí es factor.
¿Microdata, RDFa o JSON-LD? JSON-LD. Google lo prefiere oficialmente desde 2017, los LLMs lo parsean mejor y se mantiene aparte del HTML, así que es más limpio de auditar.
¿Schema dinámico (inyectado con JS) cuenta? Para Google sí, pero con delay (espera al render JS). Para LLMs que parsean HTML crudo (Perplexity, ChatGPT Search), generalmente no. Si quieres aparecer en AI Overviews, schema en HTML estático.
¿Cuántas FAQs declarar por página?
3-7 reales. Más es spam y Google las ignora. Si tienes más de 10 dudas, móntalas en una página /preguntas-frecuentes/ con su propia URL.
¿Por qué mi schema valida pero no aparece en Search Console? Causas habituales: robots.txt bloqueando, página noindex, contenido demasiado nuevo (Google tarda 2-4 semanas), o tu autoridad de dominio aún no permite que Google te muestre snippets enriquecidos. En este último caso, el schema sigue ayudando a los LLMs aunque no a Google.
Siguiente paso
El schema markup es la mitad del trabajo GEO. La otra mitad es autoridad temática real (cluster de contenido + E-E-A-T verificable) y arquitectura técnica que permita a los LLMs parsear el HTML.
Si quieres una revisión del schema actual de tu web y un plan de implementación priorizado por impacto, reserva una asesoría SEO gratis de 45 minutos. En esa sesión audito tus entidades en GSC, identifico los huecos y te dejamos roadmap concreto.