Cómo funciona esta comprobación
Scanaris busca en el HTML de tu página todas las etiquetas <script type="application/ld+json">, intenta interpretar cada una como JSON y comprueba que el resultado contenga @context o @type, que es lo que distingue un bloque de schema.org de un JSON cualquiera. Basta con que uno sea válido para que no haya hallazgo. Si no hay ninguno, o los que hay no se pueden interpretar (una coma de más, comillas sin cerrar), abre un hallazgo de severidad baja. No evalúa si el tipo elegido es el adecuado ni si faltan propiedades; solo si existe algo que Google y los asistentes de IA puedan leer.
Por qué importa
Los datos estructurados son la forma de decirle a una máquina, sin ambigüedad, qué es tu página: esto es una organización llamada así con este logotipo, esto es un artículo escrito por esta persona en esta fecha, esto es un producto a este precio con estas valoraciones. Google los usa para los resultados enriquecidos (estrellas, precios, preguntas desplegables, migas de pan) y para entender entidades. Los asistentes de IA los usan para lo mismo pero con más peso, porque les ahorran interpretar el HTML: una página con Article y Organization bien definidos tiene más probabilidades de ser citada con atribución correcta que una donde el modelo tiene que adivinar quién la escribió. Es severidad baja porque no tenerlos no te saca de ningún índice; solo te hace más difícil de entender.
Cómo arreglarlo
En la home, como mínimo Organization y WebSite:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://tudominio.com/#org",
"name": "Tu empresa",
"url": "https://tudominio.com/",
"logo": "https://tudominio.com/logo.png",
"sameAs": ["https://github.com/tuempresa", "https://www.linkedin.com/company/tuempresa"]
},
{
"@type": "WebSite",
"url": "https://tudominio.com/",
"name": "Tu empresa",
"publisher": { "@id": "https://tudominio.com/#org" }
}
]
}
</script>
- Por tipo de página:
ArticleoBlogPostingen los posts (conauthor,datePublished,dateModified);Productconoffersen fichas de producto;SoftwareApplicationsi vendes software;FAQPagedonde haya preguntas y respuestas reales;BreadcrumbListpara las migas de pan. - Nuxt:
useHead({ script: [{ type: 'application/ld+json', innerHTML: JSON.stringify(data) }] })en cada página, o el módulo de schema.org que lo genera a partir de componentes. - Next.js: una etiqueta
<script type="application/ld+json">en el layout o la página con el JSON serializado. - WordPress: Yoast y Rank Math generan
Organization,WebSite,Articley migas de pan sin tocar código.
Los datos deben coincidir con lo que se ve en la página: Google penaliza marcar valoraciones o precios que no existen. Y el sameAs con tus perfiles públicos es lo que conecta tu entidad con lo que los modelos ya saben de ti en otras fuentes.
Comprueba que está arreglado
curl -s https://tudominio.com | grep -oE '<script type="application/ld\+json">[^<]*' | head -c 600
Debe salir tu JSON. Después pégalo en la prueba de resultados enriquecidos de Google o en el validador de schema.org: ambos te dicen si es sintácticamente correcto y qué propiedades recomendadas faltan.
Preguntas frecuentes
¿JSON-LD o microdatos en el HTML?
JSON-LD. Es el formato que Google recomienda, va en un bloque aparte sin ensuciar la plantilla y es el más fácil de generar desde cualquier framework.
Puse FAQPage y Google no muestra las preguntas desplegables.
Desde 2023 Google solo muestra ese resultado enriquecido a sitios gubernamentales y de salud. El marcado sigue siendo útil para que los asistentes de IA extraigan tus preguntas y respuestas, que es para lo que lo mide esta comprobación. Por qué unos sitios son citados y otros no lo cuenta datos estructurados y citas de IA.
¿Esto sustituye al título y la descripción?
No, los complementa. El título y la meta description siguen siendo lo que Google muestra; los mide metadatos SEO. Los datos estructurados son lo que las máquinas entienden además de eso.