Verificación de datos estructurados
Escribe la dirección de una página. Leemos sus bloques JSON-LD, señalamos cualquier error de sintaxis, resumimos cada elemento y lo comparamos con las propiedades que piden los buscadores. Los tipos de microdatos y RDFa también se enumeran.
Una segunda copia de la página, escrita para máquinas
Enseña una página de producto a una persona y sabrá al instante cuál número es el precio y cuál las existencias. Un programa solo ve texto. Los datos estructurados le ahorran las suposiciones. Junto a la página visible, publicas los mismos datos como campos con etiqueta, usando nombres del vocabulario compartido de schema.org. Esto es un Product, su name es este, sus offers contienen un price de 49.00 en USD.
Hay tres maneras de escribirlo. JSON-LD pone todo en una sola etiqueta script, separada del diseño, y es la forma que recomienda Google. Microdata y RDFa reparten las etiquetas por las etiquetas HTML como atributos.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How tides work",
"datePublished": "2026-03-14T09:30:00+00:00",
"author": { "@type": "Person", "name": "Jane Doe" }
}
</script>Los buscadores usan estos campos para dibujar resultados más ricos, con estrellas de valoración, un precio, la foto de una receta o la fecha de un evento. Se llaman resultados enriquecidos.
Qué lee esta verificación
Nuestro servidor descarga la página una vez, hasta 3 MB, y no ejecuta sus scripts. Después trabaja en cuatro pasos.
- Sintaxis. Cada bloque JSON-LD pasa por un lector JSON estricto. En el primer fallo da la línea, el carácter y la causa probable: una coma antes de una llave de cierre, unas comillas dentro de un texto sin escapar, comillas tipográficas pegadas desde un procesador de texto, un comentario HTML, un salto de línea sin escapar. Un solo fallo basta para que el analizador descarte el bloque entero.
- Elementos. Las listas
@graphse abren para que cada elemento se muestre por separado, con su tipo y un resumen de sus propiedades. Una propiedad que apunta a otro elemento con@idse sigue cuando el destino está en la página. - Propiedades. En los tipos que alimentan un resultado enriquecido, el elemento se compara con una lista de propiedades obligatorias y recomendadas tomada de la documentación de Google.
- Valores. En cada elemento, las direcciones deben ser absolutas, las fechas y duraciones deben seguir ISO 8601,
@contextdebe ser schema.org y cada puntero@iddebe llevar a alguna parte.
Los microdatos (itemscope, itemtype) y el RDFa (typeof) se cuentan y se nombran por tipo. Sus propiedades no se validan.
Los tipos que comparamos y lo que necesitan
| Tipo | Obligatorio | Conviene saber |
|---|---|---|
| Article, NewsArticle, BlogPosting | Nada | Recomendado: headline, image, datePublished, dateModified, author como elemento con name y url. |
| Product | name, y uno de offers, review, aggregateRating | Una oferta necesita price; una valoración necesita ratingValue y un recuento. |
| BreadcrumbList | itemListElement con position, name, item | Desde 2025, Google muestra la ruta solo en los resultados de escritorio. |
| FAQPage | mainEntity: preguntas con una respuesta aceptada | Desde agosto de 2023, Google solo lo muestra en sitios conocidos de gobierno y salud. |
| HowTo | name, step | Retirado: Google dejó de mostrar este resultado en 2023. |
| LocalBusiness | name, address | No se muestran las estrellas de reseñas que publicas sobre ti mismo. |
| Event | name, startDate, location con una dirección | |
| Recipe | name, image | Los tiempos son duraciones: PT45M. |
| VideoObject | name, thumbnailUrl, uploadDate | |
| JobPosting | title, description, datePosted, hiringOrganization, jobLocation | Un empleo remoto sustituye la ubicación por jobLocationType y applicantLocationRequirements. |
| SoftwareApplication, WebApplication | name, offers con un precio, una valoración o una reseña | Un programa gratuito tiene un precio de 0. |
| WebSite | name, url | Alimenta el nombre del sitio. La acción del cuadro de búsqueda se retiró a finales de 2024. |
| Organization, Person | Nada | Recomendado: name, url, logo, sameAs para una organización. |
Los demás tipos se resumen y se comprueban sus valores, sin una lista de propiedades obligatorias.
Cómo reparar lo que muestra el informe
- Un fallo de sintaxis
- Los bloques editados a mano se rompen con las comas y las comillas. Genera el bloque con un codificador JSON (
json_encodeen PHP,JSON.stringifyen JavaScript) y toda esa familia de fallos desaparece. En un CMS, pega el JSON-LD en un campo de código. No uses nunca el editor visual para esto, porque convierte las comillas en tipográficas. - Falta una propiedad obligatoria
- Añádela, con el valor que un visitante puede ver en la página. Los buscadores comparan ambos, y un marcado que describe algo que la página no muestra puede acarrearte una acción manual.
- Una dirección relativa
- Escribe
https://www.example.com/img/cover.jpgcompleta, no/img/cover.jpg. - Una fecha que no es ISO 8601
- Primero el año, luego
T, luego la hora y el desfase respecto a UTC:2026-03-14T09:30:00+00:00. Un día solo,2026-03-14, también es válido. - Un puntero a ninguna parte
"author": {"@id": "…/#jane"}solo funciona si hay un elemento con ese@idexacto en la misma página. Añade el elemento o escribe el autor directamente.
Lo que esta verificación no puede decirte
Lee el HTML tal como se entrega. Los datos estructurados añadidos después con JavaScript o con un gestor de etiquetas son invisibles aquí, aunque Google puede verlos tras renderizar. Las imágenes no se descargan, así que una imagen rota o demasiado pequeña pasa inadvertida. Las listas de propiedades cubren los tipos de resultado más comunes. No cubren todos los tipos ni todos los campos opcionales.
Esto no es la Prueba de resultados enriquecidos de Google, y un informe limpio no promete un resultado enriquecido. Un marcado válido hace que la página sea elegible. Que aparezcan estrellas o un precio depende del buscador, de la consulta, de la calidad de la página y de políticas que cambian sin parar. Confírmalo en Search Console cuando la página esté indexada.
Preguntas frecuentes
¿Qué diferencia hay entre JSON-LD, microdata y RDFa?
Llevan el mismo vocabulario de schema.org en tres sintaxis. JSON-LD va en una sola etiqueta script, separada del diseño. Microdata y RDFa añaden atributos a las etiquetas HTML que rodean el texto visible. Google lee las tres y recomienda JSON-LD porque es la más fácil de mantener.
¿Los datos estructurados mejoran el posicionamiento?
No directamente. Ayudan al buscador a entender la página y la hacen elegible para resultados más ricos, que pueden atraer más clics. No la subirán de posición por sí solos.
¿Por qué no aparece mi marcado de preguntas frecuentes en Google?
Desde agosto de 2023, Google muestra los resultados enriquecidos de preguntas frecuentes solo en sitios de gobierno y de salud conocidos y con autoridad. En los demás sitios, un marcado FAQPage válido se lee y no tiene ningún efecto visible en los resultados. Los resultados de cómo hacerlo se eliminaron por completo ese mismo año.
¿Cómo encuentro un error de sintaxis en JSON-LD?
Pasa la página por esta verificación. Te da la línea y el carácter donde se detiene un analizador JSON, y la causa probable. Las más frecuentes son una coma antes de un } o un ] de cierre, unas comillas dobles dentro de un texto que deberían escribirse \", y comillas tipográficas que deja un editor de texto.
Mis datos estructurados son válidos. ¿Por qué no hay resultado enriquecido?
Un marcado válido te mete en la competición y nada más. La página debe estar indexada, el marcado debe coincidir con lo que ven los visitantes, el sitio debe inspirar suficiente confianza para ese tipo de resultado, y algunos tipos están limitados a ciertos sitios o se han retirado. Además, un marcado nuevo puede tardar días o semanas en detectarse.
¿Dónde va el script JSON-LD en la página?
En cualquier parte del HTML, en el <head> o en el <body>. Una página puede contener varios bloques, o un solo bloque que enumere varios elementos bajo @graph.