Una web de resort que Google, las redes sociales y los asistentes de IA sí pueden leer
Polargate convirtió la web bilingüe de un resort caribeño de 349 habitaciones en un sitio totalmente estático y blindado, con datos estructurados para la búsqueda con IA, y lo mantiene con una cuota mensual y una auditoría automática el día 1 de cada mes.

- 22
- rutas públicas prerrenderizadas como HTML estático
- 2
- idiomas servidos con hreflang bidireccional (ES/EN)
- 98 KB
- imagen principal en móvil, desde unos 288 KB
- 136 KB
- imagen de vista previa social, desde 1,74 MB
- 33
- hallazgos confirmados corregidos en el ciclo de auditoría de agosto de 2026
- 3
- incidencias P0 cerradas y verificadas en producción en junio de 2026
El problema
La web se veía bien y se leía bien, pero los rastreadores veían otra cosa. El contenido se pintaba en el navegador, así que cada subpágina entregaba a Google, a las redes sociales y a los asistentes de IA el título, el canonical y las etiquetas Open Graph de la portada. Las URL inexistentes respondían HTTP 200 en lugar de un 404 real. La Content-Security-Policy estaba en una etiqueta meta, donde el navegador ignora la directiva contra clickjacking. Los datos estructurados publicaban una valoración media que no se podía contrastar con ninguna fuente. Y el backend seguía dependiendo de la plataforma no-code sobre la que se montó el sitio.
Qué construimos
Polargate auditó el sitio en caja negra y caja blanca sobre cuatro pilares (seguridad, SEO, estructura y posicionamiento ante buscadores con IA) y lo corrigió por fases. Primero, cabeceras de seguridad HTTP de verdad; después, un 404 real y un head estático por ruta; y por último, la salida completa de la plataforma no-code hacia un proyecto Supabase propio y una generación estática con vite-react-ssg. Las 22 rutas públicas entregan hoy HTML completo en español e inglés, con grafos schema.org generados desde los ficheros de traducción, llms.txt y llms-full.txt, y un robots.txt que deja pasar a los rastreadores de IA.
El resultado
Las tres incidencias P0 de junio de 2026 se cerraron y verificaron en producción, y el ciclo de agosto resolvió 33 hallazgos confirmados. Hoy el sitio sirve HTML completo por ruta y por idioma a Google, a las redes sociales y a los asistentes de IA, corre sobre infraestructura que Polargate controla de punta a punta y carga una imagen principal en móvil de unos 98 KB en lugar de 288 KB. Una auditoría programada revisa web y repositorio el día 1 de cada mes e informa; nunca despliega por su cuenta. Polargate no atribuye aquí cifras de tráfico ni de reservas: los resultados comerciales dependen de mucho más que una web.
Stack
- React
- Vite
- TypeScript
- Tailwind CSS
- shadcn/ui
- React Router
- TanStack Query
- Supabase
- PostgreSQL
- Deno
- Resend
- Vercel
- Node.js
- GA4
- Search Console
- GitHub
- Claude
- OpenAI
El punto de partida
El Hotel Marien es un resort de 4 estrellas todo incluido con 349 habitaciones en Puerto Plata, en la costa norte de República Dominicana. Polargate diseñó y desarrolló su web bilingüe, entregada en marzo de 2026, y desde entonces la mantiene con una cuota mensual. El proyecto incluyó el motor de reservas Paraty Tech, SEO técnico y de contenido, blindaje de seguridad, hosting y copias, y la puesta en marcha de la analítica con GA4, Tag Manager y Search Console. Desde julio de 2026 el hotel usa además una app de huéspedes con su marca sobre Estevano, la plataforma hotelera propia de Polargate, en marien.estevano.com: conserje con IA, reservas de restaurante y spa, servicio de habitaciones e incidencias, con un cartel QR de recepción generado a partir de los colores de marca del hotel.
Lo que encontró la auditoría
En junio de 2026 Polargate hizo una auditoría de caja negra y caja blanca sobre cuatro pilares: seguridad, SEO, estructura y posicionamiento ante buscadores con IA.
- Las URL inexistentes devolvían HTTP 200 en lugar de un 404 real, así que los buscadores trataban erratas y enlaces rotos como páginas válidas.
- La Content-Security-Policy vivía en una etiqueta meta, de modo que la directiva frame-ancestors nunca se aplicaba y la protección contra clickjacking no servía de nada.
- Cada subpágina servía el título, el canonical y las etiquetas Open Graph de la portada, porque el contenido se pintaba en el navegador.
- Los datos estructurados incluían una valoración media que no se podía contrastar con ninguna fuente real.
Tres de esos puntos eran P0. Los tres se cerraron y se verificaron en producción ese mismo mes.
Lo que reconstruimos
- Cabeceras de seguridad HTTP de verdad: CSP con frame-ancestors none, X-Frame-Options DENY, HSTS con preload, nosniff, Referrer-Policy y Permissions-Policy.
- Primero un head estático por ruta y después generación estática completa con vite-react-ssg sobre Vite, React y TypeScript, con Tailwind y shadcn/ui en la interfaz. Las 22 rutas públicas entregan HTML completo en español e inglés, con hreflang bidireccional y una única fuente de rutas en el código.
- Salida total de la plataforma no-code hacia un proyecto Supabase propio: el formulario de contacto como función edge en Deno, con CORS restringido al dominio del hotel, honeypot en servidor, RLS forzada en la tabla de mensajes y envío por Resend desde un subdominio verificado.
- Grafos schema.org generados desde los ficheros de traducción: Hotel, cinco HotelRoom, cinco Restaurant, el spa, FAQPage, BreadcrumbList y un nodo WebPage con dateModified y speakable. Más llms.txt y llms-full.txt, y un robots.txt que deja pasar a los rastreadores de IA y bloquea a los que solo consumen ancho de banda.
- La valoración no verificable, sustituida por la puntuación real del hotel en TripAdvisor y dos reseñas visibles de huéspedes, enlazadas a sus perfiles verificados de TripAdvisor, Booking y Google Maps.
Cómo funciona hoy
La web vive en Vercel con el DNS en Route 53, y la analítica pasa por GA4, Tag Manager y Search Console con consentimiento previo. El trabajo de rendimiento bajó la imagen principal en móvil de unos 288 KB a unos 98 KB con srcset, y la imagen de vista previa social de 1,74 MB a 136 KB. El día 1 de cada mes, una rutina programada de Claude revisa la web en vivo y el repositorio (búsqueda con IA, Core Web Vitals, cosas rotas y seguridad), verifica cada hallazgo de forma adversarial y emite un informe. No despliega nada por su cuenta. Polargate revisa los hallazgos, aplica las correcciones y envía a la dirección del hotel un informe de mantenimiento en lenguaje claro.
Preguntas sobre este proyecto
¿Cuánto tiempo llevó todo esto?
¿Se puede hacer esto con nuestro motor de reservas?
Nuestra web está hecha en una plataforma no-code. ¿Se puede rescatar o hay que empezar de cero?
¿Con esto aparecerá nuestro hotel en ChatGPT y en las respuestas con IA de Google?
¿Qué incluye realmente el mantenimiento mensual?
Proyectos relacionados
Global Dynamic Security GroupMarca y web bilingüe para Global Dynamic Security Group
Identidad de marca, manual de identidad de 15 páginas y web corporativa bilingüe (español e inglés) para Global Dynamic Security Group (GDS), un grupo de seguridad privada en República Dominicana, entregado como proyecto cerrado a precio fijo.
2026Ver el caso
Hotel TalaveraUna web de hotel bilingüe que los rastreadores y los asistentes de IA sí leen
Un hotel de 4 estrellas en Castilla-La Mancha tenía una web que los buscadores recibían como un contenedor vacío. Polargate la reconstruyó como 16 URLs bilingües prerenderizadas y hoy la mantiene con una cuota mensual de Care y un ciclo de auditoría.
2026Ver el caso
Santo Domingo BayLa web de un resort caribeño rehecha en HTML estático, con un conserje de IA detrás
Polargate rehízo la web bilingüe de un resort de convenciones y casino del Caribe sobre Vite, React y un Supabase propio, prerenderizó sus 38 rutas en español e inglés a HTML estático y conectó el hotel con Estevano, cuyo conserje de IA atiende peticiones reales de huéspedes en seis idiomas.
2026Ver el caso
Arranca el motor
Cuéntanos qué estás construyendo en unas pocas preguntas cortas. Un ingeniero senior responde por escrito en 48 horas laborables con una primera lectura de alcance, plazos y precio.