CMSstash

Content Management System (CMS) erklärt

Autor: Sebastian Schürmanns

Ein Content Management System (CMS) ist eine Software zur Verwaltung von Inhalten. Landläufig werden vor allem Content Management Systeme zur Verwaltung bzw. zur Erstellung von Webseiten verkürzt als CMS bezeichnet, beispielsweise WordPress. Tatsächlich sind diese Systeme jedoch nur eine Spielart der CMS und werden in Fachpublikationen meist als Web Content Management System (WCMS) bezeichnet.

Wichtiger als solche Begrifflichkeiten ist jedoch ein grundsätzliches Verständnis dafür, wie ein Content Management System funktioniert. Denn wer die Funktionsweise und den Aufbau eines CMS grob versteht, dem fällt die Auswahl eines passenden Systems für sein Projekt in der Regel deutlich leichter.

Wie ein Content Management System funktioniert

Die Funktionsweise von Content Management Systemen kann man grob in drei bis vier Bereiche unterteilen: Mit einem Content Management System kann man:

Schematisce Darstellung CMS

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

Ein Content Management System speichert Inhalte ab. Und 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.

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. Im Enterprise-Bereich trifft man häufig auf Datenbanken von Oracle oder von Microsoft. Welche Datenbanken von einem CMS unterstützt werden, wird in dessen Systemvoraussetzungen aufgelistet.

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 oder Statamic. Als Datei-Format für die Inhalte hat sich in den letzten Jahren vor allem Markdown durchgesetzt. 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. Sie legen die Inhalte in einer Art Baum-Struktur auf dem Server ab und greifen dabei auf bestimmte Standards zurück. 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.

Bei der Unterscheidung zwischen klassischen Datenbanken und File-basierten Ablage-Systemen geht es vor allem um die Speicherung von Text-Inhalten. Wenn es sich jedoch um Bilder, Dokumente oder sonstige Dateien handelt, dann werden diese sogenannten "Assets" so gut wie immer auf dem File-System des Servers abgelegt und separat 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.

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 Benutzeroberflläche sieht etwa wie folgt aus:

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 Verwaltung der Inhalte bieten oder Features für den Betrieb von mehrsprachigen 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 gerne 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 jedoch 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 in Form einer HTML-Seite darstellen, nicht jedoch speichern, verwalten oder dynamisch ausgeben.

Inhalte ausgeben

Mit einem Web CMS kann man nicht nur Inhalte verwalten, sondern natürlich auch Inhalte ausgeben. Für diese dritte Kern-Funktion benötigt ein Web Content Management System mindestens zwei Features: Eine Zugriffssteuerung und die Steuerung des Ausgabeformats.

Traditionell können die Inhalte eines CMS einfach über eine URL mit einem Web-Browser abgerufen und dort als HTML-Seite dargestellt werden. Zunehmend verbreitet ist allerdings auch die Ausgabe (und ggf. auch die Verwaltung) von Daten und Inhalten über ein sogenanntes Application Programming Interface (API). Über die API können Entwickler die Inhalte mit einem eigenen Script abrufen und anschließend weiterverarbeiten. Das dominierende Ausgabe-Format ist dabei JSON.

Inhalte darstellen

Landläufig hält man zwar die Darstellung von Inhalten in Form einer Webseite für die zentrale Aufgabe eines Content Management Systems. Tatsächlich gehört die Darstellung der Inhalte jedoch nicht zwangsläufig zu einem Web CMS. Die neuen Headless-CMS verzichten beispielsweise komplett auf eine Darstellung der Inhalte und beschränken sich auf die Ausgabe bzw. Bereitstellung der Inhalte über eine API (Application Programming Interface). Für die Darstellung ist dann ein anderes System zuständig, das von einem Entwickler an das CMS angebunden werden muss.

Ein traditionelles Content Management System bietet jedoch neben der Auslieferung der Inhalte auch eine Darstellung der Inhalte an, und zwar mindestens eine Darstellung als Webseite (HTML). Dazu sind allerdings wieder einige Features im Hintergrund nötig:

Genauso wie bei der Verwaltung der Inhalte kann es auch bei der Darstellung der Inhalte viele zusätzliche Features geben. Zum Beispiel eine Seitenvorschau, der bereits angesprochene Wechsel von Themes, die individuelle Anpassung von Themes über die Nutzer-Oberfläche des CMS oder – eher für Entwickler interessant – die Verwendung unterschiedlicher Template-Engines.

Einschub: Begriffe aus dem CMS-Umfeld

CMS
Abkürzung für Content Management System.
Content Management System
Eine Software zur Verwaltung von digitalen Inhalten.
WCMS
Web Content Management System, ein web-basiertes CMS beispielsweise zur Verwaltung von Webauftritten.
Enterprise CMS
Der Begriff bezeichnet eine umfängliche Software-Strategie zur Verwaltung digitaler Inhalte und umfasst neben dem CMS noch andere Software-Typen zur Content-Verwaltung wie beispielsweise ein Dokumenten Management System (DMS). In der Praxis wird der Begriff jedoch auch für sehr komplexe Web Content Management Systeme genutzt, um sie als Lösung für große Unternehmen zu empfehlen und gegen weniger komplexe CMS abzugrenzen.
DXP
Abkürzung für Digital Experience Platform. Ein relativ neuer und im Enterprise-Umfeld gebräuchlicher Begriff. Als DXP werden Software-Suiten bezeichnet, die neben dem CMS noch andere Software-Bausteine wie Analytics, Targeting oder Personalisierungsfunktionen umfassen. Ziel der Software ist die Schaffung und Abbildung ganzheitlicher Kunden- bzw. Nutzererlebnisse.
Best of Breed
Eine eher gegenteilige Strategie zu DXP. Bei der Best of Breed-Strategie konzentriert sich das CMS auf seine Kern-Funktionen und wird nicht als integrierter Bestandteil einer umfangreichen Marketing-Suite angeboten. Stattdessen bietet das CMS ausgereifte Schnittstellen an, mit denen die jeweils beste Dritt-Software an das Content Management System angebunden werden kann.
Headless CMS
Ein Content Management System, das lediglich die Speicherung, Verwaltung und Auslieferung von Inhalten anbietet und die Darstellung der Inhalte anderen Systemen überlässt. Die Inhalte werden über eine API (Application Programming Interface) ausgeliefert. Headless CMS kann man auch als eine Steigerung der Best-of-Breed-Strategie verstehen.
Decoupled CMS
Ein decoupled CMS umfasst zwar alle Kern-Funktionen wie die Speicherung, die Verwaltung, die Auslieferung und die Darstellung der Inhalte. Die einzelnen Software-Teile sind jedoch voneinander entkoppelt und weitgehend eigenständig. Die Daten zwischen den Software-Teilen werden über ein Application Programming Interface (API) ausgetauscht.
Flat-File-CMS
Ein Content Management System, das keine relationale Datenbank verwendet, sondern die Inhalte in Dateien (meist Markdown-Dateien) auf dem Server speichert.
Open Source CMS
Ein Content Management System, das über eine der gängigen Open Source Lizenzen wie MIT oder GPL verbreitet wird. Die kostenlose Verwendung dieser Systeme ist zwar in der Praxis verbreitet, jedoch keine zwingende Voraussetzung für Open Source.
Proprietäres CMS
Bei einem proprietären Content Management System wird die Nutzung und Weiterverbreitung der Software zum Beispiel durch Unternehmens-eigene Lizenzbestimmungen (EULA) einschränkt. In der Praxis ist die Nutzung dieser Systeme meist kostenpflichtig.
DAM
Als Digital Asset Management System wird eine Software zur Medienverwaltung bezeichnet. Ein DAM wird bei komplexen CMS als eigenständige Software-Komponente integriert.
PIM
Als Product Information Management wird eine Software zur Verwaltung von Produkten bezeichnet. PIM werden häufig im E-Commerce eingesetzt und als eigenständige Software an das CMS angebunden.
Template
Ein Seitentyp, den man üblicherweise in einem CMS bei der Erstellung einer neuen Seite auswählen kann. Es kann zum Beispiel unterschiedliche Templates für die Startseite, für statische Seiten oder für Blog-Artikel geben. Templates sind in der Regel Bestandteil eines Themes und werden über eine Template-Engine gesteuert.
Theme
Ein Theme stellt die Inhalte nach außen als Webseite dar und bestimmt dessen Design und Aussehen. Ein Theme kann für ein CMS individuell entwickelt werden, viele CMS bieten eine Auswahl an vorgefertigten Themes an.
Plugin
Plungins werden wahlweise auch Extensions oder Module genannt und sind Funktionserweiterungen, die man für ein CMS aktivieren und ggf. auch separat installieren kann.
WYSIWYG
What You See Is What You Get. Gängige Bezeichnung zum Beispiel für WYSIWYG-Editoren, bei denen die angewendeten Formate bereits während des editierens sichtbar sind. Im Gegensatz dazu stehen einfache Markdown-Editoren, bei denen nur der reine Text mit der Markdown-Auszeichnung sichtbar ist. Die Formatierung wird dann erst nach der Umwandlung in HTML in einer Seitenvorschau oder auf der fertigen Seite angezeigt.
Mandantenfähigkeit
Meint die Fähigkeit eines Content Management Systems, mehrere unabhängige Webauftritte innerhalb einer CMS-Installation zu verwalten.
Versionierung
Meint die Fähigkeit eines Content Management Systems, von einer Inhaltsseite ältere Versionen vorzuhalten und zwischen diesen Versionen zu wechseln.
Content Modellierung
Bei der Content-Modellierung wird der Inhalt einer Webseite strukturiert und das Content Management System an die Bedürfnisse der Inhalte angepasst. Dabei kann beispielsweise ein Formular-Manager zum Einsatz kommen, mit dem der Entwickler passende Eingabeformulare für die Autoren zusammenstellt. Nicht alle Content Management Systeme verfügen über ausgereifte Möglichkeiten zur Modellierung der Inhalte.
Backend
Der Programmier-Code, der auf dem Server ausgeführt wird, zum Beispiel PHP, Java oder Python. Anwender meinen mit Backend häufig die Autoren- und Administrationsoberfläche. Nutzeroberflächen zählen für einen Entwickler jedoch generell zum Frontend.
Frontend
Der Programmier-Code, der im Client (z.B. im Browser) ausgeführt wird, zum Beispiel JavaScript, HTML und CSS. Anwender meinen mit Frontend häufig nur die öffentlich zugängliche Webseite. Für einen Entwickler gehört jedoch jeder Teil einer Software zum Frontend, der mit clientseitigem Code läuft, also auch jedes User-Interface wie zum Beispiel eine Administrations-Oberfläche.
Sitemap
Eine Auflistung (meist) aller Seiten eines Webauftritts und damit eine Art separates Inhaltsverzeichnis. Üblicherweise wird die Sitemap dem Leser zur Orientierung als HTML-Seite angezeigt, oder sie wird zur Indexierung für Suchmaschinen wie Google in einem XML-Format ausgegeben.

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, ist auch eine Frage der Positionierung im Markt.

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.

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 bereits eine grobe Kategorisierung der Systeme sehr hilfreich sein.

Hilfe bei der Kategorisierung und Auswahl

Bei den Content Management Systemen herrscht eine unglaubliche Vielfalt auf dem Markt. Insgesamt dürfte es weit über 500 CMS geben und davon sind vermutlich immer noch bis zu 200 Content Management Systeme wirklich relevant. Mit ein paar groben Kategorien kann man die Auswahl jedoch recht schnell eingrenzen und dann die verbliebenen Systeme genauer prüfen. Dabei kann man gängige Kategorien verwenden oder auch eigene Kategorien aufstellen. Die Tabelle soll dafür ein paar Anregungen bieten.

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 JavaScript 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.

Regelmäßige Neuigkeiten über Content-Management-Systeme und Website-Publishing gibt es von CMSstash auf Twitter.

Zuletzt aktualisert: 16.07.2019