Renderizado JavaScript, SSR e hidratación para crawlers IA: la guía técnica 2026 para que GPTBot, ClaudeBot, PerplexityBot y Googlebot lean la web de tu gimnasio, entrenador o estudio
Guía técnica 2026 para gimnasios, entrenadores personales, estudios boutique, fisioterapeutas y centros wellness sobre cómo el modo de renderizado de tu web (CSR, SSR, SSG, dynamic rendering, hidratación) decide si los crawlers IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bingbot) leen tu contenido. Auditoría con view-source y curl, errores que dejan la web en blanco para la IA, soluciones por stack (Webflow, Wix, Squarespace, Framer, WordPress, Next.js) y plan de migración.
Respuesta rápida
La mayoría de gimnasios, entrenadores, estudios y centros wellness publica una web preciosa que, vista por GPTBot, ClaudeBot o PerplexityBot, está literalmente en blanco. La razón es técnica y silenciosa: estas webs renderizan el contenido con JavaScript en el navegador (CSR) y los crawlers IA no ejecutan JavaScript, así que ven un HTML vacío con un <div id="root"></div> y nada más. Para aparecer en ChatGPT, Perplexity, Claude, Gemini o Copilot tienes que servir HTML completo desde el servidor (SSR, SSG, prerender o hidratación correcta), con título, H1, párrafos, tablas, FAQ y schema visibles antes de que se ejecute cualquier JavaScript. Esto no es un detalle de desarrollador: es la base invisible del GEO y la diferencia entre ser citado o ser irrelevante para la IA en 2026.
Esta guía explica con detalle qué ven los crawlers IA, cómo auditarlo tú mismo en 5 minutos, qué stacks fallan en silencio (y cuáles funcionan por defecto), cómo arreglarlo en Webflow, Wix, Squarespace, Framer, WordPress y Next.js, y el plan de migración cuando tu web no es recuperable.
Por qué el renderizado es la capa más invisible y más decisiva del GEO
En SEO clásico la pregunta era "¿Google entiende mi página?". En GEO la pregunta es más exigente: "¿GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bingbot, Applebot-Extended y Bytespider ven mi contenido al hacer una petición HTTP simple, sin ejecutar JavaScript?". Y la respuesta para una proporción enorme de webs fitness y wellness es: no.
La diferencia con Googlebot es importante. Googlebot moderno ejecuta JavaScript en una segunda pasada (renderizado diferido con Chrome headless) y, con tiempo, indexa también el contenido inyectado. Los crawlers IA, en su mayoría, no hacen esa segunda pasada o la hacen de forma muy limitada. Su flujo típico es: petición HTTP, descarga el HTML, lo trocea en chunks, lo vectoriza y se va. Si el HTML servido no tiene tu contenido, no hay nada que vectorizar.
Esto se traduce en una asimetría brutal. Tu web puede estar perfectamente posicionada en Google y al mismo tiempo ser invisible para ChatGPT y Perplexity. Y como las consultas se están desplazando hacia esos motores, esa invisibilidad cuesta clientes reales.
Se cruza con crawlers IA y logs de servidor: GPTBot, ClaudeBot, PerplexityBot y con llms.txt y crawlers IA: guía técnica, pero aquí entramos al nivel inferior: el HTML que efectivamente reciben.
Qué ve exactamente cada crawler IA cuando entra en tu web
No todos los crawlers se comportan igual. Conviene tener clara la matriz para tomar decisiones técnicas.
| Crawler | Ejecuta JavaScript | Renderizado diferido | Respeta robots.txt | Identificador habitual |
|---|---|---|---|---|
| GPTBot (OpenAI) | No | No | Sí | GPTBot/1.x |
| OAI-SearchBot (ChatGPT Search) | Parcial / limitado | Limitado | Sí | OAI-SearchBot/1.x |
| ClaudeBot (Anthropic) | No | No | Sí | ClaudeBot/1.x |
| PerplexityBot | No | No | Sí | PerplexityBot/1.x |
| Perplexity-User (on-demand) | Limitado | No | Parcial | Perplexity-User |
| Google-Extended | Hereda de Googlebot | Sí (Chrome headless) | Sí | Google-Extended |
| Googlebot | Sí (con WRS) | Sí | Sí | Googlebot/2.1 |
| Bingbot | Parcial | Limitado | Sí | bingbot/2.0 |
| Applebot-Extended | No | No | Sí | Applebot-Extended |
| Bytespider (ByteDance) | No | No | Sí | Bytespider |
| CCBot (Common Crawl) | No | No | Sí | CCBot/2.0 |
El patrón es claro: la mayoría de los crawlers que alimentan IA generativa no ejecutan JavaScript. Solo Googlebot lo hace de forma fiable, y por eso muchos negocios fitness "se salvan" en Google clásico pero pierden en GEO.
Profundizamos en cada bot en crawlers IA y logs de servidor.
Los tres modos de renderizado y qué implica cada uno para IA
1. CSR (Client-Side Rendering): el modo silencioso que te deja en blanco
En CSR el servidor envía un HTML mínimo con un script de la aplicación. El navegador descarga el script, lo ejecuta y construye el DOM con el contenido real. Es el modo por defecto de muchas plantillas de React, Vue, Svelte o Angular sin framework de servidor.
Vista por un crawler IA, la página es esencialmente:
<!DOCTYPE html>
<html>
<head>
<title>Cargando…</title>
</head>
<body>
<div id="root"></div>
<script src="/app.bundle.js"></script>
</body>
</html>
GPTBot, ClaudeBot y PerplexityBot ven exactamente eso. Sin H1, sin texto, sin FAQ, sin schema. Para la IA, tu web no existe.
2. SSR / SSG (Server-Side Rendering / Static Site Generation): el modo correcto
El servidor renderiza el HTML completo antes de enviarlo. El navegador recibe una página con todo el contenido visible. JavaScript se carga después solo para añadir interactividad (modales, carruseles, formularios reactivos).
El crawler IA recibe HTML real, con título, descripción, párrafos, tablas, FAQ y schema. Puede trocearlo, vectorizarlo y citarlo. Esta es la configuración ideal para GEO.
Variantes:
- SSG (Static Site Generation): la página se genera en build time, se sirve como HTML estático. Rápido, barato y excelente para blog y landing.
- SSR puro (cada petición): el HTML se genera al vuelo en cada visita. Necesario cuando el contenido cambia por usuario o por sesión.
- ISR (Incremental Static Regeneration): intermedio entre los dos, sirve HTML estático que se regenera cada N segundos.
Las tres son válidas para GEO. Lo que importa es que el HTML final llegue completo al crawler.
3. Dynamic rendering / prerender: el parche que funciona si no puedes migrar
El servidor detecta al user-agent del crawler y le sirve una versión HTML estática prerenderizada, mientras que a los usuarios humanos les sigue sirviendo la versión CSR. Servicios como Prerender.io, Rendertron o un middleware propio implementan esta lógica.
No es la solución ideal porque mantienes dos pipelines (humanos y bots), pero es la salida rápida cuando migrar el stack completo no es viable a corto plazo. Es aceptable siempre que el contenido prerenderizado sea idéntico al que ve el humano, sin "cloaking" engañoso.
Hidratación progresiva: el detalle que rompe muchas webs
Hidratación es el proceso por el que React (u otro framework) "toma control" del HTML servido por el servidor y lo convierte en una aplicación interactiva. Si el HTML inicial es completo, los crawlers IA están contentos. Pero hay un patrón frecuente que rompe esto: el "skeleton" o "loading state".
Algunas implementaciones de SSR sirven primero un esqueleto con placeholders y solo después de la hidratación llenan el contenido real. Para el navegador del usuario es invisible (dura milisegundos). Para el crawler IA, que no espera ni ejecuta JS, el HTML servido sigue siendo un esqueleto vacío.
Esto se detecta con curl (lo veremos abajo). La solución es que el SSR sirva el contenido real, no un placeholder.
Conecta con contenido answer-first y extractivo, porque sin renderizado correcto, ningún esfuerzo de redacción extractiva sirve.
Cómo auditar tu web en 5 minutos sin ser desarrollador
Esta auditoría la puedes hacer tú mismo. Tres pruebas rápidas en orden.
Prueba 1: view-source en el navegador
Abre tu web en Chrome. Pulsa Ctrl+U (Windows/Linux) o Cmd+Option+U (Mac). Se abre el HTML que el servidor está enviando antes de que se ejecute JavaScript.
Busca con Ctrl+F:
- Tu H1 principal.
- Una frase concreta de tu home (no genérica).
- El nombre de tu servicio principal.
- Una pregunta de tu FAQ.
- "schema.org" o "application/ld+json".
Si todo aparece, vas bien. Si no aparece nada o sólo ves un <div id="root"></div> con muy poco texto, tienes problema de renderizado.
Prueba 2: curl como GPTBot
En una terminal (Mac, Linux o Windows con WSL):
curl -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)" \
-L https://www.tu-dominio.com/ \
| grep -i "tu-frase-clave"
Si la frase aparece, GPTBot la ve. Si no aparece, no la ve. Repite la prueba con:
ClaudeBot/1.0(Anthropic)PerplexityBot/1.0(Perplexity)
Prueba 3: simulación con Lynx o Wget
Para una vista "como bot" más global, usa Lynx o Wget:
lynx -dump https://www.tu-dominio.com/
Si lo que ves se parece a tu web, vas bien. Si sale una página vacía o con sólo el menú, tienes CSR roto para IA.
Lo que estás validando con estas pruebas
- ¿El título aparece en el HTML?
- ¿El H1 aparece?
- ¿Los párrafos del hero aparecen?
- ¿Las FAQ aparecen como texto real?
- ¿El schema JSON-LD está embebido en el
<head>o al final del<body>? - ¿Las tablas aparecen como
<table>o como divs JS? - ¿Los enlaces internos aparecen con
<a href>real?
Si cualquiera de estos no aparece, tienes una palanca clara de mejora.
Profundizamos en cómo medir aparición real en medir menciones en ChatGPT, Perplexity y Google AI.
Errores frecuentes en webs fitness y wellness que destruyen la extractibilidad
Error 1: SPA pura sin SSR (React/Vue/Svelte mal configurados)
Una landing hecha con Create React App o un SPA Vue sin Nuxt servirá HTML vacío. Frecuente en webs hechas por desarrolladores junior o por agencias que prefieren simplicidad de desarrollo a SEO/GEO.
Error 2: Contenido detrás de tabs o acordeones JS
Muchas plantillas de Webflow, Wix o WordPress meten las FAQ en acordeones que se renderizan via JS. Si el contenido sólo aparece al hacer click, los crawlers no lo ven. Solución: que el HTML inicial contenga el texto completo y JS sólo controle el mostrar/ocultar visual.
Error 3: Schema inyectado por JavaScript
Plugins SEO que añaden el schema vía JavaScript después de carga. El schema es la "etiqueta" del contenido para la IA; si no está en el HTML servido, vale cero. Tiene que estar embebido en el <head> o al final del <body> desde el servidor.
Conecta con schema y datos estructurados para GEO.
Error 4: Imágenes con loading="lazy" agresivo y alt en JS
Imágenes que se cargan sólo al scroll y cuyo alt se rellena por JavaScript. El crawler IA descarga el HTML y no ve ni la imagen ni el alt. Solución: alt siempre en el HTML servido.
Error 5: Title y meta description gestionados por React Helmet sin SSR
Frecuente en SPAs. El title cambia por ruta vía JS pero el HTML servido siempre tiene el mismo title placeholder. Para humanos funciona, para crawlers IA no.
Error 6: Páginas de blog en /blog/[slug] sin SSG
Si cada post se renderiza con JS y no hay generación estática, los crawlers IA verán todos tus posts iguales (sólo la plantilla, sin contenido específico). Catastrófico para autoridad.
Error 7: Cookie banner que bloquea el contenido
Algunos cookie banners renderizan un overlay opaco hasta que el usuario acepta, y el contenido detrás se ejecuta sólo después. Si el crawler IA no acepta cookies y el contenido depende de la aceptación, no llega.
Error 8: Carga condicional por geolocalización
Si tu web sirve contenido diferente según país detectado por IP del cliente, los crawlers (que vienen desde IPs concretas) pueden recibir versiones limitadas o mensajes de "no disponible en tu región".
Error 9: Server-side render parcial (sólo above-the-fold)
Algunas plataformas hacen SSR sólo del primer pliegue para acelerar TTFB y el resto se hidrata. El crawler IA sólo ve el primer pliegue. Si tu FAQ está al final de la página, no se cita.
Error 10: Bloqueo a User-Agents de bots IA en el WAF o CDN
Cloudflare, Akamai u otros WAFs pueden estar bloqueando o ralentizando bots IA sin que el dueño de la web lo sepa. Hay que revisar reglas de bot management y permitir explícitamente los crawlers de IA que quieres.
Profundizamos en crawlers IA y logs de servidor.
Solución por stack: cómo arreglarlo en tu plataforma
Webflow
Webflow sirve HTML completo por defecto en la mayoría de elementos. Riesgos típicos:
- FAQ en acordeón Webflow: el contenido suele estar en el HTML servido (bien), pero conviene comprobar con view-source que cada respuesta aparece como texto plano.
- CMS Collections: si las usas para blog, el contenido se genera en build. Bien.
- Embeds con JS de terceros: widgets de reservas, chatbots o vídeos pueden estar inyectados sólo vía JS. Si llevan contenido valioso, replícalo en HTML estático adyacente.
- Schema: Webflow no genera schema completo automáticamente. Hay que añadirlo manualmente en "Custom code" por página, dentro del
<head>.
Wix y Squarespace
Ambos sirven HTML renderizado en servidor por defecto. Riesgos:
- Plantillas con muchas animaciones JS que retrasan el contenido visible.
- Schema limitado y difícil de personalizar.
- Cookie banners pesados.
Auditar con curl y view-source para confirmar. Si tu plantilla no sirve el contenido en HTML plano, mejor cambiarla.
Framer
Framer sirve estático por defecto y tiene buen soporte para SSG. Riesgo principal: componentes interactivos custom (Code Components) que pueden romper el render estático si están mal escritos. Mantén el contenido importante en componentes nativos de Framer.
WordPress
WordPress es por defecto SSR (PHP renderiza HTML completo). Es de las plataformas más amistosas para crawlers IA. Riesgos:
- Page builders pesados (Elementor, Divi, WPBakery) pueden inyectar contenido vía JS si tienen widgets dinámicos. Comprobar.
- Cache mal configurada puede servir HTML obsoleto a los bots.
- Plugins SEO mal configurados pueden duplicar o vaciar metadatos.
- Plugins de chat / popup que ralentizan el HTML.
WordPress bien configurado es excelente para GEO.
Next.js, Nuxt, SvelteKit, Astro
Frameworks modernos con SSR/SSG por defecto. La opción técnica recomendada para una web nueva. Riesgos:
use clienten exceso en Next.js convierte páginas en CSR efectivo. Mantén las páginas de contenido como Server Components.- Streaming SSR mal configurado puede servir HTML incompleto.
dynamicconssr: falserompe el render. Sólo úsalo para componentes que no contengan contenido SEO/GEO.- Hidratación parcial mal hecha puede dejar bloques importantes invisibles.
Para gimnasios y entrenadores que quieran control total y máximo rendimiento, Next.js con SSG para blog y SSR para áreas dinámicas es el stack óptimo.
Bubble, Glide, Softr (no-code)
Estas plataformas suelen ser CSR profundo. Para landing puramente comercial puede funcionar (con dynamic rendering), pero para blog o páginas con contenido GEO conviene complementar con una web SSG aparte (Webflow o Next.js).
Squarespace + Acuity, Mindbody, Trainerize widgets
Los widgets de reservas o gestión de Mindbody, Trainerize o Acuity suelen cargar via JS. Eso es aceptable para el widget en sí, pero el contenido descriptivo del servicio (qué es, cuánto cuesta, para quién es) debe estar en HTML estático en la misma página, no dentro del widget.
Patrón de página optimizada para crawlers IA
Para que una página sea fácilmente extraíble por la IA y rinda en GEO, conviene seguir esta estructura mínima en HTML servido:
<!DOCTYPE html>y<html lang="es">.<head>con<title>específico,<meta name="description">,<link rel="canonical">, hreflang si aplica, Open Graph y JSON-LD schema completo.<body>con<h1>claro y único.- Respuesta rápida en 2-4 frases justo después del H1.
- Tabla de contenidos con
<a href>reales a anclas internas. - Bloques
<h2>y<h3>con contenido autosuficiente (recordar chunking semántico). - Tablas comparativas con
<table>HTML real. - FAQ con
<h3>por pregunta y respuesta como texto plano (no acordeón JS). - Bloque de autor con
Personschema ylast updatedvisible. - Footer con enlaces a páginas relacionadas en
<a href>reales.
Si esta estructura está en el HTML servido (no construida por JS), los crawlers IA la pueden trocear y citar.
Rendimiento y crawl budget: el otro lado de la moneda
Servir HTML completo no es suficiente si tu servidor tarda 4 segundos en responder. Los crawlers IA tienen presupuesto de tiempo limitado y abandonan páginas lentas. Objetivos prácticos:
| Métrica | Objetivo | Por qué |
|---|---|---|
| TTFB (Time to First Byte) | Menor a 800ms | Crawlers abandonan si tardas más |
| HTML size (sin comprimir) | Menor a 300KB | Chunking más eficiente |
| HTML comprimido (gzip/brotli) | Menor a 80KB | Velocidad y crawl budget |
| Imágenes en HTML | Con alt y dimensiones | Multimodalidad y CLS |
| Recursos críticos | En <head> | Render directo |
| Cache headers | Configurados | Bots respetan TTL |
Profundizamos en multimodalidad en GEO multimodal: imágenes, infografías, vídeo y citas.
llms.txt, sitemap.xml y robots.txt: la capa de orientación
Una vez tu HTML está bien servido, ayuda a los crawlers a encontrarlo:
- sitemap.xml actualizado con todas las URLs canónicas y
<lastmod>real. - robots.txt que permite explícitamente los bots IA que quieres y bloquea los abusivos.
- llms.txt con un índice claro de los recursos más valiosos para IA.
Sin estas señales, hasta una web técnicamente perfecta puede pasar desapercibida durante meses. Profundizamos en llms.txt y crawlers IA: guía técnica.
Plan de migración cuando tu web no es recuperable
A veces la arquitectura actual no permite SSR sin reescribir. Plan de transición razonable:
Semana 1-2:
- Auditoría completa con view-source, curl y Lynx en home, top 10 páginas y 5 posts de blog.
- Lista de hallazgos: qué contenido no aparece para los bots.
- Decisión: parche con dynamic rendering, cambio de stack o reescritura.
Semana 3-4:
- Si parche: configurar Prerender.io o equivalente para los user-agents IA.
- Si reescritura: elegir stack (Next.js, Astro o Webflow son las elecciones más comunes en fitness y wellness 2026).
- Migrar primero la home y las 5 páginas con más tráfico.
Semana 5-8:
- Migrar blog completo con SSG por slug.
- Implementar schema en HTML servido.
- Validar con auditoría repetida.
Semana 9-12:
- Medir aparición en ChatGPT, Perplexity y Google AI Mode antes y después.
- Iterar páginas que siguen sin aparecer.
- Documentar el patrón para mantenerlo.
Esto enlaza con migrar y cambiar software de gimnasio o entrenador sin perder datos ni clientes: el patrón de migración técnica es el mismo principio aplicado a infraestructura.
Casos de uso por perfil de negocio
Entrenador personal independiente con web Wix o Squarespace
Auditoría rápida con view-source. Si el HTML es correcto, lo que más rinde es añadir schema Person y Service manualmente desde el editor avanzado y trabajar páginas por nicho. Si la plantilla rompe el HTML servido, migrar a Webflow o a una landing en Framer ofrece la mejor relación esfuerzo-resultado.
Gimnasio independiente con WordPress
Suele estar bien por defecto. La palanca grande es revisar el cache, los plugins SEO y los page builders. Schema LocalBusiness, FAQ por servicio y publicaciones de blog con SSG bien configurado. Sin ello, no hay GEO posible.
Conecta con SEO local: Google Maps y AI Overviews.
Cadena multisede con SPA hecha por agencia
Casi siempre tiene problema de CSR. La inversión es real: o se añade dynamic rendering para bots IA o se migra a Next.js / Astro. Sin esto, ChatGPT no cita ninguna de las sedes. Profundizamos en software multisede para gimnasios y franquicias.
Fisioterapeuta o clínica con web pequeña
Suele ser viable arreglar con cambio de plantilla y schema Person + MedicalSpecialty. EEAT importa especialmente. Conecta con autoridad de autor y EEAT para GEO.
Estudio boutique con Framer o Webflow
Auditar componentes custom. La mayoría de elementos nativos funcionan bien para GEO. Schema Event para clases recurrentes y schema Service por modalidad. Profundizamos en software para estudios boutique de pilates y entrenamiento funcional.
Nutricionista deportivo o coach hibrido
Si combinas presencial y online, conviene una landing rápida con SSG, blog con SSG, y dejar las áreas de reserva o portal de cliente como CSR aceptable (ahí no compites en GEO, ahí gestionas). Profundizamos en coach híbrido presencial-online con IA.
Cómo conecta el renderizado con tu plataforma (Fitai Labs o equivalente)
La web es el escaparate, pero la operación detrás importa cuando llega un lead desde ChatGPT, Perplexity o Google AI Mode:
- Reserva online integrada que cargue rápido y trackee el origen IA.
- CRM unificado que registre el prompt asumido y la página de entrada.
- Asignación automática del lead a sede o coach apropiado.
- Agente IA en la web que recoja al usuario que llega con duda concreta.
- Mediciones que separen tráfico IA del tráfico Google clásico.
Sin estas piezas, una web técnicamente perfecta para GEO acaba enviando leads que nadie atiende a tiempo.
Si quieres que la web de tu gimnasio, centro wellness o consulta sea legible para todos los crawlers IA y que el tráfico que llegue se convierta en clientes, agenda una demo de Fitai Labs y revisamos tu auditoría técnica y qué páginas priorizar primero.
Preguntas frecuentes
¿GPTBot ejecuta JavaScript en 2026?
No, a fecha de junio de 2026 GPTBot sigue siendo un crawler que descarga HTML sin ejecutar JavaScript. OpenAI tiene un bot separado (OAI-SearchBot) para ChatGPT Search con renderizado más capaz, pero limitado. Asume que el HTML servido sin JS es lo que cuenta.
¿Si Googlebot ejecuta JS, no me arregla el problema?
Te arregla SEO clásico, pero no GEO. ChatGPT, Claude y Perplexity no usan el índice de Google ni su capacidad de renderizado. Tienes que servir HTML completo igualmente.
¿Cuánto tarda Google-Extended en ver mi web bien?
Google-Extended hereda de Googlebot, así que si Googlebot indexa tu sitio bien, Google-Extended (que alimenta Gemini y AI Overviews) también. Si estás solo en Googlebot ese ciclo es de días a semanas.
¿Es legal hacer dynamic rendering distinto para humanos y bots?
Sí, siempre que el contenido sea esencialmente el mismo. El "cloaking" abusivo (mostrar una cosa al bot y otra distinta al usuario) sí está penalizado. Servir HTML estático prerenderizado al bot y CSR al humano con el mismo contenido es práctica aceptada.
¿Necesito SSR si solo tengo una landing comercial sin blog?
Si tu landing es estática (texto fijo, imágenes, formulario), SSG es suficiente y a menudo más rápido. Lo importante es que el HTML servido tenga el contenido.
¿Webflow basta para una buena estrategia GEO?
Para la mayoría de negocios fitness y wellness, sí. Sirve HTML completo, permite schema manual y tiene blog con CMS. El límite aparece en sitios con miles de páginas o lógica muy custom.
¿Qué pasa con widgets de reserva como Calendly, Cal.com o TickPick?
Estos widgets se cargan vía JS y eso está bien porque su contenido (huecos disponibles) no necesita ser indexado por IA. Lo que sí debe estar en HTML estático es la descripción del servicio que enlaza al widget.
¿La hidratación parcial de React 19 / Next.js 16 ayuda con GEO?
Sí, mucho. Server Components sirven HTML completo desde servidor y sólo se hidratan los componentes interactivos. Es el patrón recomendado en stacks modernos para una web con contenido GEO.
¿Cómo verifico que mi CDN no está bloqueando a GPTBot?
Comprueba reglas de bot management en Cloudflare, Akamai o similar. En logs del servidor busca peticiones con user-agent GPTBot, ClaudeBot, PerplexityBot. Si no hay rastro durante semanas, probablemente están bloqueados.
¿Tiene sentido usar prerender.io en Webflow?
Webflow ya sirve HTML completo por defecto, así que prerender no es necesario en la mayoría de casos. Sólo sería útil si tienes elementos custom con mucha carga JS que aporten contenido importante.
¿El cookie banner afecta a los crawlers IA?
Sí, si el contenido se carga sólo tras aceptar cookies. Los crawlers no aceptan. Configura el banner para que el HTML del contenido se sirva siempre y el banner sólo controle cookies de tracking.
¿Cuánto sube la citación al pasar de CSR a SSR?
En auditorías reales sobre webs fitness y wellness, pasar de CSR a SSR completo eleva apariciones en ChatGPT y Perplexity entre un 40% y un 80% en 8-12 semanas, asumiendo que el contenido ya era citable en si.
Fuentes y referencias
- Google Search Central: Rendering on the web
- OpenAI: GPTBot documentation
- Anthropic: ClaudeBot crawler information
- Perplexity: Bot documentation
- Web.dev: Rendering on the web
- Cloudflare: AI bots and bot management
- Next.js: Server and Client Components
- Search Engine Land: AI crawlers and JavaScript rendering
