¿Qué hace astudio · Marcado Schema.org?
<root> = dos niveles por encima del directorio base de esta habilidad. Verificación: <root>/scripts/schema_lint.py. Estado de los tipos:
<root>/reference/facts.md § Estado de los resultados enriquecidos.
Los datos estructurados no son necesarios para las respuestas de IA (Google lo afirma), pero establecen los hechos de manera inequívoca: quién eres, cuánto cuesta el producto, dónde estás, quién escribió el artículo. Esto ayuda a los resultados enriquecidos, los paneles de conocimiento y a cualquier consumidor que lea JSON-LD. Solo ayudan cuando coinciden con lo que muestra la página.
Flujo de trabajo
- Inventariar las plantillas de página (inicio, categoría, producto, artículo, contactos, eventos, vacantes).
- Verificar lo que existe:
schema_lint.py <url>por plantilla. - Elegir los tipos por plantilla (tabla más abajo). Un
@graphpor página; asignar valores@idestables a las entidades (https://site.ru/#organization) y referenciarlas en lugar de repetirlas. - Escribir el JSON-LD desde la misma fuente de datos que la página (campos del CMS), nunca copiando números manualmente.
- Validar:
schema_lint.py, luego Google Rich Results Test y Schema Markup Validator, y para Rusia el validador de microdatos de Yandex Webmaster. Pegar los resultados en el informe. - Mostrar el diff; desplegar después de una confirmación.
Tipos por plantilla
| Plantilla | Tipos | Debe coincidir con la página |
|---|---|---|
| Inicio | Organization (o subtipo LocalBusiness), WebSite | nombre, logotipo, contactos; sameAs a perfiles oficiales (VK, Telegram, Яндекс Карты, 2ГИС, Wikipedia) |
| Producto | Product + Offer (+ AggregateRating, Review si se muestran) | precio, moneda RUB, disponibilidad, valor y recuento de la valoración |
| Categoría | BreadcrumbList, ItemList (opcional) | texto de la miga de pan |
| Artículo / blog | Article/BlogPosting + Person (autor) | titular, nombre del autor con una página de perfil, fechas |
| Contactos / sucursal | Subtipo LocalBusiness con address, geo, openingHoursSpecification, telephone | la misma NAP que en mapas y directorios |
| Página de video | VideoObject | miniatura, fecha de subida, duración |
| Eventos / cursos / trabajos | Event, Course, JobPosting | fechas, precio, ubicación, salario |
| Página de foro Q&A | QAPage | preguntas y respuestas reales de usuarios |
Tipos retirados o sin efecto (no los vendas como beneficios)
FAQPage (sin resultado enriquecido de Google desde 2026-05-07), HowTo (2023), ClaimReview, EstimatedSalary, Learning Video, SpecialAnnouncement, Vehicle Listing, Book Actions (2025-06-12). Conserva FAQPage/HowTo solo si reflejan contenido visible y alguien más los consume; di que no tienen efecto en SERP de Google.
Reglas
- Marca solo lo que los usuarios pueden ver. Valoraciones ocultas, reseñas autocomplacientes de tu propia organización y precios que difieran de la página violan la política de Google y pueden conllevar una acción manual.
- Precios: número sin espacios en
price("4990"),priceCurrency: "RUB"; muestra el mismo precio en el HTML. - Fechas en ISO 8601 con zona horaria (
2026-11-06T10:00:00+03:00). - Una entidad de organización por sitio, referenciada por
@id.
Ejemplo: LocalBusiness
{"@context":"https://schema.org","@graph":[{"@type":"CafeOrCoffeeShop","@id":"https://zerno.ru/#org",
"name":"Кофейня «Зерно»","url":"https://zerno.ru/","logo":"https://zerno.ru/logo.svg","telephone":"+7 843 000-00-00",
"address":{"@type":"PostalAddress","streetAddress":"ул. Баумана, 1","addressLocality":"Казань","postalCode":"420111","addressCountry":"RU"},
"geo":{"@type":"GeoCoordinates","latitude":55.7887,"longitude":49.1221},
"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],"opens":"08:00","closes":"22:00"}],
"sameAs":["https://vk.com/zerno","https://yandex.ru/maps/org/000"]}]}