Cómo validar el marcado schema: validadores, pasos y errores comunes
Validar el marcado schema significa responder dos preguntas distintas. Primera: ¿los datos estructurados son schema.org correcto y una máquina puede leerlos? Es decir, ¿el JSON es válido, los tipos y propiedades existen y los valores tienen el formato adecuado? Segunda: ¿cumplen los requisitos de Google para un resultado enriquecido concreto, como un fragmento de producto o las estrellas de reseñas? El Schema Markup Validator de validator.schema.org responde la primera pregunta, la Prueba de resultados enriquecidos de Google responde la segunda, y nuestro validador de schema comprueba la sintaxis, el vocabulario de schema.org y los campos obligatorios de Google en un solo informe. Después de publicar, los informes de resultados enriquecidos de Search Console muestran lo que Google realmente encontró en todo el sitio.
Qué validador usar ahora
| Herramienta | Qué comprueba | JavaScript | Úsala para |
|---|---|---|---|
| Prueba de resultados enriquecidos (Google) | Solo los tipos de datos estructurados que pueden generar un resultado enriquecido de Google, con los campos obligatorios y recomendados por Google. Acepta una URL o código, JSON-LD, Microdata y RDFa. El rastreador predeterminado es el de smartphone, el de escritorio es opcional. | Sí: analiza la página renderizada | «¿Google aceptará esto para un resultado enriquecido?» |
| Schema Markup Validator (schema.org) | Cualquier tipo y propiedad de schema.org en JSON-LD, Microdata o RDFa. Sin reglas específicas de Google. | No documentado: pega el código si tienes dudas | Tipos que Google no usa, corrección general |
| Validador de schema de PromoPilot | Sintaxis JSON con línea y columna, vocabulario de schema.org, campos obligatorios y recomendados por Google para 11 familias de tipos, enlaces @graph y @id, entidades duplicadas | No: lee el HTML que envía el servidor | Encontrar por qué falla un bloque y obtener una copia corregida |
| Informes de resultados enriquecidos de Search Console | Lo que Googlebot encontró en tu sitio: elementos válidos e inválidos, problemas a lo largo del tiempo | Sí, como parte de la indexación | Monitoreo después del lanzamiento |
En la práctica usarás dos de ellas: un validador mientras escribes el marcado, y la Prueba de resultados enriquecidos o Search Console para la parte de Google.
Cómo validar el marcado schema paso a paso
- Averigua qué hay en la página. Abre el código fuente de la página (Ctrl+U o Cmd+Option+U) y busca
application/ld+json(JSON-LD),itemscope(Microdata) ytypeof(RDFa). Si un plugin dice generar marcado pero el código fuente no tiene ninguno, probablemente lo añade JavaScript: consulta la sección sobre ese tema más abajo. - Corrige la sintaxis antes que nada. Una coma final o unas comillas tipográficas hacen que todo el bloque JSON-LD sea inválido, y los buscadores lo omiten por completo. Un validador muestra la línea y la columna del error.
- Revisa el vocabulario. Los tipos empiezan con mayúscula (
Product), las propiedades usan camelCase (datePublished), y la propiedad debe pertenecer al tipo. Las enumeraciones son URL completas (https://schema.org/InStock), y las fechas y duraciones siguen el formato ISO 8601. - Comprueba los requisitos de Google para la función que quieres. Pasa la URL por la Prueba de resultados enriquecidos. Un error significa que el elemento no es apto para ese resultado enriquecido. Una advertencia significa que falta un campo recomendado: el elemento sigue siendo apto, pero con menos información.
- Compara el marcado con lo que ven los visitantes. El precio, la valoración, el autor y las fechas en el JSON-LD deben coincidir con la página visible. Las políticas de Google prohíben marcar contenido que los lectores no pueden ver.
- Publica y monitorea. Usa la Inspección de URL de Search Console para comprobar la URL activa y solicitar la indexación, y luego revisa los informes de resultados enriquecidos de ese tipo durante las siguientes semanas.
Ejemplo: un bloque Product con errores y la versión corregida
Este bloque parece inofensivo, pero tiene cuatro problemas:
{
"@context": "https://schema.org",
"@type": "product",
"name": "Trail running shoes",
"offers": {
"@type": "Offer",
"price": "1 299,00 UAH",
"availability": "in stock",
}
}- la coma después de la última propiedad hace que el JSON no sea válido, así que no se lee nada más del bloque;
producten minúsculas no es un tipo de schema.org: los nombres distinguen entre mayúsculas y minúsculas;- el precio contiene un espacio, una coma y una moneda; el precio es un número simple y la moneda va en
priceCurrency; in stockes texto libre, no un valor de la enumeraciónItemAvailability.
La versión corregida:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trail running shoes",
"image": "https://example.com/img/shoes.jpg",
"offers": {
"@type": "Offer",
"price": "1299.00",
"priceCurrency": "UAH",
"availability": "https://schema.org/InStock"
}
}
Para un snippet de producto de Google, un Product necesita un name y al menos uno de estos: offers, review o aggregateRating; dentro de un Offer, price es obligatorio.
Errores comunes y cómo corregirlos
| Lo que ves | Solución |
|---|---|
| Parsing error / unexpected token | Busca una coma final antes de } o ], una coma faltante entre propiedades o unas comillas sin escapar dentro de un valor. |
| Comillas tipográficas “ ” en el código | El código se pegó a través de Word o de un editor visual. Pega el JSON-LD en el modo HTML/código de tu CMS. |
Comentarios // dentro del JSON-LD | Elimínalos. La ayuda de Google dice que el Rich Results Test ignora los comentarios, pero el estándar JSON-LD no los permite, así que otros parsers pueden fallar. |
| Tipo o propiedad desconocidos | Revisa la ortografía y las mayúsculas: datepublished → datePublished, localbusiness → LocalBusiness. |
| Propiedad no válida para este tipo | Muévela al objeto correcto, por ejemplo price va en un Offer, no directamente en un Product. |
| Fecha no válida | 13.10.2026 → 2026-10-13 o 2026-10-13T09:00:00+03:00. |
| Duración no válida | "cookTime": "30 min" → "PT30M"; una hora y media es "PT1H30M". |
| Dos entidades Organization distintas | A menudo el plugin de SEO y el tema generan una cada uno. Conserva una, asígnale un @id y haz referencia a ella desde los demás bloques. |
| Tipos de data-vocabulary.org | Google ya no admite este vocabulario antiguo. Reescribe el marcado con schema.org. |
Un marcado válido no garantiza un resultado enriquecido
Google afirma claramente en sus directrices de datos estructurados que no garantiza los resultados enriquecidos, incluso cuando el marcado pasa el Rich Results Test. Un marcado correcto hace que la página sea elegible; el algoritmo decide si muestra la función para una consulta y un usuario concretos. Motivos comunes por los que un elemento válido no muestra nada:
- La función ya no se muestra. Consulta la lista de abajo.
- Problemas de políticas. Marcado de contenido que no está en la página, datos engañosos o desactualizados, o reseñas falsas. Una acción manual por datos estructurados elimina la elegibilidad para resultados enriquecidos; según Google, no afecta al posicionamiento en la búsqueda web.
- Reseñas autopromocionales. Las estrellas de reseñas para LocalBusiness y Organization solo se muestran en sitios que reseñan otros negocios. Una empresa que marca valoraciones de sí misma no obtendrá estrellas.
- La página aún no está indexada, o Google no la ha vuelto a rastrear desde que cambiaste el marcado.
Lo que Google dejó de mostrar
- Resultados enriquecidos de FAQ: limitados a sitios gubernamentales y de salud de referencia desde septiembre de 2023, no se muestran en absoluto desde el 7 de mayo de 2026; la documentación se eliminó en junio de 2026.
- How-to: eliminado en septiembre de 2023 en escritorio y móvil.
- Cuadro de búsqueda de sitelinks (WebSite + SearchAction): retirado en noviembre de 2024.
- Migas de pan: ya no se muestran en los resultados móviles desde enero de 2025; se siguen mostrando en escritorio.
- Course info, Estimated salary, Learning video, Special announcement, Vehicle listing: documentación eliminada en septiembre de 2025.
Este marcado sigue siendo schema.org válido y no rompe nada; Google simplemente no lo convierte en una función visual. Conservarlo o no es una cuestión de esfuerzo de mantenimiento, no de riesgo.
JSON-LD añadido con JavaScript o Google Tag Manager
Muchos sitios inyectan datos estructurados con un script o con una etiqueta HTML personalizada en Google Tag Manager. La guía de Google sobre cómo generar datos estructurados con JavaScript confirma que la Búsqueda de Google puede procesar el marcado que está en el DOM cuando renderiza la página. Dos consecuencias:
- Las herramientas que solo leen el HTML sin procesar, incluida la nuestra, no verán ese marcado. Prueba estas páginas con la Prueba de resultados enriquecidos (funciona con el código renderizado) o con la Inspección de URLs en Search Console. Otra opción: abre la página en Chrome DevTools, copia el elemento
<html>renderizado (Elementos → Copiar → Copiar outerHTML) y pégalo en un validador. - Para el marcado de Product, Google advierte que el marcado generado dinámicamente puede hacer que los rastreos de Shopping sean menos frecuentes y menos fiables. Si el precio y la disponibilidad cambian a menudo, coloca el JSON-LD en el HTML del servidor.
En GTM, construye el marcado a partir de variables de la página en lugar de escribir los valores directamente en la etiqueta; de lo contrario, el marcado se aleja de lo que ven los visitantes.
Cómo revisar los datos estructurados en Search Console
Los informes de resultados enriquecidos están en la sección Mejoras; los fragmentos de producto y las fichas de comerciante están en Shopping. Algunas cosas que conviene saber al leerlos:
- Un informe aparece solo después de que Google encuentra marcado válido de un tipo compatible. No se espera un informe de FAQ ni de How-to.
- Las cifras cuentan elementos, no páginas: una página con tres objetos Event genera tres elementos.
- El informe muestra una muestra, no todas las URL. Para una página concreta, usa la Inspección de URLs.
- Un elemento con un problema crítico no es válido y no puede aparecer como resultado enriquecido; los problemas no críticos son advertencias.
- Después de corregir un problema, inicia la validación desde la página de detalles del problema; el informe muestra el estado de la validación.
Cómo hacerlo en PromoPilot
Introduce una URL o pega código en el validador de schema. Encuentra todos los elementos JSON-LD, Microdata y RDFa y los revisa en tres capas:
- Sintaxis: errores de JSON con línea y columna, el motivo en lenguaje sencillo y correcciones automáticas seguras (comas finales, comentarios, comillas tipográficas, saltos de línea dentro de los valores, varios objetos seguidos) con un bloque corregido listo para copiar.
- Vocabulario: tipos y propiedades según schema.org (actualmente la versión 30.1), con sugerencias para errores tipográficos y uso incorrecto de mayúsculas y minúsculas, términos reemplazados, valores de enumeración, fechas y duraciones ISO 8601.
- Reglas de Google: campos obligatorios y recomendados para artículos, productos, reseñas, breadcrumbs, organizaciones, negocios locales, eventos, recetas, videos, aplicaciones de software y ofertas de empleo.
También ensambla @graph, sigue las referencias @id y señala entidades duplicadas. El código pegado puede pesar hasta 512 KB; una página obtenida por URL se guarda en caché durante 10 minutos. Para crear marcado desde cero, usa el generador de schema (Article, Product, FAQ, Organization, LocalBusiness, Breadcrumbs) o el generador de schema FAQ.
Lo que nuestro validador no hace
- No ejecuta JavaScript, por lo que el marcado agregado por GTM o por una aplicación de una sola página (SPA) le resulta invisible. Te avisa cuando la página usa GTM o parece una SPA.
- No compara el marcado con el texto visible. Un precio en JSON-LD que difiere del de la página es una infracción de las políticas, pero no se puede detectar automáticamente.
- No puede prometer un resultado enriquecido, nadie fuera de Google puede hacerlo.
Lecturas relacionadas
- Datos estructurados y Schema.org: qué son y qué tipos importan.
- Featured snippet: el bloque de respuesta que los datos estructurados no controlan.
- Revisión de metaetiquetas y vista previa del snippet: el resto de cómo se ve una página en la búsqueda.