SEO para Storyblok
Guía de SEO para Storyblok: renderizado del frontend, campos de metadatos, noindex en vistas previas, sitemaps, imágenes y datos estructurados.
Idiomas
1 señal de evidencia en esta página
- Herramienta activa relacionadaRaw vs. Rendered HTML Checker
Storyblok almacena contenido estructurado y lo entrega por REST o GraphQL, pero no renderiza las páginas. El frontend determina el SEO: SSG y SSR entregan HTML completo, mientras que CSR puede retrasar o impedir la lectura. Los campos SEO solo aportan valores; el frontend debe generar metadatos, canónicas, sitemap, robots.txt y JSON-LD. Los entornos de vista previa deben bloquearse con noindex desde el servidor.
Evidence for this claim The article's described storyblok-seo capabilities must be evaluated against the platform's current documentation rather than assumed to be search-engine behavior. Scope: Platform-specific capability documentation. Confidence: high · Verified: Storyblok documentation Evidence for this claim Regardless of platform, Google needs crawlable URLs, accessible rendered content, descriptive metadata, and valid search directives. Scope: Google requirements independent of platform. Confidence: high · Verified: Google Search Central: SEO Starter GuideTL;DR — Storyblok es un CMS «headless»: sirve para redactar contenido, pero no para mostrarlo. Un sitio independiente, creado con Next.js, Nuxt o Astro, obtiene el contenido y genera las páginas. Por eso, casi todo el resultado SEO depende de cómo se construya ese sitio, no de Storyblok. La regla principal es generar las páginas en un servidor o durante la compilación, no por completo en el navegador de quien visita. Las metadatos, el sitemap y robots.txt también deben configurarse en el frontend.
Qué es realmente Storyblok
Storyblok es un CMS headless visual. «Headless» significa que separa dos tareas que un CMS tradicional como WordPress mantiene juntas: el lugar donde se redacta el contenido y el sistema donde se muestra. Storyblok gestiona la redacción, almacena el contenido como bloques reutilizables, ofrece un editor visual y entrega ese contenido a un sitio independiente mediante una API.
La parte visible del sitio se construye con un entorno como Next.js, Nuxt, Astro o SvelteKit. Ese frontend obtiene el contenido de Storyblok y lo convierte en el HTML que leen Google y Bing. Por tanto, Storyblok apenas determina el SEO por sí solo: el resultado depende del sitio creado sobre la plataforma.
La regla principal
Cuando Googlebot solicita una página, el HTML terminado debe estar disponible. Hay dos métodos seguros y uno arriesgado:
- Generación anticipada (SSG): el contenido de Storyblok se integra en archivos HTML durante el despliegue. Es rápido y apto para buscadores.
- Generación en servidor (SSR): el servidor ensambla la página completa para cada solicitud. También es apto para buscadores y mantiene el contenido actualizado.
- Generación en el navegador (CSR): el servidor envía una página casi vacía y JavaScript la completa después. Es la opción arriesgada.
Google puede ejecutar JavaScript y leer posteriormente una página generada en el navegador, pero el proceso tarda más y es menos fiable. Muchos rastreadores de IA, incluidos los asociados con ChatGPT y Perplexity, no ejecutan JavaScript y solo reciben la página vacía. El HTML debe generarse en el servidor o durante la compilación.
Lo que Storyblok no gestiona automáticamente
En WordPress, un complemento como Yoast puede gestionar títulos, metadescripciones, sitemap y etiquetas canónicas. Storyblok no dispone de una capa equivalente. La SEO Fields App añade campos de título y descripción para el equipo editorial, pero el frontend todavía debe imprimir esos valores en la página. Se requiere:
- Añadir campos SEO, como título y descripción, al modelo de contenido.
- Conectar esos campos con el
<head>de la página. - Generar un sitemap y robots.txt en el frontend.
- Añadir datos estructurados (schema) en el frontend.
El riesgo silencioso: las páginas de vista previa
El editor visual de Storyblok muestra las páginas en una dirección de vista previa independiente. Si Google puede acceder a ese sitio, la copia provisional puede indexarse y duplicar el contenido en los resultados. El entorno de vista previa o pruebas debe bloquearse mediante un noindex servido por el servidor, no mediante JavaScript.
La pestaña Advanced explica los cuatro modos de renderizado, las aplicaciones SEO Fields y AI SEO, el riesgo de noindex en vistas previas, los sitemaps, el servicio de imágenes /m/ y la búsqueda con IA.
Evidence for this claim The article's described storyblok-seo capabilities must be evaluated against the platform's current documentation rather than assumed to be search-engine behavior. Scope: Platform-specific capability documentation. Confidence: high · Verified: Storyblok documentation Evidence for this claim Regardless of platform, Google needs crawlable URLs, accessible rendered content, descriptive metadata, and valid search directives. Scope: Google requirements independent of platform. Confidence: high · Verified: Google Search Central: SEO Starter GuideTL;DR — Storyblok es un CMS headless visual y orientado a API: almacena contenido en bloques y lo entrega por REST/GraphQL, pero el frontend renderiza las páginas y determina el SEO. SSG y SSR entregan HTML completo; CSR puede entregar HTML vacío y sufrir retrasos. SEO Fields App (
seo-metatags) y AI SEO App (sb_ai_seo) solo aportan valores de campos: el frontend debe generar metadatos, canónicas, sitemaps, robots.txt y JSON-LD. En vistas previas, useX-Robots-Tag: noindexservido por el servidor, nunca JavaScript. Use/m/para imágenes, genere el sitemap desde Content Delivery API y aproveche el contenido estructurado para la búsqueda con IA.
La separación fundamental: Storyblok almacena y el frontend renderiza
Storyblok es un backend. Proporciona un modelo con bloques reutilizables, un editor visual y una Content Delivery API (REST y GraphQL), pero no produce el HTML que rastrean los buscadores. Esa tarea corresponde a un frontend independiente —Next.js, Nuxt, Astro o SvelteKit— que obtiene el contenido y renderiza las páginas.
Storyblok lo expresa así: “Since Google doesn’t load content directly from Storyblok, your team is responsible for a fast and performant website.” (traducción) «Como Google no carga contenido directamente desde Storyblok, el equipo es responsable de que el sitio sea rápido y eficiente». Su guía añade: “AI doesn’t see your CMS directly. Search engines and generative models read what’s rendered on your website or app, not the JSON coming from Storyblok’s APIs.” (traducción) «La IA no ve el CMS directamente; los buscadores y modelos leen lo renderizado, no el JSON de las API de Storyblok». El CMS es casi neutral para SEO: las decisiones del frontend lo determinan todo. Es la arquitectura descrita en SEO para un CMS headless.
Estrategia de renderizado: la decisión SEO más importante
La forma en que el frontend renderiza el contenido es la principal palanca SEO. Los cuatro modos obtienen contenido de la misma CDN o API GraphQL de Storyblok:
SSG — generación de sitios estáticos. El HTML se crea al desplegar y se sirve como archivos estáticos: completo desde la primera petición y muy rápido. El contenido nuevo o editado exige recompilar, por lo que el webhook de publicación debe activar la compilación. Conviene para contenido mayormente estático.
SSR — renderizado en servidor. El HTML se genera para cada petición en un servidor o función perimetral. Se mantiene actualizado y completo; a cambio, aumentan el costo de infraestructura y, ligeramente, el TTFB.
ISR — regeneración estática incremental. Es estático de forma predeterminada y se regenera según un horario o bajo demanda. Es un punto medio para sitios grandes, pero la primera petición posterior a la revalidación puede recibir contenido obsoleto, como se explica en CMS headless.
CSR — renderizado en el cliente (SPA). El servidor envía un armazón casi vacío y el navegador construye el DOM. Googlebot pone la página en una cola que “may stay on this queue for a few seconds, but it can take longer than that” (traducción) «puede permanecer unos segundos, aunque puede tardar más». Los rastreadores que solo leen HTML ven el armazón. Nunca entregue contenido solo con CSR. Google advierte: “If the content isn’t visible in the rendered HTML, Google won’t be able to index it.” (traducción) «Si el contenido no aparece en el HTML renderizado, Google no podrá indexarlo».
Regla práctica: contenido mayormente estático → SSG; contenido volátil → SSR; sitios grandes y mixtos → ISR; CSR solo para superficies privadas no indexadas.
Funciones SEO integradas de Storyblok y sus límites
Storyblok ofrece tres formas de gestionar valores SEO. Las tres solo capturan valores; el frontend aún debe renderizarlos.
SEO Fields App (seo-metatags). Campo nativo con título, descripción, título
y descripción de OG, imagen de OG y vista previa del resultado de Google. Requiere
el plan Growth y debe añadirse a cada tipo de contenido.
AI SEO App (sb_ai_seo). Genera título, descripción, palabras clave y autor
con un LLM en 22 idiomas. Requiere Premium; Management API y un script de Node.js
permiten generar valores por lotes.
Modelado manual. Sin requisito de plan: añada seo_title, seo_description,
og_title, og_image, noindex (booleano) y canonical_url al modelo. Es la
opción más flexible para sitios complejos.
Lo imprescindible: ninguna aplicación de Storyblok renderiza etiquetas por sí
sola. Un componente global de cabecera o diseño debe leer los valores de la API
y generarlos en el servidor, con alternativas como (seo_title || story.name).
Etiquetas canónicas
Storyblok desconoce la estructura de URL del frontend. Calcule las canónicas allí,
normalmente con full_slug y el dominio, y renderícelas en el servidor. Deben ser
URL absolutas en todas las plantillas. Consulte
canonicalización.
Vista previa y borradores: el riesgo característico de Storyblok
El editor visual carga páginas en un iframe con parámetros _storyblok y
_storyblok_tk; la vista previa usa contenido draft y un preview access
token. Producción debe usar contenido published y el public access token.
Dos espacios separados evitan que un token erróneo exponga borradores en el índice.
La vista previa debe quedar fuera del índice. Google advierte: “When Google
encounters the noindex tag, it may skip rendering and JavaScript execution, which
means using JavaScript to change or remove the robots meta tag from noindex may
not work as expected.” (traducción) «Cuando Google encuentra noindex, puede
omitir el renderizado y JavaScript; cambiar la etiqueta mediante JavaScript quizá
no funcione». Proteja estos entornos con X-Robots-Tag: noindex desde el servidor
y Disallow: / en robots.txt. Vigile dominios de vista previa en Search Console.
Sitemaps y robots.txt
Storyblok no genera ninguno; ambos se crean en el frontend:
- Sitemap: obtenga las historias publicadas mediante Content Delivery API y
emita XML. En Astro use
@astrojs/sitemapy rutas de Links API; en Next.js,app/sitemap.tsonext-sitemap. Limite constarts_with, pagine sitios grandes y sincronice mediante el webhook de publicación. - robots.txt: permita rastrear páginas públicas en producción; la vista previa
debe incluir
Disallow: /y el encabezadoX-Robots-Taganterior.
Datos estructurados y JSON-LD
Storyblok almacena JSON estructurado, pero schema.org JSON-LD debe generarse en
el frontend: Googlebot lee HTML renderizado, no la API. Un componente JsonLd
puede asignar campos (story.published_at, story.updated_at, story.name) a un
<script type="application/ld+json"> servido por el servidor para Article,
BreadcrumbList, Organization, Product o FAQPage.
Imágenes y Core Web Vitals
Los recursos se sirven mediante Amazon CloudFront. El servicio de imágenes mejora las CWV cuando se utiliza correctamente:
- WebP y transformaciones se activan al añadir
/m/a la URL, por ejemplohttps://a.storyblok.com/f/xxxxx/image.jpg/m/800x600. Tamaño, recorte y calidad son parámetros almacenados en caché. Sin/m/se obtiene el original. - Defina
widthyheightpara evitar cambios de diseño (CLS). - Use
fetchpriority="high"yloading="eager"en la imagen LCP, yloading="lazy"bajo el primer pantallazo. - Añada un campo explícito
alt;filenameno es texto alternativo. Consulte texto alternativo.
Redirecciones, i18n y hreflang
Redirecciones. Storyblok no tiene gestor y cambiar un slug no crea un 301.
Use una historia redirects_config con bloques redirect_entry (source_url,
target_story), cárguela al compilar o solicitar, use resolve_relations para
actualizar destinos y refresque mediante el webhook.
Internacionalización. Storyblok admite traducciones por campo, carpeta y
espacio. Las respuestas incluyen alternates; úselo para renderizar
<link rel="alternate" hreflang="..."> en el servidor e incluya x-default.
Consulte hreflang.
Preparación para GEO y búsqueda con IA
El modelo estructurado por componentes favorece la IA: “Storyblok was built around
structured data from day one, thanks to its headless, API-first design.”
(traducción) «Storyblok se creó en torno a datos estructurados desde el primer
día gracias a su diseño headless orientado a API». Los LLM leen HTML renderizado,
por lo que se necesitan SSR/SSG, JSON-LD correcto y marcado semántico. El frontend
también puede generar llms.txt y llms-full.txt. Consulte búsqueda con IA
y llms.txt.
Conclusión
Storyblok es neutral para SEO y traslada la responsabilidad al frontend. Renderice
con SSR/SSG, genere los campos meta, proteja la vista previa con noindex en
servidor, cree sitemap y robots.txt y use /m/ para imágenes. Así puede superar a
un CMS tradicional descuidado; omitir esa capa causa fallos silenciosos. Consulte
SEO para CMS headless
y SEO con JavaScript.
Resumen de IA
Resumen de la versión avanzada:
- Storyblok almacena; el frontend renderiza. El CMS entrega contenido por REST/GraphQL, pero Next.js, Nuxt, Astro o SvelteKit determinan el SEO. Storyblok aclara que Google no obtiene el contenido directamente desde el CMS.
- El renderizado es la decisión principal. SSG y SSR entregan HTML completo; ISR es un punto medio; CSR arriesga HTML vacío y retrasos.
- Las funciones SEO solo capturan campos: SEO Fields App (
seo-metatags), AI SEO App (sb_ai_seo) o campos manuales. El frontend debe renderizar las etiquetas en el servidor. - La vista previa es el riesgo característico. Las URL usan
_storybloky contenido draft. Proteja entornos no productivos conX-Robots-Tag: noindexen servidor yDisallow: /, nunca con JS, porque Google puede omitir JavaScript al encontrar una página connoindex. - URL preferidas, sitemap, robots.txt y JSON-LD se crean en el frontend. Calcule
URL absolutas desde
full_slugy actualice el sitemap mediante el webhook. - Imágenes: añada
/m/para WebP y transformaciones; definawidth/height,fetchpriority="high"en la imagen LCP y camposalt. - Redirecciones e i18n: cambiar el slug no crea un 301; cree
redirects_configy usealternatespara hreflang yx-default. - Búsqueda con IA: el contenido estructurado ayuda, pero los LLM leen HTML
renderizado; mantenga SSR/SSG y JSON-LD, y considere
llms.txt.
Documentación oficial
Documentación de fuente primaria de los buscadores sobre renderizado headless y de Storyblok.
- Fundamentos de SEO para JavaScript — título oficial: “Understand JavaScript SEO Basics” (traducción) «Fundamentos de SEO para JavaScript»; explica rastreo → renderizado → indexación, la cola,
noindexmediante JS y la preferencia por SSR o prerrenderizado. - Renderizado para aplicaciones de contenido — título oficial: “Rendering for Content-Driven Web Apps” (traducción) «Renderizado para aplicaciones de contenido»; compara SSR, SSG y CSR para elegir el modo del frontend.
- Renderizado dinámico, solución obsoleta — título oficial: “Dynamic Rendering (deprecated workaround)” (traducción) «Renderizado dinámico, solución obsoleta»; explica por qué Google recomienda SSR, renderizado estático o hidratación.
- Metaetiqueta robots, data-nosnippet y X-Robots-Tag — título oficial: “Robots meta tag, data-nosnippet, and X-Robots-Tag” (traducción) «Metaetiqueta robots, data-nosnippet y X-Robots-Tag»; muestra cómo definir
noindexcon el encabezado HTTPX-Robots-Tag. - Bloquear la indexación con noindex — título oficial: “Block search indexing with noindex” (traducción) «Bloquear la indexación con noindex»; compara metaetiqueta y encabezado para excluir páginas.
Bing / Microsoft
- El nuevo Bingbot evergreen (Microsoft Edge) — título oficial: “The new evergreen Bingbot (Microsoft Edge)” (traducción) «El nuevo Bingbot evergreen (Microsoft Edge)»; Bingbot renderiza JavaScript mediante Edge (Chromium), con menos constancia que Google; conviene SSR/SSG.
- IndexNow / indexnow.org — protocolo que puede conectarse al webhook para notificar URL cambiadas.
Storyblok
- Preguntas frecuentes: CMS headless y SEO — título oficial: “FAQ: Headless CMS and SEO” (traducción) «Preguntas frecuentes: CMS headless y SEO»; delimita la responsabilidad SEO.
- Documentación de SEO Fields App y AI SEO App — títulos oficiales: “SEO Fields App docs” y “AI SEO App docs” (traducción) «Documentación de SEO Fields App y AI SEO App»; son los complementos nativos.
- API del servicio de imágenes — título oficial: “Image Service API” (traducción) «API del servicio de imágenes»; explica transformaciones y WebP mediante
/m/. - Conceptos de internacionalización y editor visual.
Citas de la fuente
Declaraciones textuales de Google y Storyblok. Cada enlace apunta al pasaje citado.
Google: cómo se procesan las páginas JavaScript
- “Once Google’s resources allow, a headless Chromium renders the page and executes the JavaScript. The page may stay on this queue for a few seconds, but it can take longer than that.” (traducción) «Cuando los recursos de Google lo permiten, Chromium sin interfaz renderiza la página y ejecuta JavaScript. La página puede permanecer unos segundos en la cola, aunque puede tardar más». — Documentación de Google Search Central. Ir a la cita
- “Keep in mind that server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.” (traducción) «El renderizado en servidor o el prerrenderizado siguen siendo recomendables porque aceleran el sitio para usuarios y rastreadores, y no todos los bots ejecutan JavaScript». Ir a la cita
- “If the content isn’t visible in the rendered HTML, Google won’t be able to index it.” (traducción) «Si el contenido no aparece en el HTML renderizado, Google no podrá indexarlo». Ir a la cita
Google: por qué falla noindex mediante JS
- “When Google encounters the
noindextag, it may skip rendering and JavaScript execution, which means using JavaScript to change or remove the robotsmetatag fromnoindexmay not work as expected.” (traducción) «Cuando Google encuentranoindex, puede omitir el renderizado y JavaScript; cambiar o quitar mediante JavaScript la etiqueta robots quizá no funcione como se espera». — Documentación de Google Search Central. Ir a la cita
Storyblok: dónde reside la responsabilidad SEO
- “Since Google doesn’t load content directly from Storyblok, your team is responsible for a fast and performant website.” (traducción) «Como Google no carga contenido directamente desde Storyblok, el equipo es responsable de que el sitio sea rápido y eficiente». — Preguntas frecuentes de Storyblok. Ir a la cita
- “AI doesn’t see your CMS directly. Search engines and generative models read what’s rendered on your website or app, not the JSON coming from Storyblok’s APIs.” (traducción) «La IA no ve el CMS directamente. Los buscadores y modelos generativos leen lo renderizado en el sitio o aplicación, no el JSON de las API de Storyblok». — Olena Teselko, Storyblok (contenido estructurado, octubre de 2025). Ir a la cita
- “Laying the foundation for structured content will pay off either way—both search engines and LLMs rely on it.” (traducción) «Sentar las bases del contenido estructurado dará frutos: tanto los buscadores como los LLM dependen de él». — Ronny Shani, Storyblok (agosto de 2025). Ir a la cita
- “headless CMSs and SPAs aren’t inherently SEO-unfriendly; rather, developers gain full markup control but must implement SEO foundations manually.” (traducción) «Los CMS headless y las SPA no son intrínsecamente perjudiciales para SEO; ofrecen control total del marcado, pero exigen implementar manualmente sus fundamentos». — Markus Oberlehner, Storyblok (2019). Ir a la cita
Lista de comprobación de SEO para Storyblok
Cubra en el frontend todo lo que la plataforma no hace automáticamente.
Renderizado
- Las páginas públicas entregan contenido en HTML desde la primera petición (SSG o SSR), no solo después de ejecutar JavaScript en el cliente.
- Ninguna página de contenido se entrega como SPA solo CSR; el HTML de origen amplía la cobertura de rastreadores de IA.
- El webhook de publicación activa una recompilación SSG o revalidación ISR para mantener al día el contenido y el sitemap.
Metadatos y URL preferidas
- Existen campos SEO en todos los tipos de contenido; la aplicación de campos SEO se añade por tipo, o se usan campos manuales.
- Un componente global de cabecera lee los valores y renderiza título, descripción, OG y Twitter en el servidor, con alternativas.
- Las URL preferidas son absolutas y se calculan con
full_slugy el dominio; además, se renderizan en el servidor en todas las plantillas.
Protección de vista previa y pruebas
- Producción usa contenido published y token public; la vista previa usa draft y token preview, preferiblemente en espacios separados.
- La vista previa devuelve
X-Robots-Tag: noindexdesde el servidor, no una metaetiqueta inyectada con JavaScript. - Su robots.txt contiene
Disallow: /. - Search Console se revisa para detectar dominios de vista previa inesperados.
Infraestructura de rastreo
- El sitemap se genera desde Content Delivery API y se envía a GSC y Bing Webmaster Tools.
- robots.txt de producción permite rastrear páginas públicas.
- JSON-LD (Article, BreadcrumbList, Organization, etc.) se renderiza en el servidor y supera Rich Results Test.
Imágenes e i18n
- Las URL usan
/m/para WebP y transformaciones. - Las imágenes incluyen
width/height; la principal usafetchpriority="high", las inferioresloading="lazy", y todas tienen un campoaltexplícito. - hreflang se construye desde
alternatese incluyex-default. - Un tipo
redirects_configasigna slugs cambiados a 301s, porque Storyblok no lo hace.
Modelos mentales
1. Storyblok almacena; el frontend renderiza. El CMS es casi neutral para SEO. Antes de investigar un problema, responda una pregunta: ¿cómo renderiza este contenido el frontend? Casi todo depende de ello.
2. Regla para elegir el modo de renderizado.
- Contenido mayormente estático (blog, documentación, marketing) → SSG con webhook.
- Contenido volátil (precios, inventario) → SSR.
- Sitio grande y mixto que necesita velocidad estática → ISR, vigilando la primera petición obsoleta.
- Superficies privadas no indexables → CSR es aceptable.
- Contenido público que debe posicionarse o citarse → nunca CSR.
3. Las aplicaciones capturan campos; el frontend genera etiquetas.
SEO Fields App y AI SEO App solo rellenan valores. Ninguna etiqueta llega al
<head> si el framework no lee el campo y lo genera en el servidor. Si las
etiquetas no aparecen tras instalar la aplicación, suele faltar ese paso.
4. noindex debe renderizarse en el servidor.
En vista previa, el único noindex fiable es un encabezado HTTP o una metaetiqueta
SSR. Google puede omitir JavaScript y no ejecutar un noindex inyectado en el
cliente. El encabezado del servidor siempre es preferible.
5. Una única fuente de verdad para las URL.
Canónicas, sitemap, hreflang y enlaces internos deben derivarse de full_slug y un
único SITE_URL, construido como URL absoluta en la capa de renderizado.
SEO para Storyblok: hoja de referencia rápida
Modos de renderizado de un vistazo
| Modo | Dónde se crea el HTML | SEO | Uso recomendado | Precaución |
|---|---|---|---|---|
| SSG | Compilación → archivos estáticos | ✅ Óptimo | Contenido mayormente estático | Obsoleto hasta recompilar; conecte el webhook |
| SSR | Servidor, por petición | ✅ Óptimo | Contenido siempre actualizado | Mayor costo y TTFB algo superior |
| ISR | Estático + regeneración | ✅ Bueno | Sitios grandes y mixtos | La primera petición puede recibir una página obsoleta |
| CSR | Navegador | ⚠️ Arriesgado | Paneles privados | HTML vacío para rastreadores de IA y retraso de renderizado |
Opciones integradas de campos SEO
| Opción | ID del campo | Plan | Notas |
|---|---|---|---|
| SEO Fields App | seo-metatags | Growth | Título, descripción y OG + vista previa; añadir por tipo |
| AI SEO App | sb_ai_seo | Premium | Metadatos con LLM en 22 idiomas; lotes mediante Management API |
| Campos manuales | (propios) | Cualquiera | Más flexible: seo_title, noindex, canonical_url, etc. |
Qué hace Storyblok y qué corresponde al frontend
| Gestionado por Storyblok | Responsabilidad del frontend |
|---|---|
| Almacena contenido y sirve API | Modo de renderizado (SSG/SSR/ISR/CSR) |
| Valores de campos SEO | Generar metaetiquetas en <head> |
Transformaciones mediante /m/ | Aplicar /m/, width/height, alt y carga diferida |
Datos alternates | Etiquetas hreflang y x-default |
| — | Canónicas, sitemap, robots.txt, JSON-LD y redirecciones |
Reglas rápidas
- Vista previa con
noindexmediante encabezado del servidor (X-Robots-Tag), nunca JS. - Producción = contenido published + token public; vista previa = draft + preview.
- WebP y transformaciones solo se activan con
/m/en la URL. - Cambiar el slug no crea 301s; cree
redirects_config. - El sitemap obtiene historias publicadas de la API CDN y se refresca con el webhook.
- El renderizado de rastreadores de IA varía por proveedor; el HTML de origen es la base más segura.
¿Cómo debe renderizarse una ruta de Storyblok?
Choose the frontend rendering path
Errores de SEO en Storyblok
- Suponer que los campos SEO se renderizan solos. El CMS almacena valores; la capa de presentación debe generar títulos, URL preferidas, directivas y datos estructurados.
- Entregar rutas indexables solo con CSR. Renderice contenido y enlaces en el HTML inicial mediante SSG o SSR.
- Permitir que se indexen vistas previas. Proteja el acceso y devuelva
noindexdesde el servidor, sin esperar a JavaScript. - Publicar sin invalidar el frontend. Conecte la publicación con la recompilación o revalidación de caché.
- Crear sitemaps con todas las historias. Incluya solo rutas canónicas, públicas e indexables; excluya borradores y vistas previas.
Los cambios publicados en Storyblok no aparecen
Causa probable: webhook fallido, compilación obsoleta o respuesta en caché. Solución: siga el evento en los registros y purgue solo la caché afectada. Comprobación: el HTML de origen contiene el contenido y los metadatos nuevos.
Los metadatos existen en Storyblok, pero no en el HTML
Causa probable: el frontend no asigna el campo o lo actualiza después de hidratar. Solución: renderice el componente SEO en servidor o compilación. Comprobación: curl devuelve título, canónica y directiva robots correctos.
Las páginas de vista previa aparecen en buscadores
Causa probable: el host es público y carece de exclusión en servidor. Solución: exija autenticación y envíe X-Robots-Tag: noindex o HTML equivalente en la respuesta inicial. Comprobación: la directiva aparece antes de ejecutar JavaScript.
Las imágenes de Storyblok son lentas o demasiado grandes
Causa probable: se solicitan originales sin transformaciones /m/ ni dimensiones. Solución: genere variantes adecuadas y reserve espacio. Comprobación: producción usa el recurso transformado y dimensiones acordes con la presentación.
Verificar la salida de Storyblok en el HTML de origen
url='https://example.com/page/'
curl -fsSL "$url" | grep -Eio '<title>[^<]+|<link[^>]+rel="canonical"[^>]*|<meta[^>]+name="robots"[^>]*'Ejecute esto en la consola de DevTools para inspeccionar la cabecera renderizada:
({title: document.title, canonical: document.querySelector('link[rel="canonical"]')?.href, robots: document.querySelector('meta[name="robots" i]')?.content});Las diferencias entre ambas salidas indican cambios de cabecera exclusivos del cliente.
Herramientas para comprobar Storyblok
- Comparador de renderizado compara contenido inicial y renderizado, metadatos, enlaces y señales robots.
- Comprobador de indexación de Google comprueba estado observable, URL preferida y bloqueos noindex en rutas públicas.
- HTTP Header Checker comprueba
X-Robots-Tag, caché y redirecciones de la vista previa. - Validador de sitemaps verifica que las URL respondan y no expongan rutas de vista previa ni URL alternativas indebidas.
Demostrar que una versión SEO de Storyblok funciona
Prueba de la ruta de publicación
Ejecución: publique un cambio controlado y siga webhook, compilación o revalidación y HTML en vivo. Resultado esperado: la ruta preferida se actualiza dentro del plazo habitual. Interpretación del fallo: la cadena o caché está obsoleta. Ventana de monitorización: SLA de publicación. Disparador de reversión: contenido y metadatos proceden de versiones distintas.
Prueba de exclusión de la vista previa
Ejecución: solicite URL de vista previa con curl -I e inspeccione el HTML de origen. Resultado esperado: el control de acceso y noindex visible para el servidor impiden indexar. Interpretación del fallo: la exclusión depende de JavaScript o falta. Ventana de monitorización: inmediata. Disparador de reversión: una respuesta pública es indexable.
Prueba de renderizado
Ejecución: compare la salida de origen y renderizada de plantillas representativas. Resultado esperado: contenido, enlaces, título, URL preferida y robots coinciden. Interpretación del fallo: el frontend depende del cliente para señales esenciales. Ventana de monitorización: cada versión. Disparador de reversión: una plantilla pierde contenido o señales en el HTML de origen.
Recursos recomendados
Mis textos
- Guía para principiantes de SEO técnico — fundamentos de este tema.
- Problemas y prácticas recomendadas de SEO con JavaScript — referencia sobre renderizado, URL preferidas con JS y metadatos para sitios headless.
Mis ponencias
- SEO con JavaScript — Ungagged 2019 (SlideShare) — separación de frontend y backend y renderizado sin estado de Googlebot. El consejo sobre renderizado dinámico está obsoleto; use SSR/SSG.
En este sitio
- SEO para un CMS desacoplado — guía general sobre modos, ISR, fragmentación de URL y migraciones.
- SEO con JavaScript — explicación detallada del renderizado.
- Canonicalización — mecanismo de consolidación de las URL preferidas.
Del sector
- Storyblok: preguntas frecuentes sobre CMS headless y SEO — responsabilidad SEO según Storyblok.
- Storyblok: SEO con Storyblok y Astro (Ronny Shani, agosto de 2025) — tutorial oficial por framework.
- Storyblok: contenido estructurado (Olena Teselko, octubre de 2025) — relación con búsqueda mediante IA.
- Storyblok: gestionar redirecciones con un CMS headless — patrón
redirects_config. - Webstacks: guía de optimización técnica — modelado, renderizado, Core Web Vitals y casos de migración.
- FocusReactive: errores habituales de SEO en Next.js (Alex Hramovich) — fallo de metadatos no servidos desde el servidor.
- Straffesites: sitemap localizado con Astro y Storyblok — implementación de sitemap e i18n.
Evaluación: SEO para Storyblok
Cinco preguntas breves sobre SEO con Storyblok. Seleccione una respuesta y compruébela.
Registro de cambios
Actualizado el 14 ago 2026.
Resumen editorial y detalles registrados del cambio.Detalles del cambio
-
Los detalles del cambio están disponibles actualmente en inglés.
La comparación completa no está disponible: no se archivó una instantánea anterior para esta revisión.
Actualizado el 14 ago 2026.
Resumen editorial y detalles registrados del cambio.Detalles del cambio
-
Los detalles del cambio están disponibles actualmente en inglés.
La comparación completa no está disponible: no se archivó una instantánea anterior para esta revisión.
Actualizado el 18 jul 2026.
Resumen editorial y detalles registrados del cambio.Detalles del cambio
-
Los detalles del cambio están disponibles actualmente en inglés.
La comparación completa no está disponible: no se archivó una instantánea anterior para esta revisión.