La mayoría de productos SaaS añaden un blog como algo secundario, tres años después de lanzar, cuando el equipo de marketing por fin pregunta por qué el tráfico orgánico está plano. Los desarrolladores instalan un WordPress en un subdominio, el SEO se fuga entre dos propiedades y nadie es dueño de la integración. Dos años más tarde, el blog tiene que publicarse en cinco idiomas y ahora el ingeniero fundador está escribiendo un pipeline de traducción a medida un miércoles a las 11 de la noche. Hay una forma más limpia de añadir un blog a tu producto SaaS y no requiere nada de eso.
Conclusiones rápidas
- Un blog dentro de tu producto SaaS necesita tres cosas: un almacén de contenido, una API de entrega y una capa de renderizado en tu app. Si te saltas alguna, lo pagas después.
- Los subdirectorios (
tuapp.com/blog) consolidan el SEO. Los subdominios (blog.tuapp.com) lo fragmentan. Esta es la decisión más cara que la gente toma mal. - Contentful Lite empieza en 300 $/mes. Sanity Free se topa en 10.000 documentos. Construir tu propio CMS cuesta de 4 a 12 semanas de ingeniería. Ninguna de estas opciones es la respuesta correcta para un equipo SaaS pequeño que quiere un blog en línea esta semana.
- La REST API Delivery de Kamaan devuelve JSON estándar a cualquier framework: Next.js, Nuxt, SvelteKit, Astro o cualquier otro. Auto-Multilingual Delivery publica las versiones en español, alemán, francés e italiano en el momento en que publicas en inglés.
- El primer mes es gratis. Una cuenta de Kamaan cubre sitios ilimitados a una tarifa mensual plana, así que añadir el blog a tu segundo producto más adelante no añade una segunda factura.
Las tres piezas en movimiento de un blog SaaS
Todo blog SaaS tiene las mismas tres piezas, da igual cómo lo construyas.
La primera pieza es el almacén de contenido. Aquí viven los artículos como datos estructurados, con campos para título, cuerpo, slug, metadatos, fechas de publicación programadas y traducciones. La segunda pieza es una API de entrega que pasa ese contenido a la app que lo va a renderizar. La tercera pieza es la capa de renderizado dentro de tu frontend SaaS que llama a la API, encaja el contenido en tu layout existente y lo sirve bajo tu dominio.
Cuando los equipos intentan atajar esto, normalmente se saltan la API y meten un iframe, o se saltan la capa de renderizado y alojan el blog bajo un dominio distinto. Los dos atajos cuestan más de lo que ahorran. Un blog en iframe no aporta al SEO de tu sitio porque Google indexa el dominio de origen del iframe, no el tuyo. Un blog en subdominio (blog.tuapp.com) sí se indexa, pero Google trata los subdominios como propiedades separadas, así que tu autoridad de enlaces no se acumula entre el producto y el blog. El alojamiento en subdirectorio (tuapp.com/blog) mantiene todo bajo un solo dominio y una sola superficie SEO, que es lo que ha mostrado cada estudio serio de SEO en la última década.
Por qué "usa WordPress y ya" suele estar mal para un producto SaaS
WordPress es la sugerencia por defecto porque todo el mundo lo ha instalado alguna vez. Para un sitio de marketing que no comparte dominio con un producto, está bien. Para un blog que tiene que vivir dentro de un frontend SaaS en React o Next.js, es un encaje forzado.
La integración siempre se convierte en un problema de reverse proxy. O ejecutas WordPress en un subdominio (lo que te cuesta la consolidación de SEO) o levantas una regla de reverse proxy que reescribe /blog/* a una instalación separada de WordPress. El enfoque del reverse proxy funciona, pero introduce un segundo despliegue, un segundo conjunto de parches de seguridad y un borde de estilos donde tu app SaaS deja de parecerse a sí misma. WordPress también asume renderizado en servidor por defecto, lo que choca con los frontends SaaS modernos construidos sobre Next.js, Nuxt o SvelteKit. Puedes usar WordPress de forma headless, pero a esas alturas tienes todo el coste operacional de WordPress más el coste de integración de un headless CMS, y ninguna de las ventajas multilingües o multi-sitio que te daría un headless CMS pensado para esto.
Un blog dentro de un producto SaaS no es un sitio aparte. Es contenido renderizado por la misma app que renderiza tu UI de producto. Eso es lo que resuelve un headless CMS y por eso la pregunta no es "WordPress sí o no" sino "qué headless CMS".

Cómo se ve realmente una integración limpia
Una integración limpia tiene cuatro propiedades. Primero, el contenido del blog se obtiene desde un único endpoint REST con JSON predecible. Segundo, ese endpoint es lo bastante rápido como para llamarse en cada request sin un paso de build. Tercero, el mismo almacén de contenido sirve cada versión de idioma de cada artículo, indexado de una forma que la API entiende. Cuarto, la integración toca tu repo existente, no uno separado.
En Next.js, el patrón es un server component o un route handler bajo /app/blog/[slug]/page.tsx que llama a la API del CMS en el momento de render. Con la entrega por REST API de Kamaan, esa llamada se parece a un fetch estándar contra /v1/sites/{site_id}/articles?slug=<slug>&language=en y devuelve el cuerpo del artículo, los campos SEO, la URL de la imagen destacada y el mapa completo de traducciones en una sola respuesta. Lo renderizas con tu layout existente, tu tipografía existente y tu analytics existente. Sin segundo despliegue, sin capa de estilos separada, sin reglas de proxy.
El mismo patrón funciona en Nuxt con una ruta de servidor, en SvelteKit con una función de carga +page.server.ts y en Astro con una ruta estática o dinámica. Al CMS no le importa qué framework uses. Ese es el sentido de una API REST: el contrato es el protocolo de red, no el framework.
Cómo elegir, en una sola tabla
La mayoría de equipos no tienen semanas para evaluar cada headless CMS del mercado. Abajo está la versión honesta de la comparación, puntuada en las dimensiones que realmente rompen la integración de un equipo SaaS pequeño.
| Enfoque | Tiempo de setup | Coste mensual | Multi-sitio | i18n automático | Riesgo de lock-in |
|---|---|---|---|---|---|
| Construir tu propio CMS | 4 a 12 semanas | Tiempo de ingeniería | Sí (tu código) | No | Alto (tu código) |
| WordPress en subdominio | 1 a 3 días | Unos 20 $/mes de hosting | 1 instalación por sitio | Plugin, de pago | Medio |
| Contentful Lite | 1 a 2 días | 300 $/mes | Entornos add-on | Flujo manual | Medio-alto |
| Sanity Free | 3 a 7 días (config de Studio) | 0 $ a 15 $/usuario/mes | Dataset por sitio | Flujo manual | Bajo-medio |
| Kamaan | Menos de 1 hora | Primer mes gratis, luego anual plano | Ilimitado bajo una sola cuenta | 99+ idiomas al publicar | Bajo (REST estándar) |
La infografía de abajo lista la misma comparación con las llamadas a la acción que más importan a un equipo pequeño que añade un blog este trimestre.

Contentful cobra 300 $/mes en el primer tier de pago. Sanity requiere schema-as-code y un desarrollador para configurarlo. Storyblok cobra por space, lo que se acumula rápido entre varios productos. Si tienes un producto, un idioma y ya conoces el espacio headless, Sanity Free es razonable. Si tienes varios productos o vendes en Europa o LATAM, las columnas de multi-sitio y multilingüe son donde se acumulan las diferencias de coste.
Paso a paso: añade un blog a una app SaaS existente en menos de una hora
Este es el camino con Kamaan. Sustituye por la herramienta de tu elección si estás evaluando otras, pero la forma de los pasos es la misma para cualquier headless CMS con REST API.
- Crea el sitio en tu CMS. Elige un identificador de sitio que coincida con tu dominio. Con Kamaan, esto es un formulario, un clic. Recibes una URL base de API y una API key de lectura. Sin schema que diseñar, sin Studio que desplegar. El Article CMS te da rich text, campos SEO, imagen destacada y programación de salida.
- Añade una ruta
/bloga tu app SaaS. En Next.js, eso es/app/blog/page.tsxpara el índice y/app/blog/[slug]/page.tsxpara el artículo. En Nuxt, SvelteKit o Astro, la ruta equivalente basada en ficheros. - Llama a la API desde el servidor. Usa el patrón de fetch recomendado por tu framework. Para Kamaan, un
GET /v1/sites/{site_id}/articles?status=publisheddevuelve el índice, yGET /v1/sites/{site_id}/articles?slug={slug}devuelve un artículo. La respuesta incluye el cuerpo del artículo como HTML, los campos meta SEO, la URL CDN de la imagen destacada y el mapa de traducciones. - Renderiza con tu layout existente. Envuelve el cuerpo del artículo en tu componente de tipografía. Mantén tu header, footer y analytics del resto de la app. Añade las meta tags de la respuesta de la API a tu
<head>. Pon las hreflang tags desde el mapa de traducciones. - Configura el routing de locales. Para SaaS multilingüe, el patrón de URL recomendado es
/[lang]/blog/[slug]. Kamaan devuelve un mapa de traducciones por artículo, así que puedes renderizar cada versión de idioma bajo su propio prefijo de locale sin un segundo fetch por idioma. - Publica. Escribe el artículo en el dashboard de Kamaan, programa o publica, y la API lo devuelve al instante. Con Auto-Multilingual Delivery, las versiones en español, alemán, francés e italiano salen en línea al mismo tiempo bajo sus slugs localizados.
El tiempo total, para un desarrollador que conoce su framework, está bastante por debajo de una hora. La mayor parte del tiempo se va en la tipografía y el cableado de meta tags dentro de tu app, no en el lado del CMS.
Dónde los fundadores suelen perder meses que no hacía falta perder
Tres patrones de fallo explican la mayor parte del tiempo desperdiciado que vemos.
El primero es poner el blog en un subdominio porque era más fácil en la semana uno. Seis meses después, los números de SEO están planos, alguien hace la auditoría y el equipo reconstruye la integración en un subdirectorio de todas formas. Elige el subdirectorio en el día uno y te saltas este ciclo.
El segundo es elegir un CMS que requiera schema-as-code (Sanity, Strapi) para un blog que tiene los mismos cinco campos que ha tenido cualquier blog. Título, cuerpo, slug, imagen destacada, fecha de publicación. No hay schema que diseñar. El tiempo de configuración en un CMS schema-as-code es trabajo de ingeniería real, y para un blog no se devuelve. Elige un CMS que venga con el tipo de contenido de blog ya definido.
El tercero es pagar por multilingüe a posteriori. Contentful, Sanity y Storyblok soportan contenido multilingüe, pero el flujo es "crea la versión en inglés, luego para cada idioma crea manualmente una entrada traducida". Para un equipo que publica 4 artículos al mes en 5 idiomas, son 20 tareas de traducción al mes que alguien tiene que gestionar. Auto-Multilingual Delivery de Kamaan publica las versiones en español, alemán, francés e italiano de cada artículo en el momento en que pulsas publicar en inglés. Cero pasos extra.
Escenarios reales
Una fundadora en solitario que lleva una herramienta SaaS B2B de facturación quiere un blog para SEO. Elige Kamaan, crea un sitio, suelta una ruta /blog en su app Next.js y la apunta a la REST API de Kamaan. Su primer artículo está en línea bajo kamaan.io/blog/... esa misma tarde. Escribe el siguiente post en inglés, pulsa publicar y en diez minutos Kamaan ha auto-publicado las versiones en español, alemán, francés e italiano en /es/blog/, /de/blog/, /fr/blog/ y /it/blog/. Google indexa las cinco en 48 horas. No escribió ni una palabra en un segundo idioma y no pagó a un proveedor de traducción.
Un fundador bootstrap que lleva tres productos SaaS publica actualizaciones de blog para los tres desde un único dashboard de Kamaan. Una cuenta cubre los tres sitios a una tarifa mensual plana. El mismo artículo en distintos productos no comparte contenido, pero el código de integración en cada frontend es idéntico: misma forma del endpoint REST, mismo schema de artículo, mismo manejo multilingüe. Cuando lance el producto número cuatro el próximo trimestre, añade un sitio, suelta la misma ruta /blog y entra en línea el mismo día.
FAQ
¿Cómo añado un blog a una app SaaS en Next.js sin romper mis rutas existentes?
Crea /app/blog/page.tsx para el índice y /app/blog/[slug]/page.tsx para los artículos individuales. Llama a tu headless CMS en el momento de render usando fetch() dentro del server component. Envuelve la respuesta en tus componentes de layout existentes. Con la REST API Delivery de Kamaan, el cuerpo del artículo viene como HTML, así que lo encajas en un wrapper de tipografía y lo sirves bajo tu dominio existente.
¿Mi blog debería vivir en blog.miapp.com o en miapp.com/blog?
miapp.com/blog. El hosting en subdirectorio consolida el SEO bajo tu dominio principal. Google trata los subdominios como propiedades separadas, lo que fragmenta tu autoridad de enlaces y ralentiza el tiempo para rankear. La única razón para usar un subdominio es si literalmente no puedes hacer que tu framework SaaS renderice contenido bajo /blog, lo que esencialmente nunca es cierto para Next.js, Nuxt, SvelteKit o Astro.
¿Puedo usar un headless CMS gratis para mi blog SaaS?
Sí, con matices. Sanity Free se topa en 10.000 documentos, lo que basta para un blog durante años. Contentful Free tiene límites más ajustados de entradas y llamadas API pero es viable para un blog pequeño. La pega en ambos es que los flujos multilingües son manuales y el multi-sitio cuesta extra. El primer mes de Kamaan es gratis con multilingüe completo en cada publicación, que es la prueba más limpia para un equipo que ya sabe que necesita traducciones.
¿Necesito un desarrollador para montar un blog en headless CMS?
Para Sanity, Strapi o cualquier CMS schema-as-code, sí. Para Kamaan, Contentful o Storyblok, el propio CMS es no-code; la integración en tu app necesita un desarrollador para el routing, el fetching y el trabajo de layout, que suele ser una tarde para alguien familiarizado con el framework.
¿Cómo hago multilingüe mi blog SaaS sin contratar traductores?
Elige un CMS donde lo multilingüe sea nativo, no un add-on. Auto-Multilingual Delivery de Kamaan publica las versiones en español, alemán, francés e italiano en el momento en que publicas en inglés. Cada versión recibe su propio slug localizado bajo /[lang]/blog/<slug>. Las hreflang tags se generan desde el mismo mapa de traducciones. La factura por traducciones se queda en cero.
¿Cuál es la diferencia entre un headless CMS y un CMS tradicional para un blog SaaS?
Un CMS tradicional como WordPress asume que es el dueño del renderizado. Un headless CMS almacena y sirve contenido vía una API; tu app hace el renderizado. Para un producto SaaS donde el blog tiene que vivir dentro de una app React, Vue o Svelte existente, headless es la única arquitectura que funciona sin un parche de reverse proxy.
¿Cómo de rápida tiene que ser la API de un headless CMS para un blog SaaS?
Un tiempo de respuesta por debajo de 100 ms es la línea por encima de la cual una página de blog se siente lenta. La REST API Delivery de Kamaan se sirve desde un edge CDN delante del almacén de contenido, así que las lecturas típicas están muy por debajo de eso. Para páginas renderizadas en servidor, también tienes la opción de cachear respuestas en la capa de datos de tu framework (Next.js revalidate, Nuxt useFetch con cache headers) para que la mayoría de requests no toquen el origen.
¿Añadir un blog a mi producto SaaS dañará mis Core Web Vitals?
Solo si lo haces mal. Renderiza el blog en servidor con los mismos componentes de layout que el resto de tu app, sirve las imágenes desde un CDN con atributos correctos de ancho y alto, y mantén la huella JavaScript de la ruta del blog ligera. Con la REST API Delivery de Kamaan y una ruta de blog estática o renderizada en servidor, los Core Web Vitals se quedan donde estaban antes de que existiera el blog.
Relacionado en Kamaan
- Qué es un CMS Headless: una guía clara para equipos SaaS. La categoría explicada sin jerga, con la tabla de comparación que puedes pasarle a un cofundador no técnico.
- Mejor CMS Headless para Startups: una comparativa honesta con precios. Puntuación lado a lado de las cinco herramientas que los equipos SaaS pequeños consideran de verdad en 2026.
- Cómo crear un blog multilingüe: guía completa para productos SaaS. La lectura más profunda en el lado i18n, incluidas las decisiones de hreflang y estructura de URL.
Empieza a construir con Kamaan
Un endpoint REST, cada idioma, cada sitio que lances.
Kamaan te da un dashboard para todos los blogs de tus productos, auto-traducidos a 99+ idiomas en cada publicación. Una cuenta cubre sitios ilimitados a una tarifa plana. El MCP Server te permite publicar desde Claude o ChatGPT. Primer mes gratis.

