Logo for CMSstash

CMS - Wie ein Content Management System funktioniert

Ein Web Content Management System (CMS) ist ein Redaktionssystem zur Verwaltung von Web-Inhalten. CMSstash stellt die wichtigsten Systeme vor.

Das Wichtigste in Kürze

  • Ein (Web) Content Management System (CMS) ist eine Software zur Verwaltung von Online-Inhalten und häufig auch zur Erstellung von Webseiten.
  • Zu den Kern-Funktionen eines CMS gehören die Speicherung, die Verwaltung, die Auslieferung und ggf. die Darstellung von Inhalten.
  • Neben den traditionellen CMS gibt es Headless-CMS, die sich nur auf die Auslieferung von Inhalten konzentrieren und auf eine Darstellung als Webseite verzichten.
  • Die Auswahl an Content Management System ist groß und häufig sind spezialisierte Systeme besser geeignet als Standard-Lösungen.

Wofür man ein Content Management System braucht

Ein CMS (Content Management System) wird zur Verwaltung von Inhalten verwendet. Wenn es dabei um Web-Inhalte geht, spricht die Fachliteratur von einem WCMS oder einem Web Content Management System.

Traditionell wurden Content Management Systeme wie WordPress, Drupal oder TYPO3 hauptsächlich zur Erstellung und Verwaltung von Webseiten verwendet. Inzwischen hat sich der Fokus jedoch verschoben, da neben der Webseite oft weitere Kanäle wie Mobile Apps, IoT-Geräte oder externe Shops mit Inhalten versorgt werden müssen. Als Reaktion darauf ist mit den Headless CMS eine neue CMS-Gattung entstanden, mit denen man Inhalte neutral verwalten und über ein Programmier-Schnittstelle (API) ausliefern kann, jedoch nicht mehr direk eine Webseite produziert. Auch die meisten traditionellen CMS bieten inzwischen eine Auslieferung ihrer Inhalte per API-Schnittstelle an.

Wie ein Content Management System funktioniert

Ein Content Management System übernimmt im Kern drei bzw. vier Aufgaben: Es speichert Inhalte, verwaltet Inhalte und liefert Inhalte aus. Zumindest bei traditionellen CMS oder Hybrid CMS gehört auch die Darstellung von Inhalten zu den Kern-Aufgaben.

graph TD
    CMS[CMS <br> Content Management System]
    CMS --> Speichern[Inhalte speichern]
    CMS --> Verwalten[Inhalte verwalten]
    CMS --> Ausliefern[Inhalte ausliefern]
    CMS --> Darstellen[Inhalte darstellen]

    subgraph Frontend
        Front[Template Engine<br>Themes]
    end

    subgraph Formate
        Format[JSON<br>HTML<br>XML<br>PDF<br>...]
    end

    subgraph Aktionen
        Aktion[erstellen<br>editieren<br>publizeren<br>löschen<br>...]
    end

    subgraph Arten
        Speicher[Relationale DB<br>NoSQL-DB<br>Content Repo/JCR<br>Vector DB<br>Flat-File]
    end

    Speichern --> Speicher
    Verwalten --> Aktion
    Ausliefern --> Format
    Darstellen --> Front

Abhängig vom Content Management System gibt es natürlich für jeden Bereich unendlich viele Ausbaustufen, aber auch eine Art Minimal-Set an Funktionalitäten, die jedes CMS mitbringen sollte. Zum besseren Verständnis werden diese Kern-Funktionen etwas genauer erklärt.

Inhalte speichern

Zu den Kern-Aufgaben eines Content Management Systems gehört die Speicherung von Inhalten. Dabei gibt es die unterschiedlichsten Spielarten. Für Autoren und Content Manager sind diese Spielarten nicht sonderlich relevant. Sie können jedoch für Webseiten-Betreiber und IT-Abteilung von großer Bedeutung sein, weil sie unterschiedliche Vor- und Nachteile haben.

flowchart TD
    A["Speicherarten bei CMS"] --> B["Relationale DB"]
    A --> C["Flat-File"] 
    A --> D["Baumstruktur"] 
    A --> E["NoSQL"]
    A --> F["Vektor"]
    B -- MySQL, MariaDB, PostgreSQL --> B1["WordPress, Drupal, Joomla"]
    C -- Markdown, TXT, JSON --> C1["Kirby, Statamic, Typemill"]
    D -- "JCR - Java oder PHPCR - PHP" --> D1["Adobe AEM, Magnolia, Sulu"]
    E -- MongoDB, CouchDB --> E1["Payload, Strapi"]
    F -- "KI-Anwendungen, semantische Suche" --> F1["Nur als Zusatz"]

Die großen und bekannten CMS wie WordPress, Drupal oder Joomla nutzen zur Speicherung von Inhalten eine klassische relationale Datenbank. Verbreitet sind Datenbanken wie MySQL, MariaDB oder PostgreSQL. Welche Datenbanken ein CMS unterstützt, ist in den jeweiligen Systemvoraussetzungen angegeben.

Es gibt jedoch auch Content Management Systeme, die ohne eine Datenbank auskommen. Sie speichern die Inhalte stattdessen in Dateien auf dem Server ab und werden deshalb gerne als Flat-File-CMS bezeichnet. Zu den Flat-File-CMS gehören beispielsweise Kirby, Statamic und Typemill. Als bevorzugtes Datei-Format für Inhalte hat sich in den letzten Jahren vor allem Markdown etabliert. Es sind jedoch auch andere Formate wie TXT, XML, JSON oder direkt HTML denkbar. Zu den Vorteilen von Flat File CMS zählen unter anderem die tendenziell höhere Sicherheit und die einfachere Handhabung, zum Beispiel bei einem Umzug der Webseite.

Es gibt auch einige komplexe Enterprise-CMS, die auf eine klassische Datenbank verzichten. Dazu gehören Adobe AEM, Magnolia oder auch Sulu. Diese Systeme speichern Inhalte in einer hierarchischen Baumstruktur und nutzen etablierte Standards. Für die Programmiersprache Java gibt es den Standard JCR (Java Content Repository) und für die Sprache PHP gibt es den Standard PHPCR. Diese Systeme können besonders gut mit unstrukturierten Inhalten umgehen und erlauben eine sehr flexible Verwendung des Contents.

Es gibt noch weitere Variationen und Zwischenformen, beispielsweise integrierte Datenbanken wie SQLite oder auch NoSQL-Datenbanken wie MongoDB oder CouchDB, die ebenfalls sehr gut mit unstrukturierten Inhalten umgehen können. Die Details sind jedoch eher für Datenbank-Experten relevant. Zuletzt gibt es auch noch Vektor-Datenbanken. Vektor-Datenbanken wandeln Inhalte in numerische Vektoren um, was vor allem für KI-Anwendungen wie semantische Suche oder Ähnlichkeitsanalysen relevant ist. Im Bereich der Content-Management-Systeme kommen Vektor-Datenbanken allerdings nur als zusätzliche Speicherart für spezielle Anwendungszwecke zum Einsatz.

Bei der Unterscheidung zwischen klassischen Datenbanken und File-basierten Ablage-Systemen geht es vor allem um die Speicherung von Text-Inhalten. Bilder, Dokumente und andere Dateien – sogenannte 'Assets' – werden in der Regel unabhängig vom eigentlichen Inhaltsmanagement im Dateisystem des Servers gespeichert und verwaltet.

Inhalte verwalten

Inhalte müssen verwaltet, also zum Beispiel erstellt, editiert, gelöscht oder publiziert werden. Dazu bieten Content Management Systeme eine Benutzeroberfläche an (ein sogenanntes "User-Interface"). Über die Benutzeroberfläche können die Redakteure den Content "managen" und die Administratoren das CMS konfigurieren.

graph TD;
    A[CMS Kernfeatures]
    A --> B[Seitenverwaltung]
    A --> C[Content-Erstellung]
    A --> D[Medien-Verwaltung]
    A --> E[Konfiguration]
    A --> F[Nutzerverwaltung]
    A --> G[Rollen und Rechte]

    B --> B1[Zugriffssteuerung<br>Sortierung<br>Publikations-Status<br>Freigabe-Workflows<br>Hierarchische Struktur<br>Mehrsprachigkeit<br>...]
    C --> C1[Formularbasierte Eingabe<br>Block-Editoren<br>HTML-Editoren<br>Markdown-Editoren<br>Incontent Editing<br>...]
    D --> D1[Dateiverwaltung<br>Digital Asset Management/DAM<br>...]
    E --> E1[Administrations-Interface<br>Systemeinstellungen<br>Theme-Anpassungen<br>Plugin-Management<br>...]
    F --> F1[Benutzerregistrierung<br>Passwortrücksetzung<br>Zwei-Faktor-Authentifizierung/2FA<br>...]
    G --> G1[Feste Rollen<br>Individuelle Rechtevergabe<br>Gruppenbasierte Rechte]

Diese kleine Feststellung hat es ganz schön in sich, denn für eine sinnvolle Interaktion mit Redakteuren und Administratoren benötigt ein Content Management System zahlreiche Features. Features, die das CMS sehr komplex machen können. Das Minimal-Set an Features für eine brauchbare Benutzeroberfläche sieht etwa wie folgt aus:

  • Seitenverwaltung: Die einzelnen Seiten des Webauftritts müssen in der Benutzeroberfläche irgendwo angelegt, sortiert und verwaltet werden.
  • Content-Erstellung: Für die Content-Erstellung muss es in der Autorenoberfläche entsprechende Eingabefelder und Editoren geben. Üblich sind rein formular-basierte Eingabefelder, Block-Editoren oder ein Incontent-Editing, oft gibt es auch Mischungen aus allen Formen. Für die Bearbeitung von Fließtexten kommen üblicherweise Markdown- oder HTML-Editoren zum Einsatz.
  • Medien-Verwaltung: Medien wie Bilder, Videos oder PDFs werden in einem CMS meist separat verwaltet und auf dem Dateisystem gespeichert. Bei komplexen Content Management Systemen wird für die Medien-Verwaltung eine eigenständige Software integriert, die häufig als Digital Asset Management System (DAM) bezeichnet wird.
  • Konfiguration: Selbst das einfachste Content Management System bietet ein paar Grund-Konfigurationen an. Dazu wird ein Konfigurations-Management benötigt, das allerdings nicht zwingend in der Nutzeroberfläche abgebildet sein muss.
  • Nutzerverwaltung: Damit sich Nutzer überhaupt anmelden können, benötigt ein CMS eine Nutzerverwaltung. Dort lassen sich neue Nutzer anlegen sowie Rollen und Rechte verwalten.
  • Rollen und Rechte: Da nicht alle Nutzer die gleichen Aufgaben übernehmen (z.B. Redakteure und Administratoren), muss bzw. sollte es verschiedene Rollen und Rechte geben. Im einfachsten Fall bietet das CMS zwei oder drei feste Rollen an, die man einem Nutzer zuweisen kann. Bei komplexen Content Management Systemen kann man diese Rollen selbst anlegen und Rechte individuell verteilen.

Neben solchen Basis-Features hängt die weitere Ausgestaltung der Nutzeroberfläche sehr stark vom jeweiligen Content Management System ab. Ein paar Feature-Beispiele: Viele CMS bieten eine Content-Modellierung an, zum Beispiel mit Hilfe eines Formular-Managers. In diesem Fall erstellt der Redakteur die Inhalte nicht mit einem einzigen Standard-Editor, sondern mit mehreren passgenauen Formularen, die von einem Entwickler je nach Anforderung der Webseite individuell zusammengestellt werden können. Ein CMS kann auch ein konfigurierbares Workflow-Management für die Inhaltsverwaltung oder Funktionen für mehrsprachige Webseiten bereitstellen. Bei einer E-Commerce-Ausprägung kommen noch Payment-Features und eine Produkt-Verwaltung hinzu, wobei auch hier oft separate Systeme wie ein Produkt Informations Management (PIM) zum Einsatz kommen. Diese Feature-Beispiele lassen sich endlos fortsetzen.

Eine hohe Komplexität ist übrigens nicht immer beliebt. Daher verzichten viele Entwickler bewusst auf ein CMS mit einer komplexen Verwaltungsoberfläche. Stattdessen nutzen sie zur Erstellung eines Web-Auftritts einen so genannten Static Site Generator. Wie der Name schon sagt, kann man mit Static Site Generator wie Jekyll oder Gatsby statische Web-Auftritte generieren. Static Site Generatoren werden nicht über eine Benutzeroberfläche bedient, sondern über Programmier-Befehle, die der Entwickler über die Konsole eingeben kann. Static Site Generatoren werden nicht zu den vollständigen Content Management Systemen gezählt, denn sie können Inhalte nur darstellen (z.B. als HTML-Seite), nicht jedoch speichern, verwalten oder dynamisch ausgeben.

Inhalte ausliefern

Mit einem Web CMS kann man Inhalte nicht nur verwalten, sondern auch ausliefern. Dafür sind mindestens zwei zentrale Funktionen erforderlich: Eine Zugriffssteuerung und die Steuerung des Ausgabeformats.

graph TD
    A[Inhalte ausliefern] --> B[Zugriffssteuerung];
    A --> C[Ausgabeformate];
    A --> D[Bereitstellung];

    B --> B1[Publikations-Status<br>Freigabeprozesse<br>Nutzergruppen<br>Kanäle<br>Personalisierung<br>...];
    C --> C1[HTML<br>JSON<br>XML<br>RSS<br>PDF & Word<br>...];
    D --> D1[Browser → HTML<br>Download → Dateien<br>API → JSON/XML<br>Feed → RSS<br>...]
  • Zugriffssteuerung: Bei der Zugriffssteuerung geht es um die Frage, wer welche Inhalte wann sehen darf. Ein CMS sollte mindestens zwischen nicht öffentlichen und öffentlichen Inhalten unterscheiden (z. B. "Draft" und "Publish"). Oft gibt es weitere Steuerungsmöglichkeiten wie die Veröffentlichung für bestimmte Nutzergruppen oder Kanäle, mehrstufige Freigabeprozesse, zeitgesteuerte Veröffentlichung oder eine personalisierte Inhaltsausgabe basierend auf Regeln oder Nutzerdaten.
  • Ausgabeformate: Ein CMS kann Inhalte in verschiedenen Formaten ausgeben. Als Daten-Formate sind JSON, XML oder RSS üblich, bei Dokumentenformaten dominiert natürlich HTML, es gibt jedoch auch Systeme die Formate wie PDF oder Word ausliefern können.

Neben der klassischen Auslieferung als HTML-Seite über eine URL setzen moderne Systeme zunehmend auf Application Programming Interfaces (APIs). Über APIs lassen sich Inhalte in strukturierten Formaten (meist JSON) abrufen und flexibel in externen Anwendungen weiterverarbeiten.

Inhalte darstellen

Die Darstellung von Inhalten ist nicht zwangsläufig eine Funktion eines CMS. Klassische CMS übernehmen sowohl die Bereitstellung als auch die Darstellung der Inhalte, während die jüngeren Headless-CMS sich ausschließlich auf die Bereitstellung konzentrieren. Die Darstellung erfolgt dann durch eine externe Anwendung.

graph TD
    A[Templates & Themes] --> B[Template Engines];
    A --> C[Themes];

    B --> B1[<b>PHP</b><br>Twig<br>Smarty];
    B --> B2[<b>Java</b><br>JSP<br>Thymeleaf];
    B --> B3[<b>JavaScript</b><br>Mustache<br>Handlebars];

    C --> C1[Responsive Webdesign<br>Barrierefreiheit<br>CSS-Styling<br>Typografie<br>...];

Ein traditionelles CMS bietet hingegen neben der Inhaltsauslieferung auch eine visuelle Darstellung in Form einer Webseite (HTML). Dafür sind einige Funktionen notwendig:

  • Template Engine: Eine Template-Engine integriert die dynamischen Inhalte aus dem CMS in ein statisches HTML-Dokument – vergleichbar mit einem Seriendruck, bei dem Platzhalter mit Daten gefüllt werden.
  • Themes: Während die Template-Engine die inhaltliche Integration übernimmt, sorgt das Theme für die Gestaltung, also das Web-Design. Darunter fällt auch das Responsive Webdesign, also die Optimierung der Darstellung für mobile Endgeräte bzw. generell für verschiedene Bildschirm-Größen.

Auch in diesem Bereich gibt es zahlreiche Variationen und zusätzliche Feature, beispielsweise eine Seitenvorschau oder die Konfigurationsmöglichkeiten von Themes.

Weitere Features eines CMS

Die oben beschriebenen Features sind Kern-Bestandteile eines vollständigen CMS, sozusagen ein Minimal-CMS. Über diese Kern-Funktionen hinaus sind dem Feature-Reichtum eines CMS keinerlei Grenzen gesetzt. Fast jedes Content Management System bietet beispielsweise die Möglichkeit, eigene Erweiterungen zu entwickeln. Solche Funktionserweiterungen werden dann gerne als Plugins, Extensions oder Module bezeichnet. Welche Features es sonst noch gibt, hängt von der Positionierung des CMS im Markt ab.

Content Management Systeme versuchen sich jedoch nicht nur mit ihrem Feature-Reichtum zu übertreffen, sondern gelegentlich auch mit ihrem Minimalismus zu unterbieten. Denn neben dem Trend hin zu immer komplexerer Technologie vor allem bei den Enterprise CMS kann man auch eine Gegenbewegung beobachten: Flat-File-Systeme, Headless-CMS oder auch Static Site Generatoren sind unter anderem aus dem Wunsch entstanden, das Management von Inhalten und die Erstellung von Webseiten wieder zu vereinfachen.

Beispiele für CMS-Kategorien

Bei der hohen Anzahl an Content Management Systemen, den vielen Trends und den unterschiedlichsten Ausprägungen fällt die Auswahl eines passenden CMS nicht leicht. Um eine möglichst informierte Entscheidung zu treffen, kann eine grobe Kategorisierung der Systeme sehr hilfreich sein.

Die Tabelle soll ein paar Anregungen bieten. Die Tabelle beinhaltet einige gängige Kategorien und auch verschiedene individuelle Kategorien, die in verschiedenen Szenarien Sinn machen können:

Kategorie Erklärung Mehr Infos
Lizenztyp Gängig ist die Unterscheidung zwischen Open Source Lizenzen wie MIT oder GPL und proprietären Lizenzen, die in der Regel mit einem einzelnen Unternehmen verbunden sind. Einführung Open Source CMS
Programmiersprache Bei Web Content Management Systemen sind die Programmiersprachen PHP, Java, Python, ASP.NET und JavaScript verbreitet. Übersicht über PHP CMS, Java CMS, Python CMS und NodeJS CMS
Framework Viele CMS bauen auf einem Programmier-Framework auf, allein in PHP gibt es diverse wie Laravel oder Symfony. Manche CMS verstehen sich auch selbst als Framework. Individuelle CMS-Recherche
Speicherform Man kann grob zwischen einer Speicherung in relationalen Datenbanken und einer Speicherung in Dateien (Flat File) unterscheiden. Übersicht Flat-File-CMS
Komplexität Es gibt verschiedene (inoffizielle) Abstufungsmöglichkeiten. Gängig ist die Bezeichnung von sehr komplexen Systemen als Enterprise-CMS. Dagegen gehören die meisten Flat-File-CMS zu den leichtgewichtigeren Lösungen. Einführung Enterprise CMS
Bereitstellung Man kann zwischen selbstgehosteten CMS (on Premise) und zentral bereitgestellten CMS (Cloud- oder SaaS-CMS) unterscheiden. Überblick Cloud- und SaaS-CMS
Regionale Verbreitung Systeme wie WordPress sind weltweit relativ gleichmäßig verbreitet. TYPO3 wird dagegen überwiegend in Deutschland und in den Nachbarländern genutzt. ExpressionEngine ist überwiegend in den USA und England zu Hause. Individuelle CMS-Recherche
Kopplung und Modularität Mit so einer Kategorie könnte man beispielsweise zwischen Headless-CMS und Decoupled CMS oder Hybrid-CMS unterscheiden. Oder man kann generell fragen, wie modular und austauschbar einzelne Komponenten des CMS sind. Marktüberblick Headless-CMS
Integration und Scope Mit so einer Kategorie könnte man den Umfang und die Integrationsfähigkeit eines CMS hinterfragen, beispielsweise ob es sich auf Kern-Funktionen beschränkt und zu einer Best-Of-Breed-Strategie passt oder als DXP gleich eine ganze Suite bereitstellt, die die Bedürfnisse z.B. im Marketing vollständig abdeckt. Einführung Enterprise-CMS
Spezialisation Mit der Kategorie könnte man die Stärken eines CMS herausarbeiten, beispielsweise sind einige CMS wie CoreMedia oder auch CraftCMS besonders für den eCommerce geeignet, andere sind eher auf Marketing-Maßnahmen spezialisiert, wieder andere eignen sich für spezielle Branchen. Individuelle CMS-Recherche
Statisch vs Dynamisch Eine eher ältere Kategorie, die nach der Auslieferung der Webseite unterscheidet. Einige Systeme generieren im Vorfeld fertiges HTML, sodass der Nutzer nur noch eine statische Webseite aufruft. Die meisten CMS generieren das HTML jedoch bei jedem Aufruf einer Seite dynamisch. Die Performance wird dann in der Regel über ein Caching verbessert. Individuelle CMS-Recherche

Man kann natürlich unzählige weitere Kategorien aufstellen, um das Angebot an Content Management Systemen zu sortieren und einzugrenzen. Welche Kategorien jedoch im Einzelfall auch sinnvoll sind, entscheidet sich im Verlauf einer oft mehrstufigen CMS-Auswahl.