Datos estructurados de receta (Recipe
, HowTo
, ItemList
)
Ayuda a los usuarios a encontrar el contenido de tu receta; para ello, usa datos estructurados para brindarle información a Google. Cuando proporcionas datos, como calificaciones de usuarios, tiempos de preparación o cocción, o información nutricional, Google puede comprender mejor tu receta y presentarla a los usuarios de formas interesantes. Las recetas pueden aparecer en los resultados de la Búsqueda de Google y Google Imágenes.
![Ilustración de cómo pueden aparecer los resultados enriquecidos de recetas en la Búsqueda de Google. Contiene 4 resultados enriquecidos de distintos sitios web, con detalles sobre cuánto tiempo se necesita para cocinar la receta y una imagen, además de opiniones.](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/recipe-rich-result-google-search.png?authuser=3&hl=es-419)
![Ilustración de cómo pueden aparecer las recetas en Google Imágenes. Hay 6 imágenes en las que se muestran diferentes comidas, con 3 resultados que contienen una insignia de receta que le indica al usuario que es una receta.](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/recipes-in-google-images.png?authuser=3&hl=es-419)
Según el lenguaje de marcado que uses en tu contenido, podrás obtener las siguientes mejoras en tus recetas:
Mejoras en la receta | |
---|---|
Carrusel de host de recetas: Agrega datos estructurados de ItemList para permitir que los usuarios exploren las páginas de tu galería de recetas. |
![]() |
Cómo agregar datos estructurados
Los datos estructurados son un formato estandarizado para proporcionar información sobre una página y clasificar su contenido. Si aún no estás familiarizado con los datos estructurados, obtén más información sobre su funcionamiento.
A continuación, presentamos una descripción general para aprender a compilar, probar y actualizar datos estructurados.
- Agrega las propiedades obligatorias. Según el formato que uses, obtén información sobre las ubicaciones donde puedes insertar datos estructurados en la página.
- Sigue los lineamientos.
- Valida tu código con la Prueba de resultados enriquecidos y corrige cualquier error crítico. Procura también corregir los problemas no críticos que puedan marcarse en la herramienta, ya que pueden ayudar a mejorar la calidad de los datos estructurados (sin embargo, esto no es necesario para que se muestren los resultados enriquecidos).
- Implementa algunas páginas que incluyan tus datos estructurados y utiliza la Herramienta de inspección de URLs para probar el modo en el que Google ve la página. Asegúrate de que Google pueda acceder a la página y que no esté bloqueada por un archivo robots.txt, una etiqueta
noindex
ni requisitos de acceso. Si la página se ve bien, puedes pedirle a Google que vuelva a rastrear tus URLs. - Para mantener informado a Google sobre los cambios futuros, te recomendamos que envíes un mapa del sitio. Puedes automatizar este proceso con la API de Search Console Sitemap.
Ejemplos
Aquí tienes algunos ejemplos de recetas que usan código JSON-LD.
Receta en la Búsqueda
Aquí tienes un ejemplo de una página que puede aparecer en la Búsqueda.
<html> <head> <title>Non-Alcoholic Piña Colada</title> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "Recipe", "name": "Non-Alcoholic Piña Colada", "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "author": { "@type": "Person", "name": "Mary Stone" }, "datePublished": "2024-03-10", "description": "This non-alcoholic pina colada is everyone's favorite!", "recipeCuisine": "American", "prepTime": "PT1M", "cookTime": "PT2M", "totalTime": "PT3M", "keywords": "non-alcoholic", "recipeYield": "4 servings", "recipeCategory": "Drink", "nutrition": { "@type": "NutritionInformation", "calories": "120 calories" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "5", "ratingCount": "18" }, "recipeIngredient": [ "400ml of pineapple juice", "100ml cream of coconut", "ice" ], "recipeInstructions": [ { "@type": "HowToStep", "name": "Blend", "text": "Blend 400ml of pineapple juice and 100ml cream of coconut until smooth.", "url": "https://example.com/non-alcoholic-pina-colada#step1", "image": "https://example.com/photos/non-alcoholic-pina-colada/step1.jpg" }, { "@type": "HowToStep", "name": "Fill", "text": "Fill a glass with ice.", "url": "https://example.com/non-alcoholic-pina-colada#step2", "image": "https://example.com/photos/non-alcoholic-pina-colada/step2.jpg" }, { "@type": "HowToStep", "name": "Pour", "text": "Pour the pineapple juice and coconut mixture over ice.", "url": "https://example.com/non-alcoholic-pina-colada#step3", "image": "https://example.com/photos/non-alcoholic-pina-colada/step3.jpg" } ], "video": { "@type": "VideoObject", "name": "How to Make a Non-Alcoholic Piña Colada", "description": "This is how you make a non-alcoholic piña colada.", "thumbnailUrl": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "contentUrl": "https://www.example.com/video123.mp4", "embedUrl": "https://www.example.com/videoplayer?video=123", "uploadDate": "2024-02-05T08:00:00+08:00", "duration": "PT1M33S", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": { "@type": "WatchAction" }, "userInteractionCount": 2347 }, "expires": "2024-02-05T08:00:00+08:00" } } </script> </head> <body> </body> </html>
Carrusel
Aquí tienes un ejemplo de una página de resumen de recetas (incluye una lista de recetas) con datos estructurados de itemList
. Es posible que este contenido sea apto para mostrarse en una cuadrícula en los resultados de la Búsqueda.
<html> <head> <title>Grandma's Best Pie Recipes</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": 1, "url": "https://example.com/apple-pie.html" }, { "@type": "ListItem", "position": 2, "url": "https://example.com/blueberry-pie.html" }, { "@type": "ListItem", "position": 3, "url": "https://example.com/cherry-pie.html" }] } </script> </head> <body> </body> </html>
Lineamientos
Debes seguir los lineamientos generales de datos estructurados para que tu marca pueda aparecer en los resultados de la búsqueda.
Los siguientes lineamientos se aplican a los datos estructurados de Recipe
.
- Usa datos estructurados de
Recipe
para el contenido relacionado con la preparación de un plato en particular. Por ejemplo, "exfoliación facial" o "ideas para fiestas" no son nombres válidos para un plato. - Para que tus recetas aparezcan en un carrusel o una cuadrícula, debes seguir estos lineamientos:
- Proporciona datos estructurados del tipo
ItemList
para resumir las recetas de tu lista. Puedes proporcionar los datos deItemList
por separado o junto con datos estructurados de receta. - Tu sitio debe tener una página de resumen en la que se indiquen todas las recetas de la colección. Por ejemplo, cuando un usuario haga clic en el vínculo del resumen que aparezca en los resultados de la Búsqueda, se lo deberá redireccionar a una página de tu sitio en la que se muestren todas las recetas relacionadas con su búsqueda.
- Proporciona datos estructurados del tipo
Definiciones de tipos de datos estructurados
Debes incluir las propiedades obligatorias si quieres que tu contenido pueda mostrarse como resultado enriquecido en la Búsqueda de Google. También puedes incluir las propiedades recomendadas para agregar más información al respecto y así brindar una mejor experiencia al usuario.
Recipe
Marca el contenido de las recetas con las siguientes propiedades del tipo Recipe
de schema.org. La definición completa de Recipe
está disponible en schema.org/Recipe.
Las propiedades compatibles con Google son las siguientes:
Propiedades obligatorias | |
---|---|
image
|
Corresponde a la imagen del plato terminado. Lineamientos de imagen adicionales:
Por ejemplo: "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ] |
name |
Corresponde al nombre del plato. |
Propiedades recomendadas | |
---|---|
aggregateRating |
Corresponde a la anotación del promedio de calificaciones asignadas al elemento. Sigue los lineamientos para los fragmentos de opiniones, así como la lista de propiedades de Si los datos estructurados de |
author |
Es el nombre de la persona o la organización que escribió la receta. Para ayudar a Google a comprender mejor a los autores en varias funciones, considera seguir las prácticas recomendadas de lenguaje de marcado de autor. |
cookTime |
Corresponde al tiempo de cocción del plato, en formato ISO 8601, si corresponde. Se debe usar siempre junto con |
datePublished |
Es la fecha en la que se publicó la receta en formato ISO 8601, si corresponde. |
description |
Corresponde a una breve descripción del plato. |
keywords
|
Corresponde a otros términos de la receta, como la estación ("verano"), el día festivo ("Halloween") y otras palabras que la describen ("rápida", "fácil", "original"). Lineamientos adicionales
|
nutrition.calories |
Corresponde a la cantidad de calorías de cada porción que rinde la receta. Si se define |
prepTime |
Corresponde al tiempo de preparación de los ingredientes y el lugar de trabajo para el plato, en formato ISO 8601, si corresponde. Se debe usar siempre junto con |
recipeCategory |
Corresponde al tipo de comida o plato de la receta. Por ejemplo: "cena", "plato principal" o "postre, bocadillo". |
recipeCuisine |
Corresponde a la región asociada con la receta. Por ejemplo, "francesa" "mediterránea" o "americana". |
recipeIngredient |
Corresponde a un ingrediente que se usa en la receta. Por ejemplo: "recipeIngredient": [ "1 (15 ounce) package double crust ready-to-use pie crust", "6 cups thinly sliced, peeled apples (6 medium)", "3/4 cup sugar", "2 tablespoons all-purpose flour", "3/4 teaspoon ground cinnamon", "1/4 teaspoon salt", "1/8 teaspoon ground nutmeg", "1 tablespoon lemon juice" ] Lineamientos adicionales:
|
recipeInstructions
|
Corresponde a los pasos para preparar el plato. Existen varias opciones para configurar el valor de
Lineamientos adicionales
|
recipeYield |
Es la cantidad producida por la receta, si corresponde. Especifica la cantidad de porciones que rinde la receta con un valor numérico. Si deseas usar una unidad diferente (por ejemplo, la cantidad de ingredientes), puedes incluir rendimientos adicionales. Este es un requisito si especificas información nutricional por porción (por ejemplo, Ejemplo "recipeYield": [ "6", "24 cookies" ] |
totalTime |
Corresponde al tiempo total que lleva preparar y cocinar el plato, en formato ISO 8601, si corresponde. Usa |
video
|
VideoObject
El video muestra los pasos para preparar el plato. Sigue la lista de propiedades de video obligatorias y recomendadas. |
HowToSection
Usa HowToSection
para agrupar una secuencia de pasos (o subsecciones) que forman parte de las instrucciones de una receta. Especifica HowToSection
directamente dentro de la definición de la propiedad recipeInstructions
, o bien como un itemListElement
de otra HowToSection
.
El tipo HowToSection
define una sección de una sola receta y contiene un solo paso o varios. No uses HowToSection
para definir diferentes recetas del mismo plato; en su lugar, usa HowToSection
como parte de una sola receta. Para enumerar varias recetas de un mismo plato, usa varios objetos Recipe
. Por ejemplo, para hacer una tarta de manzana de diferentes maneras, enuméralas como varios objetos Recipe
, no como objetos HowToSection
.
La definición completa de HowToSection
está disponible en schema.org/HowToSection.
Propiedades obligatorias | |
---|---|
itemListElement
|
HowToStep
Corresponde a una lista de los pasos detallados para la sección o subsecciones. Por ejemplo, es posible que una receta de pizza tenga una sección de pasos para preparar la masa, una para los ingredientes y otra para la combinación y la cocción. Ejemplo: { "@type": "HowToSection", "name": "Assemble the pie", "itemListElement": [ { "@type": "HowToStep", "text": "In large bowl, gently mix filling ingredients; spoon into crust-lined pie plate." }, { "@type": "HowToStep", "text": "Top with second crust. Cut slits or shapes in several places in top crust." } ] } |
name
|
Text
Corresponde al nombre de la sección. |
HowToStep
Usa HowToStep
para agrupar una o más oraciones que expliquen cómo hacer parte de la receta, si esto tiene sentido para tu contenido. Define la propiedad text
con las oraciones, o bien define itemListElement
con un objeto HowToDirection
o HowToTip
para cada oración.
Usa lenguaje de marcado en los pasos de la receta con las siguientes propiedades del tipo HowToStep. Especifica un HowToStep
directamente dentro de la definición de la propiedad recipeInstructions
o como un itemListElement
de una HowToSection
.
La definición completa de HowToStep
está disponible en schema.org/HowToStep.
Propiedades obligatorias | |
---|---|
itemListElement
|
HowToDirection o HowToTip Corresponde a una lista de pasos secundarios detallados, que incluye instrucciones o sugerencias. Es opcional si se usa |
text
|
Text
Corresponde al texto con todas las instrucciones de este paso. Es opcional si se usa
|
Propiedades recomendadas | |
---|---|
image
|
ImageObject o URL Corresponde a una imagen del paso. Lineamientos de imagen adicionales:
|
name
|
Text
Es la palabra o frase corta que resume un paso (por ejemplo, "Montar base del pastel"). No uses texto que no sea descriptivo (por ejemplo "Paso 1: [texto]") ni números de pasos con otro formato (por ejemplo, "1. [texto]"). |
url
|
URL
Corresponde a una |
video
|
VideoObject o Clip Corresponde a un video para este paso o un clip del video. Para |
HowToDirection
y HowToTip
Usa HowToDirection
y HowToTip
para describir instrucciones o sugerencias, si corresponde.
Ambos elementos tienen las mismas propiedades obligatorias y recomendadas.
Las definiciones completas de HowToDirection
y HowToTip
están disponibles en schema.org/HowToDirection y schema.org/HowToTip.
Propiedades obligatorias | |
---|---|
text
|
Text
Corresponde al texto del paso o la sugerencia. |
ItemList
Además de las propiedades de recetas, agrega los siguientes elementos a las listas específicas de hosts. Si bien no es obligatorio incluir ItemList
, debes agregar las siguientes propiedades si quieres que la receta aparezca en el carrusel de un host. Para obtener más información sobre el carrusel de host, consulta Carrusel.
La definición completa de ItemList
está disponible en schema.org/ItemList.
Propiedades obligatorias | |
---|---|
itemListElement
|
Corresponde a la anotación para una página de un solo elemento. |
ListItem.position
|
Corresponde a la posición ordinal de la página del elemento en la lista. Por ejemplo: "itemListElement": [ { "@type": "ListItem", "position": 1, }, { "@type": "ListItem", "position": 2, } ] |
ListItem.url
|
Es la URL canónica de la página del elemento. Cada elemento debe tener una URL única. |
Cómo supervisar resultados enriquecidos con Search Console
Search Console es una herramienta que te ayuda a supervisar el rendimiento de tus páginas en la Búsqueda de Google. Si bien no es necesario que te registres en Search Console para que se incluya tu contenido en los resultados de la Búsqueda de Google, puede ayudarte a comprender y mejorar la forma en que Google ve tu sitio. Te recomendamos que revises Search Console en los siguientes casos:
- Después de implementar datos estructurados por primera vez
- Después de lanzar plantillas nuevas o actualizar código
- Para analizar tráfico periódicamente
Después de implementar datos estructurados por primera vez
Después de que Google haya indexado tus páginas, busca problemas con el informe de estado de resultados enriquecidos relevante. Lo ideal es que haya un aumento de los elementos válidos y no de los elementos no válidos. Si encuentras problemas en los datos estructurados, haz lo siguiente:
- Corrige los elementos no válidos.
- Inspecciona una URL publicada para verificar si persiste el problema.
- Solicita una validación desde el informe de estado.
Después de lanzar plantillas nuevas o actualizar código
Cuando realices cambios significativos en tu sitio web, supervisa los aumentos en los elementos no válidos de datos estructurados.- Si notas un aumento en la cantidad de elementos no válidos, tal vez se deba a que implementaste una plantilla que no funciona o a que tu sitio interactúa con la plantilla actual de una forma diferente e incorrecta.
- Si notas una disminución de los elementos válidos (que no coincide con un aumento en la cantidad de elementos no válidos), es posible que ya no estés incorporando datos estructurados en tus páginas. Usa la Herramienta de inspección de URLs para saber cuál es la causa del problema.
Cómo analizar el tráfico periódicamente
Analiza el tráfico de la Búsqueda de Google con el Informe de rendimiento. Los datos te mostrarán con qué frecuencia tu página aparece como resultado enriquecido en la Búsqueda, con qué frecuencia los usuarios hacen clic en ella y cuál es la posición promedio en la que apareces en los resultados de la búsqueda. También puedes extraer esos resultados automáticamente con la API de Search Console.Solución de problemas
Si tienes problemas para implementar o depurar datos estructurados, te brindamos algunos recursos que podrían resultarte útiles.
- Si usas un sistema de administración de contenido (CMS), o si alguien más se encarga de tu sitio, pídele que te ayude. Asegúrate de reenviarle cualquier mensaje de Search Console que detalle el problema.
- Google no garantiza que se muestren en los resultados de la búsqueda las funciones que consumen datos estructurados. Para obtener una lista de los motivos comunes por los que Google podría no mostrar tu contenido en un resultado enriquecido, consulta los Lineamientos generales de datos estructurados.
- Es posible que haya un error en los datos estructurados. Consulta la lista de errores de datos estructurados.
- Si recibiste una acción manual de datos estructurados en tu página, estos datos se ignorarán (aunque la página puede seguir apareciendo en los resultados de la Búsqueda de Google). Para solucionar los problemas con datos estructurados, usa el Informe de acciones manuales.
- Vuelve a consultar los lineamientos para determinar si tu contenido no cumple con ellos. El problema puede deberse a contenido generador de spam o a un uso fraudulento del lenguaje de marcado. Sin embargo, es posible que no sea un problema de sintaxis, por lo que la prueba de resultados enriquecidos no podrá identificar estos problemas.
- Soluciona problemas de resultados enriquecidos faltantes o disminución del total de resultados enriquecidos.
- Espera un tiempo suficiente para que se vuelvan a realizar el rastreo y la indexación. No olvides que pueden transcurrir varios días después de publicar una página para que Google la encuentre y la rastree. Si tienes preguntas generales sobre el rastreo y la indexación, consulta las Preguntas frecuentes sobre el rastreo y la indexación de la Búsqueda de Google.
- Publica una pregunta en el foro de la Central de la Búsqueda de Google.