¿Te preocupa que la web del restaurante no traiga suficientes reservas y que la ficha de Google no convierta? ¿No se indexan las páginas de reserva o el menú y la competencia supera al negocio en búsquedas locales? Esta guía práctica y técnica aborda exactamente eso: cómo implementar SEO para restaurantes, bares y hostelería en España con pasos replicables, plantillas JSON‑LD, SOPs para fichas y soluciones concretas para reservas no indexadas.
Puntos clave: lo que debes saber en 1 minuto
- SEO local es la palanca principal: optimizar Google Business Profile y páginas hiperlocales genera el mayor aumento de reservas.
- Reservas no indexadas suelen ser problema técnico o de blocking: revisar robots.txt, canonicals y schema de reservas soluciona la mayoría.
- La web y la ficha de Google cumplen funciones distintas: la web es conversión y branding; la ficha, descubrimiento inmediato y acciones (llamar, reservar).
- Plugins y sistemas de reservas deben exponer microdatos y UTM: elegir soluciones con schema de reserva y compatibilidad con Webhooks mejora atribución.
- Coste del SEO varía por alcance: desde acciones básicas locales (600–1.200 €/mes) hasta proyectos completos (1.500–4.000 €/mes) según objetivos.
SEO local para restaurantes paso a paso
Paso 1: reclamar y verificar la ficha de Google Business Profile (GBP)
- Reclamar la ficha oficial y elegir la categoría más precisa ("Restaurante", "Bar", "Cafetería").
- Rellenar NAP (nombre, dirección, teléfono) exactamente igual que en la web.
- Añadir horario, menú PDF y URL de reservas.
- Publicar fotos profesionales y 1 foto de portada en formato 1200x900 px.
- Fuente oficial para guías prácticas: Google Business Profile.
Paso 2: optimizar la ficha con SEO on‑profile
- Descripción: 300–500 caracteres con variaciones de búsqueda local (ej. "restaurante de paella en Lavapiés").
- Servicios y atributos: marcar si hay terraza, pago con tarjeta, accesibilidad.
- Crear publicaciones semanales con menús del día, eventos y ofertas.
- Usar preguntas y respuestas en GBP para resolver dudas frecuentes como horarios especiales o menú sin gluten.
Paso 3: palabras clave locales y estructura de contenido
- Realizar keyword research por barrio, plato y intención (ej.: "mejor tortilla cerca de Bilbao", "cena romántica Salamanca").
- Mapear intención: reservar (transaccional), ver menú (informacional/transaccional), pedir a domicilio (transaccional).
- Crear landing pages hiperlocales (municipio/barrio) con mínimo 400–800 palabras únicas y schema LocalBusiness parcial (ver plantillas JSON‑LD más abajo).
Paso 4: datos estructurados obligatorios y recomendados
- Implementar schema: LocalBusiness (solo si la web lo controla apropiadamente), Restaurant y Menu o, si se evita LocalBusiness, usar Organization + Menu + Reservation snippets para menús y reservas.
- Incluir openingHoursSpecification, acceptedPaymentMethod y priceRange.
- Plantilla de ejemplo (JSON‑LD corto para menú y horas) incluida en la sección de plantillas.
Paso 5: imágenes, velocidad y Core Web Vitals
- Usar imágenes WebP y lazyloading para fotos de platos.
- Mantener LCP < 2.5s, FID/INP bajo y CLS < 0.1. Priorizar carga crítica (hero y menú visible).
- Auditar con Core Web Vitals y establecer tareas concretas (optimizar CDN, reducir JS, width/height en imágenes).
Paso 6: flujo de reseñas y conversión
- Automatizar solicitud de reseñas por SMS/email después de la visita (24–72h) con enlace directo a la ficha.
- No incentivar con compensaciones (política Google) pero sí facilitar el proceso.
- Responder reseñas públicas con tono profesional y datos prácticos.
Paso 7: medición y atribución
- Implementar UTM en enlaces de reservas y tracking de conversión en Google Analytics/GA4.
- Marcar objetivos: reservas directas, llamadas, clics a web.
- Revisar ratio de conversión ficha→reserva y web→reserva semanalmente.

Cómo solucionar reservas no indexadas para restaurantes
Diagnóstico rápido: checklist técnico
- Revisar robots.txt y meta robots (noindex) en páginas de reservas.
- Comprobar cabeceras HTTP (X‑Robots‑Tag).
- Verificar canonical tags que puedan apuntar a otra URL.
- Search Console: inspeccionar URL y solicitar indexación.
Causas comunes y soluciones prácticas
- Páginas de reserva detrás de sesión o con parámetros excesivos: usar URL única y enlazable. Si el sistema de reservas requiere sesión, crear una landing indexable con el CTA visible y schema de Reservation.
- Canonicalización errónea: asegurar canonical a la versión canon (https://) y eliminar canonicals que apunten a páginas principales.
- Bloqueo por robots.txt: abrir directorios usados por reservas (ej. /booking/).
- Páginas con contenido dinámico puro sin SSR: generar snapshot HTML o implementar prerendering para bots.
SOP para equipos técnicos (pasos a seguir)
- Reproducir el fallo: acceder a la URL pública, comprobar indexabilidad con Search Console.
- Revisar respuesta HTTP y meta robots (usar curl -I y ver meta robots en HTML).
- Si se detecta bloqueos, corregir en CMS y desplegar.
- Añadir schema de Reservation en la página pública y enviar sitemap actualizado a Search Console.
- Volver a solicitar indexación y monitorizar cobertura en Search Console.
Ejemplo de JSON‑LD para reserva (plantilla lista para copiar)
{
"@context": "https://schema.org",
"@type": "FoodEstablishment",
"name": "Nombre del Restaurante",
"url": "https://ejemplo-restaurante.es/reserva",
"potentialAction": {
"@type": "ReserveAction",
"target": "https://ejemplo-restaurante.es/booking?table={table}",
"result": {
"@type": "Reservation",
"reservationStatus": "https://schema.org/ReservationConfirmed"
}
}
}
(Adaptar "target" al URL real de reserva). Incluirlo en