LocalBusiness: los datos de su empresa en JSON-LD
Módulo 5: Datos estructurados · Tiempo de lectura: 13 minutos
Objetivo de aprendizaje: Después de esta lección podrá escribir y evaluar un bloque LocalBusiness en JSON-LD, con las propiedades obligatorias y recomendadas según Google y el subtipo correcto de schema.org.
Conceptos clave: LocalBusiness, subtipo (Florist, Bakery, Dentist, ...), obligatorias: name y address, PostalAddress (streetAddress, postalCode, addressLocality, addressCountry), recomendadas: telephone, url, openingHoursSpecification, geo, image, priceRange, sameAs, openingHours como texto, una única fuente de verdad
Por qué importa este bloque
En la lección 5.1 vio que Google utiliza los datos estructurados para entender su página. Para una empresa con tienda, consulta o taller, el bloque más importante es LocalBusiness: quién es usted, dónde está, cómo llamarle y cuándo abre. Google menciona como posible uso el panel de conocimiento en la Búsqueda y en Maps cuando alguien busca su empresa.
El bloque no sustituye a su Perfil de Empresa de Google (módulo 6). Es una de las fuentes de las que los buscadores obtienen sus datos. Por eso debe decir exactamente lo mismo que su perfil, su página de contacto y sus fichas en directorios. La lección 6.4 vuelve sobre este tema.
Elegir el tipo correcto
Empiece por preguntarse: ¿qué tipo de empresa soy? LocalBusiness tiene en schema.org treinta subtipos directos, y por debajo muchos más. Algunos ejemplos:
| Empresa | Tipo | Ruta en schema.org |
|---|---|---|
| Floristería | Florist | LocalBusiness > Store > Florist |
| Panadería | Bakery | LocalBusiness > FoodEstablishment > Bakery |
| Dentista | Dentist | LocalBusiness > Dentist |
| Peluquería | HairSalon | LocalBusiness > HealthAndBeautyBusiness > HairSalon |
| Fontanero | Plumber | LocalBusiness > HomeAndConstructionBusiness > Plumber |
| Contable | AccountingService | LocalBusiness > FinancialService > AccountingService |
Google pide el tipo más específico que encaje. Si no encuentra ninguno, utilice el propio LocalBusiness. Si su empresa hace dos cosas (una panadería con cafetería), @type puede ser una lista: ["Bakery", "CafeOrCoffeeShop"]. Fíjese en la escritura: los tipos empiezan por mayúscula y se escriben exactamente como en schema.org. Bloemist, florist o Flower shop no existen; un lector no reconoce ese tipo.
Busque un tipo en https://schema.org/<Type> o en la lista completa. Si la página existe, el tipo existe.
Obligatorio y recomendado según Google
Para una empresa local, Google solo indica dos propiedades obligatorias:
name: el nombre de la empresa, tal como aparece en su fachada y en su perfil;address: la ubicación física, comoPostalAddress. Google pide rellenar el mayor número posible de campos.
Y una serie de propiedades recomendadas. Las más importantes para una pequeña empresa:
| Propiedad | Qué debe contener | Atención |
|---|---|---|
telephone | El número principal | Con prefijo del país y de la zona, por ejemplo +31 33 000 0000 |
url | La dirección de la página de este establecimiento | Dirección completa con https://, y debe funcionar |
openingHoursSpecification | Horario por día | Véase más abajo |
geo | GeoCoordinates con latitude y longitude | Números, al menos 5 decimales |
image | Foto(s) de la empresa | Direcciones que Google pueda obtener e indexar |
priceRange | Rango de precios, como €€ o €10-25 | Menos de 100 caracteres |
menu, servesCuisine | Solo para hostelería |
Como LocalBusiness también es una Organization, Google recomienda seguir también los campos de Organization, como logo y sameAs (las direcciones de sus perfiles en otros sitios, por ejemplo Instagram o Facebook).
Lo que Google no quiere en este bloque: review y aggregateRating sobre su propia empresa. Solo están pensados para sitios que recopilan reseñas sobre otras empresas. La lección 5.3 explica por qué.
La dirección como PostalAddress
La dirección es un objeto con su propio tipo. No es una sola línea de texto, sino campos separados:
"address": {
"@type": "PostalAddress",
"streetAddress": "Voorbeeldstraat 12",
"postalCode": "3811 AA",
"addressLocality": "Amersfoort",
"addressCountry": "NL"
}streetAddress: calle y número, con el complemento si lo hay.postalCode: el código postal.addressLocality: la localidad.addressCountry: el país, preferiblemente como código de país de dos letras (NL,BE,DE).addressRegion(provincia o estado) se permite, pero en los Países Bajos no es necesario.
Un error frecuente es "address": "Voorbeeldstraat 12, 3811 AA Amersfoort". Eso es texto; un lector tiene que adivinar cuál es el código postal. Utilice los campos separados.
Horario de apertura
Google indica openingHoursSpecification: una lista de bloques con días, hora de apertura y hora de cierre.
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "17:00"
}
]Las reglas:
- Días en inglés, como en schema.org: de
MondayaSunday(o como dirección completa,https://schema.org/Monday). Nada demanimaandag(ni sus equivalentes en español). - Horas en formato de 24 horas:
09:00, no9 uurni9:00 AM. - Un día que no aparece en la lista se considera no descrito. Si quiere indicar expresamente que cierra un día entero, ponga
opensyclosesambos en00:00. - Abierto día y noche:
opens00:00ycloses23:59. - Abierto hasta pasada la medianoche (por ejemplo de 18:00 a 02:00): un solo bloque con
opens18:00ycloses02:00. - Horario distinto temporalmente, como un cierre de invierno: el mismo bloque con
validFromyvalidThrough(fechas como2026-12-24).
También existe una forma más corta de schema.org: "openingHours": ["Tu-Fr 09:00-18:00", "Sa 09:00-17:00"], con días en inglés de dos letras. Es válida en schema.org, pero no figura en la lista de Google. Si puede elegir, utilice openingHoursSpecification.
El bloque completo para Bloemenatelier Lotte
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Florist",
"name": "Bloemenatelier Lotte",
"url": "https://www.example.com/",
"telephone": "+31 33 000 0000",
"image": "https://www.example.com/beelden/winkel.jpg",
"priceRange": "€€",
"address": {
"@type": "PostalAddress",
"streetAddress": "Voorbeeldstraat 12",
"postalCode": "3811 AA",
"addressLocality": "Amersfoort",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.15617,
"longitude": 5.38763
},
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "09:00", "closes": "18:00" },
{ "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "09:00", "closes": "17:00" }
],
"sameAs": ["https://www.instagram.com/example"]
}
</script>Fíjese en dos cosas. latitude y longitude son números, sin comillas; la latitud está entre -90 y 90, la longitud entre -180 y 180. Y la url apunta a su propio sitio, no a su Instagram (eso va en sameAs).
¿Dónde se coloca el bloque? Google dice que se permite en cualquier página, pero lo más lógico es una página con información sobre su empresa, como la página de inicio o la página de contacto. Si tiene varios establecimientos, cada uno tiene su propia página con su propio bloque y su propia url.
En la práctica: AI Builder y WordPress
El AI Builder de WebOké crea este bloque por sí mismo, a partir de los datos de empresa que usted introduce para el sitio: el tipo de empresa (una lista desplegable con, entre otros, Florist, Bakery y HairSalon, o el genérico LocalBusiness), nombre, dirección, código postal, localidad, teléfono, correo electrónico, horario y sus perfiles sociales. El bloque aparece en la página de inicio y en las páginas con un bloque de contacto. Actualmente, el AI Builder escribe el horario con la forma corta openingHours (por ejemplo Tu-Fr 09:00-18:00). En WordPress, los plugins de SEO hacen algo parecido, a menudo en una sección aparte para datos locales; en otros creadores de sitios web funciona igual.
Para todos los creadores vale lo mismo: el bloque es tan bueno como lo que usted introduce. Si en el creador pone un número de teléfono antiguo, ese número antiguo aparecerá también en su JSON-LD. Mantenga sus datos de empresa en un solo lugar y cópielos desde ahí a su sitio, su perfil y sus fichas.
Resumen
- Elija el tipo de schema.org más específico que encaje, escrito exactamente como en schema.org.
- Obligatorio según Google:
nameyaddress(comoPostalAddresscon campos separados). - Recomendado:
telephonecon prefijo del país,urldel establecimiento,openingHoursSpecification,geocomo números,image,priceRange. - Horario: nombres de días en inglés, horas en formato de 24 horas; cerrado es de
00:00a00:00, abierto día y noche de00:00a23:59. - Nada de reseñas sobre su propia empresa en este bloque; asegúrese de que todo coincide con su perfil y su página de contacto.
Cuestionario
Ejercicio
Ejercicio A5.2: ¿Es correcto su bloque LocalBusiness? Introduzca la dirección de su página de inicio o de contacto y, además, el nombre de su empresa, su código postal y su número de teléfono tal como figuran en su Perfil de Empresa. El programa busca el bloque de empresa en el JSON-LD de la página y comprueba el tipo, los campos obligatorios, la dirección, el teléfono, el horario, las coordenadas y la url, y compara el nombre, el código postal y el teléfono con lo que usted ha introducido. ¿No tiene un sitio web de empresa propio? Utilice entonces el sitio de una tienda o consulta cercana y deje vacíos los tres campos de comparación.
Para seguir leyendo
Los pasos de estos artículos se refieren a los paneles de WebOké; con otros proveedores funciona de forma parecida.
- Manual de WebOké 8.1: AI Builder: crear su web automáticamente
- Manual de WebOké 8.2: AI Builder: editar, versiones y publicar
- Google Search Central, Datos estructurados para empresas locales (LocalBusiness): https://developers.google.com/search/docs/appearance/structured-data/local-business
- Google Search Central, Datos estructurados para organizaciones (Organization): https://developers.google.com/search/docs/appearance/structured-data/organization
- schema.org, LocalBusiness y todos sus subtipos: https://schema.org/LocalBusiness
- schema.org, OpeningHoursSpecification: https://schema.org/OpeningHoursSpecification
