Datos estructurados (Schema): el traductor secreto entre tu web y Google
Google lee tu página. Google no entiende tu página. Al menos no como la entiendes tú. Los datos estructurados son la solución que inventaron los buscadores para dejar de adivinar.
Empecemos por el problema
Cuando un humano ve en tu web "abierto jueves a las 5:00 pm", entiende todo al instante. Cuando un robot lo ve, ve un montón de caracteres y tiene que adivinar si eso es un horario, un evento, el nombre de un plato o el título de una película de terror.
Y esto es más difícil de lo que parece. ¿De cuántas formas escribimos los humanos una simple fecha?
- January 10th, 2018
- 10 January, 2018
- Jan 10, 2018
- 01-10-2018
- 1/10/18
- "Este sábado a las 7pm"
Todas dicen lo mismo. Ninguna se parece a la otra. Y eso es solo la fecha. Ahora imagínate un menú de restaurante, con precios, alérgenos, horarios de happy hour y reseñas de clientes.
¿Qué son los datos estructurados?
Son unas líneas de código especiales que le agregas a tu página para dejarle clarísimo al buscador qué es cada cosa.
Mi definición favorita viene de SEO All-in-One For Dummies: agregar datos estructurados a tu HTML es como poner flechas de neón gigantes que le dicen al buscador cuáles son las personas, lugares y cosas de tu página. En el mundo del SEO a esas cosas se les llama entidades.
Es decir: en vez de escribir "Little Italy Kitchen — 1742 Wazee Street, Denver" y rezar para que
Google entienda que eso es el nombre de un negocio y no un plato de pasta, le escribes al costado,
en un lenguaje que sí entiende: "@type": "Restaurant",
"name": "Little Italy Kitchen". Cero ambigüedad.
Schema.org: el diccionario que todos firmaron
Google empezó a soportar formatos de datos estructurados en mayo de 2009, pero había un desastre: varios estándares compitiendo y encimándose entre ellos.
Entonces en 2011 pasó algo raro y hermoso: Google, Bing, Yandex y Yahoo se sentaron en la misma mesa y acordaron soportar un solo vocabulario estándar. Competidores feroces poniéndose de acuerdo. Eso casi nunca pasa.
Schema.org es la biblioteca donde vive documentado todo el código soportado. Es tu Biblia. Guárdala en favoritos.
Y como Schema exige orden, la fecha del ejemplo anterior tiene una sola forma válida: el formato
ISO 8601, que se ve así → 2018-01-10T17:00:00. Feo para el
humano, perfecto para la máquina. Por eso muchas veces vas a ver las dos versiones conviviendo: una
para el robot, otra para la persona.
Ojo: Schema no es un lenguaje, es un vocabulario
Esto confunde a muchísima gente. Piénsalo así:
- El vocabulario son las palabras:
Restaurant,name,address,priceRange. - El lenguaje es la gramática con la que las escribes.
Cuando marcas contenido usas las dos cosas juntas. Los lenguajes disponibles son tres:
| Lenguaje | Cómo funciona | Estado hoy |
|---|---|---|
| Microdata | Envuelve el texto visible con atributos HTML | Funciona, es parte del estándar HTML5 |
| RDFa | Similar a microdata, otros atributos | Funciona, menos usado |
| JSON-LD | Un bloque separado, invisible en la página | El recomendado por Google |
Así se ve Microdata, enredado con tu texto visible:
<div itemscope itemtype="https://schema.org/Restaurant">
<h1><span itemprop="name">Little Italy Kitchen</span></h1>
<span itemprop="description">Cocina italiana casera en el corazón de LoDo.</span>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">1742 Wazee Street</span>
<span itemprop="addressLocality">Denver</span>,
<span itemprop="addressRegion">CO</span>
</div>
Teléfono: <span itemprop="telephone">303-555-0142</span>
</div>Y así se ve JSON-LD, un bloquecito aparte que no toca tu diseño:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Little Italy Kitchen",
"description": "Cocina italiana casera en el corazón de LoDo.",
"address": {
"@type": "PostalAddress",
"streetAddress": "1742 Wazee Street",
"addressLocality": "Denver",
"addressRegion": "CO"
},
"telephone": "+1-303-555-0142"
}
</script>
¿Por qué Google prefiere JSON-LD? Porque las páginas modernas tienen estructuras HTML anidadas
monstruosas, y meter microdata en medio de ese laberinto genera muchísimos errores.
Con JSON-LD pones el bloque en el <head> y listo: es independiente del enredo de
divs de tu página.
¿Y para qué sirve? Los resultados enriquecidos
Aquí deja de ser teoría y empieza a ser dinero. Todos hemos visto esos resultados con estrellitas, precios, fotos de comida, tiempos de cocción. Google los llama Rich Results, y el libro Unfair Advantage los describe perfecto: son tan llamativos como un panel publicitario gigante en una carretera vacía.
El beneficio real: el CTR
Un snippet tradicional es solo texto. Un rich snippet agrega un elemento visual, y a veces hasta interactivo. Los buscadores han hecho pruebas extensivas y comprobaron que aumentan el click-through rate: a la gente le gusta ver más información antes de hacer clic.
Y aquí está el bonus escondido: ese CTR alto es en sí mismo una señal de calidad que Google observa. Entras por la puerta del diseño y sales por la de las señales de ranking.
Lo mejor de todo: puedes ganar clics aunque no estés en el top 3. Un resultado en posición 5 con 4,7 estrellas y una foto de lasaña le puede robar el clic a un resultado en posición 2 que es puro texto gris.
El otro beneficio: alimentar el Knowledge Graph
Ese panel a la derecha con teléfono, logo, horarios y fotos es el Knowledge Graph. Con schema puedes generar rich snippets, breadcrumbs y cajas de búsqueda, y meter datos directamente al Knowledge Graph y a Google Maps.
Esto tiene lógica de negocio para Google: si quiere la información más actualizada de un
restaurante, ¿de dónde la saca? ¿De un directorio de terceros que nadie actualiza desde 2019, o
directamente de la web del restaurante? Por eso LocalBusiness es tan importante para
negocios físicos: te permite manejar tu NAP, horarios y menús desde tu propia casa.
Y algo que nadie previó en 2011: te vuelves "AI friendly"
Los datos estructurados organizan tu contenido en datos legibles por máquina. En una época donde los buscadores y asistentes están cada vez más basados en modelos de lenguaje y en entender entidades, tener tu información en formato de máquina no es un lujo nerd.
→ Más sobre SEO y búsqueda con IA aquí
La pregunta del millón: ¿Google le da importancia al schema?
Sí. Pero hay que responder con precisión, porque aquí es donde la gente se emociona de más.
La respuesta incómoda
The Art of SEO lo dice sin anestesia: los datos estructurados ayudan a una mejor indexación pero no juegan un rol en el ranking.
Léelo otra vez. No es un factor de ranking directo. Poner schema no te sube tres posiciones mágicamente.
Es más: Google va a intentar extraer información de entidades de tu contenido tengas o no tengas schema. ¿Por qué? Porque los buscadores saben que los datos estructurados tienen cuatro problemas crónicos:
- Adopción: es difícil de implementar si no sabes código.
- Precisión: lo marcan humanos, y los humanos se equivocan.
- Consistencia: hasta el markup sin errores tiene diferencias de criterio sobre cómo categorizar.
- Confiabilidad: siempre habrá alguien tentado a hacer trampa para manipular rankings, y Google tiene acciones manuales listas para castigarlo.
Entonces, ¿vale la pena?
Rotundamente sí. Pero por las razones correctas:
- Sí mejora la indexación y la comprensión de tu contenido
- Sí te da resultados enriquecidos, que suben el CTR
- Sí alimenta el Knowledge Graph y los paneles locales
- Sí te prepara para la búsqueda semántica y los sistemas que vienen
La forma correcta de pensarlo: el schema no gana la carrera, pero hace que tu auto sea el único con los colores llamativos y el número bien pintado. Ganas visibilidad, no posición.
Cómo usarlo en tu web: los seis pasos
Paso 1: determina qué tipos aplican
Piensa qué páginas quieres marcar y busca el tipo apropiado en Schema.org (usa el buscador del sitio; la navegación es medio pobre).
La regla de oro: elige siempre el tipo más específico que exista.
- Restaurante → usa
Restaurant, noLocalBusiness - Libro → usa
Book, noCreativeWork - Abogado → usa
Lawyer, no el genérico
¿Por qué? Porque Schema.org funciona como una ontología: una clasificación de lo
genérico a lo específico, igual que esos cuadros del reino animal del colegio.
Thing > Organization > LocalBusiness > FoodEstablishment > Restaurant.
Mientras más bajes en el árbol, más precisión le das al buscador.
Paso 2: mapea la información a las propiedades
Para cada tipo de página, haz una lista detallada: este texto es name, este número es
telephone, esta imagen es image, este horario es
openingHoursSpecification.
Aquí surge la pregunta clásica: ¿puedo marcar datos que no se ven en la página? La respuesta: muy poco, y con cuidado. Idealmente quieres altísima consistencia entre lo que marcas y lo que el usuario ve. Marcar montones de datos invisibles es conceptualmente lo que haría un spammer, y por eso a los buscadores no les gusta.
La única razón válida es dar contexto que para un humano es obvio pero para el robot no. El ejemplo
clásico: si muestras 4 estrellas, el humano entiende que la escala es de 5. El robot no. Por eso
aggregateRating tiene worstRating y bestRating.
display:none o
visibility:hidden para esconder markup es una excelente forma de ganarte una
penalización. Y JSON-LD no es un atajo para esconder texto: las guidelines exigen
que el markup coincida con lo que está en la página. Si marcas un logo, que sea el mismo logo de la
página, no una imagen promocional distinta.
Paso 3: elige el formato
Ya lo discutimos: usa JSON-LD. Si tu CMS tiene soporte nativo de Schema, puede que solo tengas que configurar unos parámetros.
¿No sabes código? Existe el Structured Data Markup Helper de Google: apuntas y haces clic en los elementos de tu página y él genera el código. Pero tiene dos limitaciones: la información marcada con esa herramienta solo la ve Google, no otros buscadores; y el editor visual es más limitado que escribir el markup a mano, porque no expresa estructuras complejas.
Paso 4: implementa
Aquí se le da vida al invento: ajustar el CMS, actualizar plantillas, modificar los scripts que generan las páginas.
Paso 5: prueba
Esto no es opcional. La forma difícil es revisar el HTML generado a mano. La fácil es el Rich Results Test de Google, que reemplazó al viejo Structured Data Testing Tool. Le das una URL o pegas el HTML, y te dice qué encontró y qué errores tienes.
Buena noticia para los nerviosos: los buscadores entienden que la mayoría de webmasters no son expertos en ontologías. Son bastante hábiles descifrando qué quisiste decir aunque haya errores. Apunta a ser preciso, pero no necesitas markup perfecto para tener éxito.
Paso 6: monitorea
Revisa el informe de datos estructurados en Search Console después de que rastreen tus cambios. Si algo cambia, fíjate si Google anunció cambios en cómo trata ese tipo, lee foros del sector a ver si otros vieron lo mismo, y vuelve a pasar tu página por el Rich Results Test.
Ejemplo completo: Little Italy Kitchen
The Art of SEO recomienda algo muy específico para búsqueda local: agrega el bloque a la página a la que apunta tu Google Business Profile. No hace falta ponerlo en todas las páginas, salvo que tengas varias sedes con páginas separadas, y ahí cada una lleva su propio bloque.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Little Italy Kitchen",
"image": "https://littleitalykitchen.com/fotos/fachada-lodo.jpg",
"url": "https://littleitalykitchen.com/",
"telephone": "+13035550142",
"priceRange": "$$",
"servesCuisine": ["Italian", "Southern Italian"],
"address": {
"@type": "PostalAddress",
"streetAddress": "1742 Wazee Street",
"addressLocality": "Denver",
"addressRegion": "CO",
"postalCode": "80202",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 39.7508,
"longitude": -104.9995
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday"],
"opens": "16:30",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday", "Saturday"],
"opens": "16:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "12:00",
"closes": "21:00"
}
],
"menu": "https://littleitalykitchen.com/menu",
"acceptsReservations": "True",
"sameAs": [
"https://www.facebook.com/littleitalykitchendenver",
"https://www.instagram.com/littleitalykitchen"
]
}
</script>Tres detalles que la gente olvida:
sameAsconecta tu web con tus perfiles sociales. Es como decirle a Google "todos estos soy yo". Cohesión de identidad en la red.geocon coordenadas ayuda muchísimo en búsqueda local, donde la proximidad es de los factores más influyentes.servesCuisineen un array. Si un turista busca "southern italian food Denver", ya sabes por qué importa.
Otros schemas que debería usar
Reseñas y ratings (AggregateRating). El rating de estrellas es de los
rich snippets más potentes para el CTR. Pero ojo: para conseguirlo tienes que tener reseñas
reales en la página. Nada de inventar estrellitas. Y se pueden anidar dentro de otro tipo
de schema.
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "312",
"bestRating": "5",
"worstRating": "1"
}Breadcrumbs (BreadcrumbList). Esa rutita tipo
Inicio › Menú › Pastas › Cacio e Pepe. Google a veces las genera solo
si confía en tu sitio, pero conviene marcarlas igual. Cualquier sitio con más de un nivel de
estructura debería usarlas.
Eventos (Event). La noche de degustación de vinos toscanos, la clase de
pasta fresca. Cuidado grande aquí: el Event schema no se puede usar para
ofertas de venta ni cupones. Hacerlo resulta en una penalización manual. "2x1 en pizzas" no
es un evento; la cena maridaje del 15 de octubre sí. Además funciona mejor si el markup está en una
página de eventos o calendario, no en un par de etiquetas sueltas en la portada.
Recetas (Recipe). Si abres un blog con la receta del ragú, genera esos
resultados con foto, tiempo de cocción y calorías. Pero lee las guidelines específicas antes: Google
ha penalizado sitios por violarlas.
FAQ. "¿Tienen opciones sin gluten?", "¿hay estacionamiento?", "¿aceptan grupos grandes?". Oro puro para un restaurante que recibe turistas.
→ Más sobre breadcrumbs y arquitectura aquí · Más sobre SEO local aquí
Los tipos de Schema que Google soporta
La lista cambia constantemente, pero este es el panorama:
Article · Book · Breadcrumb · Carousel · Course · Dataset · Education Q&A · Employer aggregate rating · Estimated salary · Event · Fact check · FAQ · Home activities · How-to · Image metadata · Job posting · Learning video · Local business · Logo · Math solvers · Movie · Practice problems · Product · Q&A · Recipe · Review snippet · Sitelinks search box · Software app · Speakable · Subscription and paywalled content · Video
Dato histórico: Google dejó de soportar el formato data-vocabulary.org en febrero de 2021. Si heredas una web vieja con ese markup, hay que migrarla.
Las reglas para no meterte en problemas
- Tu sitio debe estar libre de errores. Sí, incluso los que no tienen que ver con schema.
- Nada de markup escondido. Todo el contenido marcado debe ser visible.
- El schema debe representar el contenido principal de la página. Si quieres rich results de eventos, márcalos en una página de eventos, no en tu portada.
- No nombres tus clases CSS igual que los tags de Microdata. Confunde a tus propios desarrolladores y a los parsers de los buscadores.
- Los datos de producto no siempre generan rich results sin reseñas.
- Valida siempre con el Rich Results Test antes de publicar, y revisa Search Console después.
- Cuidado al tocar código. Un punto mal puesto puede romper el sitio en vivo.
Pero el schema no reemplaza al buen SEO
Si no implementas datos estructurados, ¿estás perdido? No. The Art of SEO responde así: haz todo tu SEO pensando primero en el humano y segundo en el buscador.
- Que tu SEO on-page ayude al lector a navegar y entender tu contenido de un vistazo
- Que tus keywords, sinónimos y entidades hagan lo mismo
- Que tus enlaces y sus anchor texts llenen los huecos de contexto
- Si tienes local físico, que toda la información esté en la página: nombre, dirección, teléfono
- Usa Google Business Profile y mantén una presencia coherente en toda la web
El schema es el amplificador, no la canción. Si tu contenido es malo, marcarlo perfectamente solo hará que Google entienda con precisión milimétrica que tu contenido es malo.
Pero si tu contenido es bueno y además está estructurado, ahí es donde Little Italy Kitchen aparece con foto, estrellas, horario y botón de reserva mientras la competencia aparece como tres líneas de texto gris.
Bibliografía
- 2018_Jan_UFA_Book_Local_Search.pdf — Unfair Advantage Book on Winning the Search Engine Wars, Local Search Edition, pp. 92–100: historia de los datos estructurados y el acuerdo de 2011 entre Google, Bing, Yandex y Yahoo; el ejemplo de las múltiples formas de escribir una fecha y el requisito de ISO 8601; la comparación de los rich results con un panel publicitario en carretera vacía; tipos de rich results; requisitos de Google; ejemplos de Microdata y JSON-LD; la advertencia sobre el Event schema y los cupones; y el consejo de mirar el código fuente de los rich results que ya funcionan.
- theartofseo.txt — The Art of SEO (Enge, Spencer, Stricchiola).
pp. 251–252: tipos de markup soportados e impacto de los rich snippets en el CTR. pp. 327–328:
el rol de los datos estructurados en la indexación frente al ranking, y los cuatro problemas
crónicos (adopción, precisión, consistencia y confiabilidad). pp. 329–345: Schema.org en
profundidad, la ontología de lo genérico a lo específico, los seis pasos de implementación, la
regla sobre marcar datos no visibles, la advertencia sobre
display:none, las limitaciones del Structured Data Markup Helper, el Rich Results Test y el monitoreo en Search Console. pp. 592–593: bloque JSON-LD de ejemplo para un restaurante y la recomendación de colocarlo en la página vinculada al perfil de negocio. - seoallinone.txt — SEO All-in-One For Dummies. Libro 4, Capítulo 4, pp. 275–279: la analogía de las flechas de neón, el concepto de entidades, el Structured Data Markup Helper y la relación con la búsqueda semántica.
- Inbound_Marketing_and_SEO_Insights_from_the_Moz_Blog.pdf — Capítulo 2, "Schema.org: Why You're Behind If You're Not Using It" (Craig Bradford), pp. 23–29: la distinción entre vocabulario y lenguaje, los tres lenguajes disponibles, mitos sobre los rich snippets y cinco aplicaciones infrautilizadas de Schema, incluidas las reseñas anidadas y los breadcrumbs.
- TheLocalSEOBible_2023Edition.pdf — p. 9: factores principales de ranking local, incluida la proximidad como uno de los más influyentes.
Comentarios