Schema.org 2026: tipos que importan para Google y LLMs
Tipos de schema.org que mueven la aguja en 2026: Article, Organization, BreadcrumbList, FAQPage, ProfessionalService. Ejemplos JSON-LD listos.
Schema.org pasó de ser "nice to have" en 2020 a ser crítico en 2026, especialmente desde la entrada de los motores generativos. La razón: los LLMs usan schema para entender qué tipo de entidad eres, qué relación tienes con otras entidades, y qué tan confiable eres como fuente. Sin schema, el LLM tiene que inferir todo del texto plano, y cuando hay ambigüedad, prefiere no citar.
Este post es la guía práctica para devs y founders técnicos. No vamos a cubrir los 800+ tipos de schema. Solo los 8 que hoy mueven la aguja, con ejemplos JSON-LD listos para copiar.
Por qué schema.org sigue importando en 2026
Tres razones que cambiaron en los últimos 24 meses:
- Google muestra rich results (estrellas, FAQ desplegables, breadcrumbs visibles, sitelinks) en SERPs cuando el schema lo permite. Sin schema válido, te quedas con el snippet básico.
- Los LLMs usan schema para identificar entidades.
Organizationcon@idconsistente le dice a ChatGPT "esta es la misma marca que aparece en otros lugares con el mismo @id". - Google AI Overviews extrae directamente de FAQPage y HowTo schemas. Si tu contenido está marcado, tienes más chance de que tu respuesta aparezca dentro del overview.
Schema casi nunca duele. Casi siempre suma. La excepción es schema inválido o engañoso (marcar contenido que no existe en la página). Eso sí penaliza.
Tipos esenciales por tipo de sitio
| Tipo de sitio | Schemas mínimos |
|---|---|
| Agencia / servicios B2B | ProfessionalService, WebSite, Article (blog), BreadcrumbList, FAQPage |
| E-commerce | OnlineStore, WebSite, Product, Offer, AggregateRating, BreadcrumbList, ItemList (categorías) |
| Blog / publicación | Organization o Person, WebSite, Article o BlogPosting, Person (author), BreadcrumbList |
| SaaS / app | SoftwareApplication, Organization, WebSite, Article, FAQPage |
| Local / restaurante | LocalBusiness o subtipo (Restaurant, Dentist), Menu, OpeningHoursSpecification, AggregateRating |
| Educación | Course, EducationalOrganization, Article, Person (instructor) |
Lo crítico es que el @type que elijas sea el más específico que aplique. LocalBusiness > Restaurant > FastFood es mejor que LocalBusiness solo. ProfessionalService es mejor que Organization cuando aplica.
Tabla: qué lee Google vs LLM vs ambos
| Schema | Google rich result | LLM citation signal | Crítico GEO |
|---|---|---|---|
| Organization / ProfessionalService | Sí (knowledge panel) | Sí (entidad) | Alto |
| WebSite con SearchAction | Sí (sitelinks search) | Bajo | Bajo |
| Article con Person author | Sí (autor en SERP) | Sí (EEAT signal) | Alto |
| BreadcrumbList | Sí (breadcrumbs visible) | Sí (jerarquía) | Medio |
| FAQPage | Sí (FAQ desplegable) | Sí (Q&A directo) | Alto cuando aplica |
| HowTo | Sí (pasos visibles) | Sí (pasos extractables) | Alto cuando aplica |
| Product con Offer | Sí (precio, stock) | Parcial | Medio |
| Review / AggregateRating | Sí (estrellas) | Sí (señal confianza) | Medio |
Ejemplos JSON-LD listos para copiar
ProfessionalService (entidad principal)
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"@id": "https://tudominio.com/#organization",
"name": "Tu Marca",
"url": "https://tudominio.com",
"logo": "https://tudominio.com/icon",
"image": "https://tudominio.com/icon",
"description": "Una descripción honesta de qué hace tu negocio.",
"priceRange": "$5,500–$12,000 MXN+",
"areaServed": "MX",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "sales",
"email": "hola@tudominio.com",
"availableLanguage": ["Spanish", "English"]
}
}
Inyecta este JSON dentro de un <script type="application/ld+json"> en el <head> o <body>. Mejor en el layout root para que esté en todas las páginas.
Article con Person author
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Título exacto del post",
"description": "Meta description del post",
"image": ["https://tudominio.com/blog/post-slug/og-image"],
"datePublished": "2026-05-09",
"dateModified": "2026-05-09",
"inLanguage": "es-MX",
"author": {
"@type": "Person",
"@id": "https://tudominio.com/#founder",
"name": "Iván Landaverde",
"url": "https://tudominio.com",
"worksFor": { "@id": "https://tudominio.com/#organization" }
},
"publisher": {
"@type": "Organization",
"name": "Tu Marca",
"logo": {
"@type": "ImageObject",
"url": "https://tudominio.com/icon"
}
},
"mainEntityOfPage": "https://tudominio.com/blog/post-slug"
}
Person author es mejor que Organization author para EEAT en 2026. Los LLMs prefieren citar artículos firmados por una persona real con credenciales.
BreadcrumbList
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Inicio",
"item": "https://tudominio.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://tudominio.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Título del post",
"item": "https://tudominio.com/blog/post-slug"
}
]
}
Va en cada página interior (no en home). Permite a Google mostrar breadcrumbs visibles en SERP y al LLM entender la jerarquía del sitio.
FAQPage
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "¿Cuánto cuesta una página web profesional en México?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Depende del alcance. Una presencia básica con SEO técnico va desde X. Un sitio optimizado para Google + IA va desde Y. Un ecommerce desde Z."
}
},
{
"@type": "Question",
"name": "¿Cuánto tarda en posicionar una web nueva?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Entre 3 y 6 meses para keywords de competencia media, asumiendo SEO técnico correcto y contenido publicado regularmente."
}
}
]
}
Solo si la página tiene FAQ visible. No marques FAQ que no esté en el HTML, eso es violación de las guidelines de Google y se penaliza.
Errores comunes que invalidan schema
- Marcar contenido que no existe en la página visible. Si tu schema dice
aggregateRating: 4.8pero las reseñas no están visibles para el usuario, Google lo penaliza como spam. - Usar @type incorrecto.
LocalBusinesspara una agencia 100% remota es engañoso (la agencia no atiende clientes presencialmente). MejorProfessionalServiceoOrganization. - JSON-LD sintácticamente roto. Una coma de más, comillas mal escapadas, y el schema completo es ignorado. Valida cada cambio en Schema Markup Validator.
- Mismo @id apuntando a entidades distintas. Si tu
Organizationtiene@id: "https://tudominio.com/#organization"y tuArticle.publishertambién, deben ser la misma entidad. Si una página define el@idcon datos distintos, se rompe el grafo. - Schema en páginas sin contenido relacionado.
Productschema en la home cuando la home no muestra producto específico. El LLM lo descarta o desconfía.
Article + Person author para EEAT
EEAT (Experience, Expertise, Authoritativeness, Trustworthiness) es el marco que Google y los LLMs usan para evaluar autoridad. Article con Person author + información rica sobre la persona (worksFor, sameAs con perfiles externos, jobTitle) refuerza EEAT directamente.
Lo mínimo viable para Person:
{
"@type": "Person",
"@id": "https://tudominio.com/#founder",
"name": "Tu Nombre",
"url": "https://tudominio.com/about",
"jobTitle": "Founder",
"worksFor": { "@id": "https://tudominio.com/#organization" }
}
Lo ideal incluye sameAs con LinkedIn, X, GitHub:
"sameAs": [
"https://www.linkedin.com/in/tu-perfil",
"https://github.com/tu-usuario"
]
Esto le dice al LLM "esta persona es real, tiene presencia validable en plataformas externas". Suma confianza.
BreadcrumbList con arquitectura del sitio
El BreadcrumbList debe reflejar la arquitectura real del sitio, no la jerarquía conceptual. Si tu URL es /servicios/agencia-seo-mexico/, el breadcrumb debe ser Inicio → Servicios → Agencia SEO en México. Si la URL es /blog/que-es-geo, debe ser Inicio → Blog → Qué es GEO.
Inconsistencias entre breadcrumb visible y schema rompen la confianza. Si el visual dice "Inicio → Blog" pero el schema dice "Inicio → Articles", el validator marca conflicto.
Próximos pasos
Si llegaste hasta aquí y tu sitio no tiene la mitad de estos schemas, hay trabajo. Orden de prioridad:
OrganizationoProfessionalServiceen root layout (todas las páginas).ArticleconPersonauthor en cada blog post.BreadcrumbListen todas las páginas interiores.FAQPagecuando la página tenga FAQ visible.HowTocuando la página tenga tutorial paso a paso.
Validar todo en Schema Markup Validator y en Google Rich Results Test.
Si tu stack es Next.js, el patrón estándar es centralizar los objetos schema en un archivo (lib/schemas.ts) y serializarlos a JSON dentro del JSX:
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationSchema) }}
/>
Si tu sitio no es Next.js o si la implementación se complica, escríbenos. Schema mal vale menos que schema bien hecho, y el setup correcto es donde se construye autoridad de largo plazo.