Como implementar nuevos atributos dieteticos en google business profile y schema de menu en wordpress
La búsqueda local en Google es cada vez más precisa. Quien escribe en el móvil restaurante sin gluten cerca de mí, catering sin lactosa o panadería kosher no busca un listado genérico de cafeterías. Busca declaraciones dietéticas en las que pueda confiar, acceso rápido a los ingredientes e información clara sobre requisitos médicos o religiosos.
En octubre de 2026, Google añadió cuatro atributos dietéticos a las cartas de restaurantes en el Perfil de Empresa de Google (Google Business Profile, GBP): sin gluten, sin lácteos, halal y kosher. Se suman a las etiquetas vegetariano y vegano, que ya existían. Lisa Landsman, de Google, anunció el cambio en LinkedIn, y Search Engine Roundtable lo publicó el 13 de octubre de 2026. Su explicación fue breve: “Para millones de comensales con necesidades alimentarias específicas, comer fuera exige una planificación cuidadosa” (Lisa Landsman, Google, citada por Search Engine Roundtable, traducción propia). Las etiquetas se aplican a platos concretos y no al establecimiento en su conjunto. Por eso restaurantes, obradores, marcas de comida preparada y tiendas de alimentación en WooCommerce necesitan que los datos de la carta coincidan en el perfil y en la web WordPress.
Esta guía técnica muestra dónde se configuran las etiquetas en GBP, cómo las expone la Business Profile API, cómo marcar los mismos platos con Schema.org en WordPress y cómo describir productos dietéticos en un feed de Google Merchant Center.
Cuales son los nuevos atributos dieteticos disponibles en el perfil de empresa de google
Hasta esta actualización, las etiquetas dietéticas de una carta en GBP cubrían platos vegetarianos y veganos. Las personas con celiaquía, alergia a la leche o que siguen normas halal o kosher tenían que revisar fotos de cartas y reseñas para saber qué podían comer.
Las nuevas etiquetas se configuran por plato:
- Sin gluten: el plato se ofrece como sin gluten.
- Sin lácteos: el plato no contiene leche ni productos lácteos.
- Halal: el plato cumple las normas alimentarias islámicas.
- Kosher: el plato cumple las leyes alimentarias judías (kashrut).
El beneficio que señala Google es la visibilidad del propio plato. Según Landsman, los platos etiquetados destacan directamente en el perfil cuando alguien busca una dieta concreta. Google no ha publicado que los restaurantes sin etiquetas desaparezcan de los resultados filtrados, así que trate las etiquetas como una forma de mostrar los platos adecuados y no como un interruptor de posicionamiento.
Al mismo tiempo cambió la parte técnica. La entrada del registro de cambios de la Business Profile API del 9 de octubre de 2026 indica que la enumeración DietaryRestriction admite ahora los valores GLUTEN_FREE y DAIRY_FREE para elementos de carta. HALAL y KOSHER ya existían, junto con ORGANIC, VEGAN y VEGETARIAN.
Cómo añadir etiquetas dietéticas a los platos en el perfil de empresa de Google
Las etiquetas se gestionan en el editor de cartas, descrito en el artículo de ayuda de Google About the menu editor. La función está disponible para negocios de restauración. El proceso:
- Abra su Perfil de Empresa con la sesión iniciada como propietario o administrador.
- Seleccione Edit menu (así se llama el botón en la interfaz en inglés).
- Elija un plato existente o añada uno nuevo con nombre, descripción y precio. Los platos pueden agruparse en secciones como entrantes, principales y postres.
- Marque las etiquetas dietéticas que correspondan al plato y guarde.
El artículo de ayuda menciona algunas limitaciones que conviene conocer antes de empezar:
- Los cambios pueden tardar entre 24 y 48 horas en aparecer en Google Maps y en la Búsqueda.
- Si la carta llega al perfil mediante la Business Profile API, es posible que el editor no esté disponible en el perfil ni en la Búsqueda de Google. Elija una sola fuente de datos por ubicación.
- Puede subir una foto o un PDF de la carta y dejar que la IA genere secciones, platos, descripciones y precios. Google califica esta función de experimental y pide revisar el resultado antes de publicarlo, así que compruebe cada etiqueta que proponga.
- Cuando Google encuentra más de una fuente de carta, usted elige cuál es pública en la pestaña Full menu del editor.
- Google puede transcribir datos de la carta desde su web. Los platos mal transcritos se corrigen en el editor.
- El enlace a la carta se configura en la información de la empresa, dentro de los datos de contacto, como enlace de la carta.
Esa nota sobre la transcripción es la razón práctica por la que la carta en WordPress importa: si Google lee su web, los nombres de los platos, las descripciones y las declaraciones dietéticas de esa página pasan a ser materia prima para el perfil.
Cómo influyen las etiquetas dietéticas en la visibilidad en Google Maps y la búsqueda local
La página de ayuda de Google sobre posicionamiento local cita tres factores: relevancia, distancia y prominencia. Según Google, la relevancia mide en qué grado un Perfil de Empresa coincide con lo que alguien busca. La búsqueda pizza sin gluten cerca de mí es una cuestión de relevancia, y una carta en la que la pizza tiene nombre, descripción y etiqueta sin gluten da a Google material concreto para la coincidencia. La misma página afirma que no se puede solicitar ni pagar un mejor posicionamiento local y que más reseñas y buenas valoraciones pueden ayudar.
La distancia y la prominencia quedan fuera del alcance de la carta. Lo que usted controla es si los platos que busca el comensal existen como elementos estructurados con las etiquetas correctas, en el perfil y en la web desde la que Google puede transcribir datos. Un perfil con la carta fotografiada y sin elementos da al sistema de coincidencia mucho menos que un perfil con platos etiquetados.
La coherencia también protege al comensal. Si un plato está etiquetado como sin gluten en GBP y la carta en WordPress dice que se fríe en una freidora compartida, una de las dos informaciones es falsa, y el comensal lo descubre en la mesa.
Como estructurar schema restaurant y menuitem con la propiedad suitablefordiet
Una carta publicada en PDF o como imagen estática oculta los platos a todo lo que lee texto. Para dar a Google los platos individuales y su clasificación dietética, marque la carta como un grafo Schema.org.
Tipos y propiedades principales:
@type: RestaurantoFoodEstablishment: identifica el establecimiento físico.hasMenu: vincula el establecimiento con el objeto de la carta.hasMenuSection: divide la carta en categorías (entrantes, principales, postres).hasMenuItem: describe un plato individual.suitableForDiet: indica la compatibilidad dietética con la enumeraciónRestrictedDiet.
La enumeración Schema.org RestrictedDiet tiene 11 valores. Para las nuevas etiquetas de GBP interesan:
https://schema.org/GlutenFreeDiethttps://schema.org/HalalDiethttps://schema.org/KosherDiethttps://schema.org/VegetarianDiethttps://schema.org/VeganDiet
Este es un ejemplo completo en JSON-LD para la web de un restaurante en WordPress:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Restaurant",
"@id": "https://wppoland.com/local/#restaurant",
"name": "Bistro Cocina Clara",
"image": "https://wppoland.com/images/content-governance-for-large-teams-scaling-wordpress.avif",
"url": "https://wppoland.com/local/",
"telephone": "+34910000000",
"priceRange": "$$",
"servesCuisine": [
"Mediterranea",
"Sin Gluten",
"Halal"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "Calle de Alcala 45",
"addressLocality": "Madrid",
"postalCode": "28014",
"addressCountry": "ES"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.4189,
"longitude": -3.6985
},
"hasMenu": {
"@type": "Menu",
"@id": "https://wppoland.com/local/menu/#mainmenu",
"name": "Carta Verificada para Dietas",
"inLanguage": "es-ES",
"hasMenuSection": [
{
"@type": "MenuSection",
"name": "Platos Principales Sin Gluten y Sin Lactosa",
"hasMenuItem": [
{
"@type": "MenuItem",
"name": "Lomo de Salmon a la Plancha con Verduras al Vapor",
"description": "Lomo de salmon salvaje sobre pure de boniato preparado integramente sin mantequilla ni derivados lacteos.",
"offers": {
"@type": "Offer",
"price": "23.50",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
},
"suitableForDiet": [
"https://schema.org/GlutenFreeDiet",
"https://schema.org/HalalDiet"
],
"nutrition": {
"@type": "NutritionInformation",
"calories": "520 kcal"
}
},
{
"@type": "MenuItem",
"name": "Crema de Calabaza Asada con Leche de Coco",
"description": "Sopa elaborada con jengibre y semillas tostadas, completamente exenta de gluten y lactosa.",
"offers": {
"@type": "Offer",
"price": "7.90",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
},
"suitableForDiet": [
"https://schema.org/GlutenFreeDiet",
"https://schema.org/VeganDiet"
]
}
]
}
]
}
}
]
}
</script>Según schema.org/MenuItem, suitableForDiet solo está definida para MenuItem y Recipe, así que colóquela en cada plato y no en el nodo Restaurant. Google no incluye un resultado enriquecido para cartas en su galería de datos estructurados, por lo que este marcado describe los platos para las máquinas que lo leen y no activa una función especial en la búsqueda.
Cómo se corresponden las restricciones dietéticas de Google con las dietas de schema.org y los alérgenos de la UE
Las etiquetas de GBP, la Business Profile API, Schema.org y la legislación alimentaria de la UE usan vocabularios propios. Un único mapeo en un solo punto del código evita que un plato sea sin lácteos en un sistema y quede sin etiqueta en otro.
Valor de GBP y de la API (DietaryRestriction) | Schema.org RestrictedDiet | Notas |
|---|---|---|
GLUTEN_FREE | GlutenFreeDiet | Correspondencia exacta |
DAIRY_FREE | ninguno | LowLactoseDiet es otra declaración: bajo en lactosa admite proteína de la leche |
HALAL | HalalDiet | Correspondencia exacta |
KOSHER | KosherDiet | Correspondencia exacta |
VEGAN | VeganDiet | Correspondencia exacta |
VEGETARIAN | VegetarianDiet | Correspondencia exacta |
ORGANIC | ninguno | Ecológico es un método de producción y no una dieta en Schema.org |
Los alérgenos también difieren. La enumeración Allergen de la API, documentada en la referencia FoodMenus, tiene ocho valores: DAIRY, EGG, FISH, PEANUT, SHELLFISH, SOY, TREE_NUT y WHEAT. El anexo II del Reglamento (UE) n.º 1169/2011 enumera 14 grupos: cereales que contienen gluten, crustáceos, huevos, pescado, cacahuetes, soja, leche, frutos de cáscara, apio, mostaza, granos de sésamo, dióxido de azufre y sulfitos, altramuces y moluscos. Apio, mostaza, sésamo, sulfitos, altramuces y moluscos no tienen valor en la API, así que un restaurante en la UE debe indicarlos en su propia página de carta aunque el perfil no pueda mostrarlos.
Cómo indicar alérgenos cuando schema.org no tiene una propiedad para alérgenos
Schema.org no tiene una propiedad de alérgenos para MenuItem. El tipo define cuatro propiedades propias (menuAddOn, nutrition, offers, suitableForDiet) y additionalProperty no está entre ellas, por lo que el marcado que asocia listas de alérgenos a un MenuItem mediante additionalProperty no es válido. La información de alérgenos va en la descripción del plato y en el HTML visible junto a él.
En la UE se trata de una obligación legal y no de una decisión de SEO. El artículo 44, apartado 1, letra a), del Reglamento 1169/2011 hace obligatoria la información sobre alérgenos en los alimentos no envasados, lo que incluye los platos de un restaurante. Un MenuItem válido con la dieta y la información de alérgenos queda así:
{
"@type": "MenuItem",
"name": "Pan de masa madre de trigo sarraceno",
"description": "Pan 100% de harina de trigo sarraceno. No contiene ninguno de los 14 alérgenos de la UE. Horneado en una cocina donde no se usa trigo, centeno ni cebada.",
"suitableForDiet": [
"https://schema.org/GlutenFreeDiet",
"https://schema.org/VeganDiet"
],
"nutrition": {
"@type": "NutritionInformation",
"calories": "240 kcal"
}
}La declaración sin gluten tiene un límite legal en la UE. El Reglamento de Ejecución (UE) n.º 828/2014 solo permite la mención “sin gluten” cuando el alimento, tal como se vende al consumidor final, no contiene más de 20 mg/kg de gluten. Un número de certificación de una asociación de celíacos puede figurar en el texto visible, pero solo uno real que pueda mostrar cuando se lo pidan.
Como sincronizar atributos dieteticos en woocommerce con google merchant center
Muchas marcas de alimentación combinan el servicio en sala con una tienda en WooCommerce: cajas de comida, bollería congelada sin gluten o productos halal.
Google Merchant Center no tiene un atributo propio para dietas. La especificación de datos de producto ofrece el atributo detalles del producto (product_detail), con nombre de sección opcional, nombre del atributo y valor del atributo. Cada detalle tiene entre 1 y 150 caracteres, un producto puede tener hasta 100, y en un feed de texto las tres partes se separan con exactamente dos signos de dos puntos, por ejemplo Información dietética:Sin gluten:Sí. Google pide solo valores confirmados y desaconseja un “Falso” por defecto, así que envíe el detalle solo cuando el producto sea realmente sin gluten, halal o kosher.
En WordPress, guarde la dieta en un atributo global de producto (pa_dieta) y úselo en dos sitios: el plugin del feed lo asigna a product_detail, y el schema del producto lo expone como additionalProperty, que Schema.org permite en Product. No coloque suitableForDiet en un Product: esa propiedad pertenece a MenuItem y Recipe.
<?php
/**
* Expone los terminos de dieta de WooCommerce como additionalProperty en el schema Product
*/
function wppoland_schema_dieta_woocommerce_es($markup, $product) {
$diet_terms = get_the_terms($product->get_id(), 'pa_dieta');
if (empty($diet_terms) || is_wp_error($diet_terms)) {
return $markup;
}
foreach ($diet_terms as $term) {
$markup['additionalProperty'][] = [
'@type' => 'PropertyValue',
'name' => 'Informacion dietetica',
'value' => $term->name,
];
}
return $markup;
}
add_filter('woocommerce_structured_data_product', 'wppoland_schema_dieta_woocommerce_es', 10, 2);Use los mismos nombres de términos en el feed, para que la ficha del producto, el schema y Merchant Center digan lo mismo.
Como actualizar cartas mediante la google business profile api
Con más de un puñado de ubicaciones, la edición manual deja de ser viable. La guía de Google Update Food Menus describe el flujo:
- Llame a
locations.gety lea los metadatos de la ubicación. Solo las ubicaciones concanHaveFoodMenusentruepueden recibir cartas. - Obtenga las cartas actuales con
GET https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/foodMenus. - Modifique las cartas y devuélvalas con
PATCHa la misma dirección (accounts.locations.updateFoodMenus). - Para asociar una foto a un plato, obtenga su
mediaKeyconaccounts.locations.media.list. No se pueden usar la foto de portada ni la de perfil.
La referencia FoodMenus define la estructura como cartas, secciones y platos. Cada FoodMenuItem tiene los campos obligatorios labels y attributes. En FoodMenuItemAttributes, price es obligatorio; dietaryRestriction, allergen y nutritionFacts son opcionales pero recomendados; spiciness, ingredients, servesNumPeople, preparationMethods, portionSize y mediaKeys son opcionales. Los nombres visibles deberían limitarse a 140 caracteres y las descripciones a 1000.
Una función mínima de WordPress que envía una carta preparada:
<?php
/**
* Sustituye las cartas de una ubicacion mediante la Business Profile API (v4)
*/
function wppoland_actualizar_carta_gbp_es($account_id, $location_id, $token, array $menus) {
$url = sprintf(
'https://mybusiness.googleapis.com/v4/accounts/%s/locations/%s/foodMenus',
rawurlencode($account_id),
rawurlencode($location_id)
);
$response = wp_remote_request($url, [
'method' => 'PATCH',
'headers' => [
'Authorization' => "Bearer {$token}",
'Content-Type' => 'application/json',
],
'body' => wp_json_encode(['menus' => $menus]),
'timeout' => 15,
]);
return !is_wp_error($response) && wp_remote_retrieve_response_code($response) === 200;
}Cada plato de $menus lleva sus etiquetas como 'dietaryRestriction' => ['GLUTEN_FREE', 'VEGAN'] dentro de attributes. Como la guía recomienda leer las cartas antes de escribirlas, construya los datos a partir de la respuesta del GET más sus cambios, y no desde cero.
Como gestionar cadenas de restaurantes y multisite wordpress con atributos dieteticos
En marcas con varios locales, los datos dietéticos necesitan un único responsable. Un error habitual es etiquetar un plato como sin gluten en todos los perfiles cuando solo algunas cocinas pueden prepararlo con seguridad.
En un WordPress Multisite o en una arquitectura headless:
- Catálogo central de recetas: mantenga platos, ingredientes, alérgenos y etiquetas dietéticas en un único Custom Post Type compartido por la red.
- Disponibilidad por local: registre qué locales pueden servir cada plato y genere la página de cada local con su propio schema
Restauranty solo los platos que esa cocina ofrece de verdad. - Una sola capa de mapeo: convierta los términos internos de dieta en valores
DietaryRestrictionpara la API y en URLRestrictedDietpara Schema.org en una única función, según la tabla anterior, y llámela desde ambos sitios.
Cuando cambia una receta, el cambio llega a la web y a todos los perfiles en un solo despliegue, en lugar de editarse a mano en cada sitio.
Como preparar las busquedas por voz y la ia para consultas dieteticas locales
Preguntas como dónde encuentro hamburguesas sin gluten hechas en una plancha separada cerca de mí necesitan hechos que la página diga con claridad.
Lo que ayuda:
- Frases sencillas y concretas en la página de la carta: diga si las patatas fritas comparten freidora con rebozados, si la pasta sin gluten se cuece en agua limpia y qué días hay platos halal.
- Unas preguntas frecuentes breves sobre seguridad alimentaria: escritas para el comensal, con respuestas a lo que el personal oye cada semana.
- No cuente con Speakable: la documentación de speakable de Google indica que la función está en beta, funciona para usuarios de EE. UU. con dispositivos Google Home configurados en inglés y está pensada para contenido de noticias. Una carta de restaurante en España queda fuera de ese ámbito y no gana nada con ella.
Qué hacer para obtener reseñas sobre seguridad alimentaria sin incumplir las políticas de Google
Las reseñas de comensales con alergias o requisitos religiosos suelen describir justo lo que otros quieren saber: si el personal entendió el riesgo de contaminación cruzada, si existe una zona de preparación separada, si el certificado está a la vista. La página de Google sobre posicionamiento local dice que más reseñas y buenas valoraciones pueden ayudar.
La forma de pedirlas está regulada. La política de Google sobre interacción falsa prohíbe ofrecer pagos, descuentos o productos gratuitos a cambio de una reseña, solicitar de forma selectiva reseñas positivas, desalentar las negativas y pedir al personal que consiga reseñas con un contenido concreto. Un código QR que pide a los clientes mencionar su protocolo sin gluten es una petición de contenido concreto.
Lo que cumple las normas:
- Pida a todos los clientes de la misma manera: una petición neutra en el ticket o en la mesa, sin palabras que orienten el contenido.
- Responda con datos como propietario: cuando un comensal describe su experiencia, confirme lo que hace en realidad, por ejemplo que los platos sin gluten se preparan en una superficie separada.
- Corrija lo que señalan las reseñas: si una reseña describe un incidente de contaminación cruzada, cambie el procedimiento y el texto de la carta, y dígalo en la respuesta.
Como integrar menus y pedidos online en wordpress sin comprometer la velocidad de carga
Muchas webs de restauración se vuelven lentas al integrar plataformas externas de pedidos mediante iframes o widgets JavaScript pesados. Estas integraciones suelen empeorar las Core Web Vitals, sobre todo Interaction to Next Paint (INP) y Largest Contentful Paint (LCP). El texto de la carta que solo existe dentro de un iframe externo tampoco forma parte de su página.
Arquitectura recomendada para WordPress:
- HTML generado en el servidor para los platos: nombres, descripciones, precios, alérgenos y etiquetas dietéticas deben estar en el HTML que envía el servidor, legible para robots y personas sin scripts.
- Ventana de pedidos bajo demanda: cargue los scripts del carrito y del selector de dirección solo cuando el cliente pulse Pedir online.
- Fotos de platos optimizadas: sirva las imágenes en AVIF o WebP con atributos
widthyheightexplícitos, para que no desplacen el diseño.
El siguiente fragmento elimina scripts pesados de pedidos en las páginas informativas:
<?php
/**
* Desactivar scripts de pedidos online en paginas informativas para proteger el INP
*/
function wppoland_descargar_scripts_pedidos_es() {
if (!is_page('pedir-online') && !is_checkout()) {
wp_dequeue_script('motor-pedidos-externo');
wp_dequeue_style('estilos-pedidos-externos');
}
}
add_action('wp_enqueue_scripts', 'wppoland_descargar_scripts_pedidos_es', 100);Que errores en declaraciones de alérgenos y sellos kosher ponen en riesgo a un restaurante
Las declaraciones dietéticas conllevan responsabilidad legal y médica. Un plato mal etiquetado puede provocar un choque anafiláctico o daño intestinal en una persona celíaca, y en la UE la información sobre alérgenos en los platos de restaurante es obligatoria en virtud del artículo 44 del Reglamento 1169/2011.
Errores que conviene evitar:
- Declaraciones sin gluten poco rigurosas: etiquetar un plato como sin gluten sin cumplir el límite de 20 mg/kg del Reglamento 828/2014, por ejemplo una masa de pizza que simplemente no lleva levadura.
- Halal o kosher sin fundamento: declarar conformidad religiosa sin supervisión o certificación documentada engaña precisamente a los comensales que más dependen de ella.
- Contaminación cruzada omitida: la pasta sin gluten cocida en la misma agua que la pasta de trigo no es sin gluten. Describa la realidad de la cocina en la carta de WordPress: Elaborado en una cocina donde también se manipulan trigo y frutos de cáscara.
- Días de servicio limitados: si los platos halal o kosher solo se preparan ciertos días, indíquelo en la página de la carta y en la descripción del plato en GBP.
Una carta correcta protege primero a los comensales y después al negocio.
Cómo medir el tráfico procedente de búsquedas dietéticas en los datos del perfil y la analítica
Mida el efecto en los datos del propio perfil y en la analítica de la web, no en suposiciones sobre posiciones.
1. Datos de rendimiento del Perfil de Empresa
La Business Profile Performance API ofrece las mismas cifras que la vista de rendimiento del perfil. Útiles en un proyecto de carta:
BUSINESS_FOOD_MENU_CLICKS: clics para ver la carta o interactuar con ella, contados una vez por usuario y día.BUSINESS_DIRECTION_REQUESTSyWEBSITE_CLICKS: lo que hicieron los comensales tras ver el perfil.- Términos de búsqueda: el endpoint mensual de palabras clave devuelve, en minúsculas, los términos que la gente usó para encontrar el negocio, con impresiones por mes. Los términos de poco volumen llegan como umbral en lugar de cifra exacta, así que filtre los que contienen sin gluten, sin lácteos, halal o kosher y compare meses, no días.
2. Parámetros UTM en la analítica web
Etiquete los enlaces de la web y de la carta en el perfil con parámetros UTM, para separar las visitas de GBP del resto del tráfico orgánico:
https://wppoland.com/local/?utm_source=google&utm_medium=organic&utm_campaign=gbp_listing
https://wppoland.com/local/carta/?utm_source=google&utm_medium=organic&utm_campaign=gbp_menuLos parámetros de campaña los lee su herramienta de analítica (GA4, Umami o similar), así que segmente la campaña gbp_menu allí. Google Search Console informa de búsquedas y páginas, no de campañas UTM, así que úselo para las búsquedas orgánicas que llevan directamente a la página de la carta.
Platos etiquetados en el Perfil de Empresa de Google, una carta WordPress limpia con schema y declaraciones honestas de alérgenos dan a los comensales y a Google la misma respuesta en todos los lugares donde la buscan.






