Definición
Schema markup (también llamado datos estructurados o structured data) es un código que se añade al HTML de una página para describir su contenido de forma que los buscadores lo entiendan sin ambigüedad. Si una página dice "Antonio Echeverría es director de IMDICA", el HTML normal no le dice a Google si "Antonio Echeverría" es una persona, una empresa, un libro o un personaje de ficción. El schema markup sí.
Schema.org es el vocabulario estándar (creado conjuntamente por Google, Bing, Yahoo y Yandex en 2011) que define tipos como Person, Organization, Product, Article, Recipe, Event, Review, etc. Cada tipo tiene propiedades específicas que se rellenan.
El beneficio real: Google puede mostrar tu página con rich snippets (resultados enriquecidos) — estrellas de valoración, precio, disponibilidad, FAQ desplegables, imágenes de receta, etc. Esto aumenta CTR significativamente sin necesidad de mejorar posición.
Formatos
Schema.org soporta 3 formatos. Google recomienda JSON-LD:
| Formato | Estado |
|---|---|
| JSON-LD | ⭐ Recomendado. Bloque <script> separado del HTML, fácil de mantener |
| Microdata | Antiguo. Atributos HTML inline. En desuso |
| RDFa | Antiguo. Atributos HTML. En desuso |
Ejemplo práctico (JSON-LD)
Marcar un producto en una página de IMDICA:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Fresa de carburo Ø10mm",
"description": "Fresa de carburo de tungsteno de alta precisión, ideal para mecanizado de aceros.",
"sku": "FRC-010-CAR",
"brand": {
"@type": "Brand",
"name": "IMDICA"
},
"offers": {
"@type": "Offer",
"url": "https://imdica.es/productos/frc-010-car",
"priceCurrency": "EUR",
"price": "23.50",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "IMDICA"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "23"
}
}
</script>
Resultado en Google: tu enlace puede aparecer con precio (23,50 €), disponibilidad (En stock), y valoración con estrellas (★★★★★ 4.8 · 23 reseñas) directamente en SERP.
Tipos comunes y para qué sirven
| Tipo | Cuándo usarlo | Rich snippet típico |
|---|---|---|
Article / BlogPosting | Artículos de blog | Imagen + autor + fecha grande |
Product | Páginas de producto | Precio, stock, estrellas |
Recipe | Recetas | Imagen, tiempo de preparación, calorías |
Event | Eventos | Fecha, lugar |
LocalBusiness | Negocios locales | Dirección, horarios, teléfono |
Organization | Empresa (en home) | Logo, perfiles sociales |
Person | Personas | Datos biográficos |
FAQPage | Páginas con preguntas frecuentes | Preguntas plegables en SERP |
BreadcrumbList | Migas de pan | Path navegable bajo el título |
Review / AggregateRating | Valoraciones | Estrellas |
JobPosting | Ofertas de empleo | Google Jobs |
Course | Cursos | Imagen, proveedor, ratings |
DefinedTerm | Glosario / diccionario | Definición destacada |
Cómo implementarlo
- Identifica qué tipo de contenido es la página (producto, artículo, FAQ, etc.)
- Busca el tipo en schema.org y mira las propiedades obligatorias y recomendadas
- Genera el JSON-LD (a mano, con un generador online o con plugin del CMS)
- Mételo en el
<head>o al final del<body>dentro de<script type="application/ld+json"> - Valida con la Rich Results Test de Google
Generadores recomendados
- Schema.org generators
- Merkle Schema Markup Generator
- En WordPress: Rank Math o Yoast SEO lo generan automáticamente
Errores comunes
- Marcar contenido que no aparece en la página: si el JSON-LD dice "precio: 23.50€" pero la página no muestra ese precio, Google considera spam y puede penalizar
- Datos inventados o no verificables: especialmente con reviews — Google detecta y penaliza ratings falsos
- Tipo incorrecto: marcar un artículo como
Producto un curso comoArticle. La validación pasa pero Google ignora el rich snippet - No probar con Rich Results Test: el código puede ser válido JSON pero no producir rich snippet. Siempre testea antes de publicar
- Solo marcar algunas páginas de un tipo: si tienes 200 productos y solo 5 tienen schema, no es coherente. Automatiza desde plantilla
- Olvidar
@context: "https://schema.org": sin él, Google no sabe interpretar los tipos - Schema obsoleto: tipos como
Restaurantcon propiedades viejas. Revisa la documentación oficial cada año
Cuándo invertir en schema markup
Prioridad alta:
- E-commerce (Product + Offer + Review)
- Blog/medios (Article + BreadcrumbList)
- Negocios locales (LocalBusiness con NAP completo)
- Eventos
- Recetas
- Páginas con FAQ
Prioridad media:
- Páginas corporativas con Organization
- Equipos con perfiles tipo Person
- Sitemap con BreadcrumbList global
Baja prioridad (no aporta rich snippet o aporta poco):
- Términos legales, política de privacidad, contacto simple
Referencias
- schema.org — vocabulario completo
- Google Search Central — Structured Data
- Rich Results Test — validador oficial de Google