Holograma de CMS headless: un núcleo de contenido ámbar que reparte bloques de luz dorada hacia una web y una app
Desarrollo Web

CMS Headless para Webs Corporativas: Cuándo Compensa

Codezone
Codezone Empresa de Desarrollo Web y Software a Medida

Un CMS headless es un gestor de contenidos que guarda textos e imágenes y los entrega por API, sin generar las páginas. En una web corporativa compensa cuando el mismo contenido alimenta varios canales o cuando el rendimiento y la seguridad pesan más que el catálogo de plugins. Lo integramos en proyectos de desarrollo web a medida en Madrid.

En un WordPress tradicional, el contenido comparte servidor con el tema y los plugins: una actualización de plugin puede romper la maquetación y el panel queda expuesto en internet. Si además ese texto debe aparecer en una app o en una PWA para empresas instalable en el móvil, acabas copiándolo a mano en cada sitio.

Al terminar sabrás qué CMS headless encaja con tu equipo editorial, después de descartar opciones con la guía técnica para escoger CMS.

Qué es un CMS headless

Un CMS headless es un sistema de gestión de contenidos que separa el almacén editorial de la capa de presentación: los editores crean contenido estructurado en un panel y el frontend lo consulta por una API REST o GraphQL para pintarlo en la web o en una app.

En un CMS acoplado, el mismo motor guarda el contenido y renderiza el HTML, como explica el artículo sobre cómo funciona el motor de WordPress. WordPress también puede trabajar en modo headless, porque su REST API permite a otra aplicación leer y escribir el contenido en JSON.

Núcleo holográfico ámbar que lanza haces de luz naranja hacia varias pantallas flotantes vacías sobre un suelo oscuro
Un único almacén de contenido sirve a todos los canales por API.

Sanity, Strapi, Contentful o WordPress como CMS headless

Los cuatro CMS se diferencian sobre todo en quién aloja el servidor y en cómo trabaja el editor cada día.

  • Sanity: Alojamiento: Content Lake gestionado por Sanity. Editor: Sanity Studio, una aplicación React que se adapta a tu modelo, con la herramienta Presentation para editar haciendo clic sobre la vista previa.
  • Strapi: Alojamiento: tu servidor o Strapi Cloud, con PostgreSQL, MySQL, MariaDB o SQLite. Licencia: MIT en la Community Edition y licencia propia en los módulos Enterprise, según su archivo de licencia en GitHub.
  • Contentful: Alojamiento: SaaS. Editor: borradores servidos por la Content Preview API con un token distinto del de producción.
  • WordPress: Alojamiento: tu servidor. Editor: el panel que muchos equipos ya conocen. Coste oculto: en modo headless pierdes el tema y los plugins que maquetan.

Previsualización y experiencia del editor

La previsualización decide si un CMS headless se adopta o se abandona, porque el editor necesita ver la página antes de publicarla.

Con Next.js, Draft Mode salta la caché solo para quien tiene la cookie de vista previa, mientras el resto de visitantes recibe la versión cacheada, como describe la guía oficial de Draft Mode de Next.js. La elección del framework la tratamos en la comparativa entre React y Next.js para webs a medida.

  • Modelo de contenido: tipos como servicio, caso de uso o página legal, con campos validados, en lugar de un único cuadro de texto libre.
  • Roles: quien redacta no publica. Comprueba que el plan contratado del CMS permite separar ambos permisos.
Marco de cristal dorado que proyecta una página abstracta de líneas luminosas sin texto legible junto a un panel de bloques
La vista previa enseña el borrador tal como lo verá el visitante.

SEO en una web corporativa con CMS headless

Un CMS headless no posiciona ni penaliza por sí mismo: el SEO depende de que el frontend sirva HTML renderizado en el servidor con metadatos que salen de campos del CMS.

Cuándo elegir un CMS headless para tu web

Un CMS headless encaja cuando hay contenido que reutilizar y un equipo técnico que mantiene el frontend.

  • Cuándo sí: contenido compartido entre web y app, varios idiomas, picos de tráfico o requisitos de seguridad que desaconsejan exponer el panel.
  • Cuándo no: una web de pocas páginas que cambia dos veces al año, o un equipo sin desarrolladores que depende de plugins para cada cambio.

Los formularios no viven en el CMS: los resuelve la capa de formularios web conectados al CRM con consentimiento RGPD.

CodeZone Pro Tip: este script consulta el contenido publicado en Sanity y lista las páginas con el título o la descripción SEO vacíos o fuera de longitud.
import json
import os
import urllib.request

# Modelo de ejemplo: documentos "page" con seoTitle, seoDescription y slug. Ajusta los nombres al tuyo
PROJECT = os.environ["SANITY_PROJECT_ID"]
DATASET = os.environ.get("SANITY_DATASET", "production")
URL = f"https://{PROJECT}.api.sanity.io/v2025-02-19/data/query/{DATASET}?perspective=published"
GROQ = '*[_type == $tipo]{ "slug": slug.current, seoTitle, seoDescription }'

def consultar(tipo: str) -> list:
    cuerpo = json.dumps({"query": GROQ, "params": {"tipo": tipo}}).encode("utf-8")
    req = urllib.request.Request(URL, data=cuerpo, headers={"Content-Type": "application/json"})
    token = os.environ.get("SANITY_TOKEN")  # solo hace falta si el dataset es privado
    if token:
        req.add_header("Authorization", f"Bearer {token}")
    with urllib.request.urlopen(req, timeout=20) as resp:
        return json.load(resp)["result"]

def problemas(doc: dict) -> list:
    titulo, desc = doc.get("seoTitle") or "", doc.get("seoDescription") or ""
    fallos = []
    # Límites internos de redacción, no reglas de Google: fíjalos con tu equipo de contenidos
    if not 10 <= len(titulo) <= 60:
        fallos.append(f"título de {len(titulo)} caracteres")
    if not 120 <= len(desc) <= 160:
        fallos.append(f"descripción de {len(desc)} caracteres")
    return fallos

if __name__ == "__main__":
    for doc in consultar("page"):
        fallos = problemas(doc)
        if fallos:
            print(doc.get("slug") or "(sin slug)", "->", ", ".join(fallos))

Programado cada noche, este control detecta la página que un editor publicó con prisa antes de que Google la indexe con un fragmento cortado, y convierte una revisión manual en una lista de tareas concreta.

Columnas de cristal naranja con anillos dorados que se iluminan al pasar un escáner de luz ámbar por su superficie
Los campos SEO se validan antes de que la página llegue a Google.

Lo Que Arriesgas Si Eliges el CMS por Moda

Un CMS headless mal elegido deja a los editores sin vista previa y obliga a pedir al desarrollador cada cambio de texto. Elegido con el modelo de contenido claro, separa a quien escribe de quien programa y reduce la superficie expuesta de la web.

Puente holográfico ámbar que se divide en dos tramos, uno sólido y dorado y otro que se fragmenta en partículas naranjas
La elección del CMS condiciona años de trabajo editorial.

En Codezone diseñamos el modelo de contenido y conectamos el CMS que mejor encaja con tu equipo. Explícanos cómo se edita hoy tu web y te recomendamos la arquitectura.