Headless CMS

Ein Content-Management-System, das Content und Darstellung vollständig trennt – Inhalte werden über eine API bereitgestellt und können in beliebigen Frontends (Web, App, Voice, Digital Signage) genutzt werden.

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Trennung von Content (Backend) und Darstellung (Frontend) – API-first
  2. Gleicher Content für Website, Mobile App, Voice Assistant, Digital Signage
  3. Entwickler wählen frei das Frontend-Framework (React, Vue, Astro, Next.js)

Sofortantwort

Headless CMS einfach erklärt

CMS ohne festes Frontend – Inhalte per API für beliebige Kanäle nutzbar.

Kurz gesagt
Trennung von Content (Backend) und Darstellung (Frontend) – API-first
Typischer Einsatz
Multi-Channel-Publishing, Moderne Web-Stacks, Marketing
Wichtig zu wissen
Entwickler wählen frei das Frontend-Framework (React, Vue, Astro, Next.js)

Headless CMS im Überblick

Traditionelle CMS wie WordPress sind monolithisch: Das System verwaltet Inhalte und generiert gleichzeitig das HTML für die Website. Das war jahrelang praktisch – aber es hat Grenzen.

Was ist, wenn der gleiche Inhalt auf einer Website, einer mobilen App, einem Smart Speaker und einem digitalen Infoscreen erscheinen soll? Ein traditionelles CMS kann das nicht – es ist auf eine Darstellungsform ausgerichtet.

Ein Headless CMS trennt diese Verantwortlichkeiten: Das CMS verwaltet Inhalte und stellt sie über eine API bereit. Das Frontend – egal ob Website, App oder Voice Interface – holt sich die Daten und stellt sie dar, wie es möchte.

Traditionell vs. Headless

Traditionelles CMS (WordPress):
  Redakteur schreibt Artikel

  WordPress speichert + generiert HTML

  Browser zeigt HTML an
  (nur eine Ausgabe möglich)

Headless CMS (Contentful):
  Redakteur schreibt Artikel

  Contentful speichert als strukturierte Daten

  API gibt JSON zurück

  Website (React) → rendert als Artikel
  Mobile App (Swift) → rendert als Card
  Smart Speaker → liest Text vor
  Newsletter → formatiert als E-Mail

Wann Headless, wann traditionell?

SituationEmpfehlung
Einfache Website, ein RedakteurWordPress / traditionell
Mehrere Kanäle (Web + App)Headless
Entwicklerteam vorhandenHeadless
Kein Entwickler, Redakteur macht allesTraditionell
Hohe Performance-AnforderungenHeadless + SSG
Komplexe Content-StrukturenHeadless

Technisch betrachtet

Content-Modellierung in Contentful

// Content-Typ "Article" in Contentful definiert:
{
  contentType: 'article',
  fields: [
    { id: 'title',       type: 'Symbol' },
    { id: 'slug',        type: 'Symbol' },
    { id: 'body',        type: 'RichText' },
    { id: 'author',      type: 'Link', linkType: 'Entry' },
    { id: 'heroImage',   type: 'Link', linkType: 'Asset' },
    { id: 'publishDate', type: 'Date' },
    { id: 'tags',        type: 'Array', items: { type: 'Symbol' } },
  ]
}

REST API abfragen

// Contentful REST API
const response = await fetch(
  `https://cdn.contentful.com/spaces/${SPACE_ID}/entries` +
  `?content_type=article&include=2&order=-fields.publishDate`,
  { headers: { Authorization: `Bearer ${ACCESS_TOKEN}` } }
);
const data = await response.json();
const articles = data.items;

GraphQL API (Contentful)

query GetArticles {
  articleCollection(order: publishDate_DESC, limit: 10) {
    items {
      title
      slug
      publishDate
      heroImage {
        url
        width
        height
      }
      author {
        name
        avatar { url }
      }
      body { json }
    }
  }
}

Astro + Headless CMS (wie dieses Projekt)

---
// src/pages/blog/[slug].astro
import { createClient } from 'contentful';

const client = createClient({
  space: import.meta.env.CONTENTFUL_SPACE_ID,
  accessToken: import.meta.env.CONTENTFUL_ACCESS_TOKEN,
});

export async function getStaticPaths() {
  const entries = await client.getEntries({ content_type: 'article' });
  return entries.items.map(entry => ({
    params: { slug: entry.fields.slug },
    props: { article: entry },
  }));
}

const { article } = Astro.props;
---

<article>
  <h1>{article.fields.title}</h1>
  <!-- Rich Text rendern -->
</article>

Sanity GROQ-Abfragen

// GROQ – Sanity's eigene Query Language
const query = `*[_type == "article" && !(_id in path("drafts.**"))] | order(publishDate desc) {
  title,
  slug,
  publishDate,
  "heroImageUrl": heroImage.asset->url,
  "authorName": author->name,
  body
}[0...10]`;

const articles = await sanityClient.fetch(query);

Preview Mode für Redakteure

// Next.js Draft Mode für Headless CMS Preview
// Redakteure sehen unveröffentlichte Inhalte live

export async function GET(request) {
  const { searchParams } = new URL(request.url);
  const secret = searchParams.get('secret');
  const slug = searchParams.get('slug');

  if (secret !== process.env.PREVIEW_SECRET) {
    return new Response('Unauthorized', { status: 401 });
  }

  // Draft Mode aktivieren
  draftMode().enable();
  redirect(`/blog/${slug}`);
}

01Einsatzbereiche

Wann ist Headless CMS sinnvoll?

Geeignet für

  • Multi-Channel-PublishingGleicher Artikel auf Website, App, Newsletter und Smart Speaker – einmal pflegen, überall ausgeben
  • Moderne Web-StacksAstro, Next.js oder Nuxt als Frontend, Contentful oder Sanity als Content-Backend
  • MarketingProduktbeschreibungen zentral verwalten, auf Website, App und Marktplätzen ausgeben

↑ Inhalt

02Werkzeuge

Womit Headless CMS umgesetzt wird

↑ Inhalt

Merksatz

Ein traditionelles CMS ist wie ein Fertighaus

Grundriss, Wände und Fassade sind fest verbunden. Ein Headless CMS ist wie ein Möbellager: Die Möbel (Inhalte) sind vorhanden, aber du entscheidest selbst, in welchem Raum (Website, App, Kiosk) sie stehen und wie sie aussehen.

  1. Trennung von Content (Backend) und Darstellung (Frontend) – API-first
  2. Gleicher Content für Website, Mobile App, Voice Assistant, Digital Signage
  3. Entwickler wählen frei das Frontend-Framework (React, Vue, Astro, Next.js)

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu Headless CMS

Was ist der Unterschied zwischen Headless CMS und traditionellem CMS?

Traditionelles CMS (WordPress, Typo3): Content und Darstellung sind gekoppelt – das CMS generiert HTML. Headless CMS: Das CMS liefert nur Daten (JSON via API), das Frontend ist komplett getrennt. Vorteil Headless: Mehr Flexibilität, bessere Performance, Multi-Channel. Nachteil: Mehr Entwicklungsaufwand, kein WYSIWYG out-of-the-box.

Was ist ein Composable DXP?

Digital Experience Platform – eine Weiterentwicklung des Headless-Ansatzes. Statt einem monolithischen System werden Best-of-Breed-Lösungen kombiniert: Headless CMS + Headless Commerce + Personalisierung + Analytics. Jede Komponente kann unabhängig ausgetauscht werden.

Ist WordPress auch headless nutzbar?

Ja. WordPress hat eine REST API und GraphQL (via WPGraphQL-Plugin). Man kann WordPress als Content-Backend nutzen und ein modernes Frontend (Next.js, Gatsby) davor schalten. Das nennt sich 'Decoupled WordPress'. Vorteil: Redakteure kennen WordPress. Nachteil: WordPress-Overhead bleibt.

Was ist der Unterschied zwischen REST und GraphQL bei Headless CMS?

REST: Feste Endpunkte, oft Over-fetching (zu viele Daten) oder Under-fetching (zu wenige). GraphQL: Flexible Abfragen – du fragst genau die Felder ab, die du brauchst. Für komplexe Content-Strukturen ist GraphQL oft effizienter. Viele Headless CMS bieten beide Optionen.

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    SEO

    Alle Maßnahmen für bessere Sichtbarkeit in Suchmaschinen – Technik, Inhalte und Links.

  • Technisch vertiefen

    Application Programming Interface

    Schnittstelle zur Kommunikation zwischen Softwaresystemen.

↑ Inhalt