Es muss nicht immer WordPress sein

Viele Agenturen und Webdienstleister verfahren nach Schema F. Will der Kunde eine Website, greift man sofort zu WordPress oder einem anderen CMS. Dabei wäre eine einfache statische Website in vielen Fällen die bessere Lösung.

gohugo.jpg

Die Website w3techs.com behauptet, dass fast 36 % aller Websites im Internet mit dem CMS WordPress betrieben werden und dass der Marktanteil von WordPress unter den Content Management Systemen 62,5 % beträgt. Mehr als jede dritte Website läuft also mit dem beliebten CMS, das einmal als Blog-System begann.

Webdesigner und Werbeagenturen greifen daher oft ohne zu nachzudenken sofort zu WordPress, wenn ein Kunde eine Website haben möchte. Und da auch die Kunden meistens schon einmal von WordPress gehört haben, wird die Frage, an welches System man sich für die nächsten Jahre ans Bein bindet, auch von Kundenseite nicht gestellt.

Diese Gedankenlosigkeit ist fahrlässig, denn die Entscheidung für WordPress hat Folgen, die man bedenken sollte.

Sicherheit: Hacker lieben WordPress

Die Website cve.mitre.org listet für WordPress im Januar 2020 2465 Verwundbarkeiten auf. Die meisten dieser Einfallstore für Hacker dürften geschlossen sein, dennoch ist dies eine erschreckend hohe Zahl. Zum Vergleich: das Enterprise Content Management System Plone kommt auf 89 Verwundbarkeiten. Eine Ursache für die hohe Zahl der Sicherheitslöcher liegt vermutlich in der zugrunde liegenden Software. WordPress ist in der Programmiersprache PHP geschrieben, die ihrerseits auf 6587 Verwundbarkeiten kommt. Plone ist dagegen in Python geschrieben, das nur auf 408 sicherheitsrelevante Bugs kommt. Die Programmiersprache allein macht ein System natürlich nicht per se sicher oder unsicher. Weitere Faktoren spielen eine Rolle, aber trotzdem sollte man diese Zahlen vor Augen haben, wenn man eine Systementscheidung trifft.

WordPress bietet Hackern ein lohnendes Angriffsziel, erstens weil es sehr weit verbreitet ist und zweitens weil es in seiner Geschichte bereits viele Verwundbarkeiten aufgewiesen hat. Hacker können davon ausgehen, dass es noch viele unerkannte Einfallstore gibt.

Regelmäßige Wartung nötig

Da immer wieder neue Verwundbarkeiten entdeckt werden bzw. durch neuen Code eingefügt werden, müssen WordPress-Installation regelmäßig gewartet werden, sonst ist die Website in kurzer Zeit ein offenes Scheunentor. Und viel Zeit darf man sich beim Einspielen von Sicherheits-Updates nicht lassen. Denn die Hacker finden schnell einen Weg, um eine Verwundbarkeit praktisch auszunutzen, um das System zu kompromittieren. Und wenn wirklich mehr als ein Drittel aller Websites mit WordPress läuft, dann stehen für Hacker die Chancen günstig, irgendwo im Netz auf eine nicht abgesicherte Website zu treffen. Der Suchprozess ist vollständig automatisiert und keine Website wird übersehen. Selbst wenn kein Mensch Ihre Website bei Google findet, die Hacker finden sie garantiert.

Wartung verursacht Kosten, die man bei der Wahl des Systems einkalkulieren sollte. Leider können die vielen praktischen und ratzfatz per Mausklick installierten Plugins die Wartung von WordPress zu einem Geduldsspiel machen. Denn manche Plugins sind nach dem Update von WordPress unbrauchbar, weil sie mit der neuen WordPress-Version nicht kompatibel sind. Noch schlimmer ist es, wenn ein Plugin ein Update von WordPress behindert oder nach einem Update nichts mehr funktioniert.

Mehr Komplexität

Wer ein CMS einsetzt, steigert gegenüber statischen Websites die Komplexität des Software-Stacks auf dem Server. Für eine statische Website benötigt man neben dem Serverbetriebssystem lediglich ein Webserverprogramm wie Apache. Ein Content Management System verdreifacht die Zahl der beteiligten Systeme, denn es benötigt neben dem Webserver zusätzlich noch ein Datenbanksystem wie MySQL (MariaDB) oder PostgreSQL. Und da auch Datenbanken verwundbar sind, vergrößern sie die Angriffsfläche.

Wenn dann noch in WordPress Plugins hinzuinstalliert werden, steigt die Komplexität weiter an.

Das führt schließlich dazu, dass die Technik rund um eine einfache Website so komplex wird, dass der Wechsel des Dienstleisters Probleme verursacht. Die Folge ist ein Lock-in bei einem Dienstleister, dem man vielleicht schon längst gerne gekündigt hätte.

KISS – keep it stupid simple!

Jede Software-Komponente erhöht die Komplexität und vergrößert damit den Wartungsaufwand, die Anforderungen an das Know-how des Betreibers und die Angriffsfläche für Hacker. Das alles verursacht Kosten und im schlimmsten Fall Folgeschäden durch den Einbruch in die Systeme und den Diebstahl von Daten.

Beim Betrieb von Websites sollte man sich daher nach dem KISS-Prinzip richten und alles möglichst einfach halten. Um eine Website im Internet zu betreiben, benötigt man nur ein einziges Programm. Einen Webserver wie Apache und HTML-Dateien. Das ist die Minimalausstattung eines Webhosters, die sich seit der Erfindung des World Wide Web im Prinzip nicht verändert hat.

»Aber statische Webseiten – das ist doch so Web 1.0«, höre ich nun so manchen rufen, »damit kann ich meine Kunden nicht überzeugen. Die wollen schöne Bilder und viel Blingbling.« Dazu ist folgendes zu sagen. Der Begriff ›statisch‹ beschreibt nicht das Nutzererlebnis auf der Website, sondern die Art wie die Webseiten erzeugt werden, die der Webserver ausliefert. Bei dynamischen Websites löst der Aufruf einer Seite im Webbrowser auf dem Server Programmaufrufe und Datenbankabfragen aus, die im Moment des Aufrufs die auszuliefernde HTML-Seite zusammenstellen. Bei einer statischen Website ist das schon erledigt. Die HTML-Seiten liegen fix und fertig auslieferungsbereit in einem Verzeichnis auf dem Server.

Das Blingbling auf den Websites von heute verursacht in aller Regel Javascript. Das ist eine Programmiersprache, die im Webbrowser ausgeführt wird. Der Webbrowser lädt den Code vom Server und führt ihn auf dem lokalen Rechner aus. Mit Javascript lassen sich beeindruckende visuelle Effekte erzielen wie aufspringende Menüs oder effektvolle Slider mit bunten Bildern. Die nervende Cookie-Warnung wird auch durch Javascript-Code eingeblendet.

»Alles schön und gut«, sagt der Skeptiker, »aber soll ich etwa Tausende von HTML-Seiten mit der Hand schreiben?« – Natürlich nicht. Das übernimmt der Computer mit Hilfe eines Website-Generators wie Hugo.

Was ist ein Website-Generator?

Ein Website-Generator ist ein Programm, das Inhalte (Texte, Bilder etc.) und die jeweils notwendigen Navigationselemente in HTML-Templates einfügt und das Ergebnis als HTML-Seite abspeichert. Ein moderner Generator wie zum Beispiel Hugo kann in weniger als einer Sekunde Tausende solcher HTML-Seiten erzeugen. Die Dateien müssen anschließend bloß noch auf den Webserver in das richtige Verzeichnis kopiert werden, und schon ist eine Website mit 1000 Seiten online.

Bevor es datenbankgestützte CMS gab, wurden viele Websites mit Generatoren erstellt. Der Siegeszug der CMS hat die Generatoren verdrängt. Mittlerweile sind sie wieder groß im Kommen.

Neben Hugo, das ich empfehlen kann, gibt es zahllose weitere Generatoren, die auf dieser Website aufgelistet sind.

Die Renaissance der Generatoren hat keine nostalgischen Gründe. Vielmehr möchten Webentwickler und Content-Produzenten moderne Entwicklungsmethoden wie Continous Integration auf die Pflege komplexer Websites anwenden.

Wann ist eine statische Website sinnvoll und wann nicht?

Die entscheidende Frage lautet: Wird die Website inhaltlich von Personen gepflegt, die dies ausschließlich im Webbrowser können? Wenn die Frage bejaht wird, kann ein CMS mit entsprechenden Benutzerschnittstellen sinnvoll sein. Wenn die Website jedoch höchstens alle paar Monate einmal aktualisiert wird – und dies ohnehin der Webdienstleister übernehmen soll, dann sollte man ernsthaft eine statische Website in Erwägung ziehen.

Welche Vorteile bringt es, mit statischen Websites zu arbeiten?

1.) Geringste Komplexität des Serversystems

Das Hosting statischer Websites stellt minimale Anforderungen an die technische Ausstattung. Der Aufwand für die Pflege des Systems bleibt geringt und allein durch den Verzicht auf weitere Komponenten verbessert sich die Sicherheit.

2.) Ordentliches Versionierungsmanagement

Hugo und andere Generatoren erzeugen eine komplette Website aus einfachen Textdateien. Diese Dateien lassen sich mit einer Versionsverwaltung wie Git gut verwalten. Eine Versionsverwaltung ist in der Software-Entwicklung das Kernstück jedes Projektmanagements. Mit Git kann jede Änderung an der Website (inhaltlich, grafisch oder strukturell) nachvollzogen und bei Bedarf auf einen früheren Zustand zurückgespielt werden.

3. Backup des armen Mannes

Durch die Nutzung von Git besitzt jeder, der an der Website arbeitet, eine lokale Kopie des Repositories – und damit eine Art Backup. Wenn der Server abschmiert und man kein Backup der dortigen Daten hat, lassen sich die Websites aus den lokalen Git-Repositories problemlos wieder herstellen.

4.) Einfaches Handling der Inhalte

Inhalte werden in einfachen Textdateien abgelegt. Bei Hugo sieht eine dieser Inhaltsdateien so aus:

---
date: 2020-01-29T12:20:19+01:00
title: Es muss nicht immer WordPress sein
description: |
   Viele Agenturen und Webdienstleister verfahren nach Schema F.
   Will der Kunde eine Website, greift man sofort zu WordPress oder einem anderen CMS.
   Dabei wäre eine einfache statische Website in vielen Fällen die bessere Lösung.
draft: true
resources:
- src: gohugo.jpg
  name: Intro
---

Die Website [w3techs.com](https://w3techs.com/technologies/overview/content_management) behauptet, dass fast 36 % aller Websites im Internet mit dem CMS WordPress betrieben werden und dass der Marktanteil von WordPress unter den Content Management Systemen 62,5 % beträgt.
Mehr als jede dritte Website läuft also mit dem beliebten CMS, das einmal als Blog-System begann.

Das Beispiel zeigt den Anfang der Webseite, die Sie gerade lesen. Die Datei beginnt mit dem so genannten Metadaten-Block, der durch drei Trennstriche vom eigentlichen Text abgetrennt ist. Danach erscheint der Fließtext. Links und andere Formatierungen werden mit der Markdown-Syntax eingefügt.

Wer eine solche Website inhaltlich pflegen soll, muss also lediglich einen Texteditor bedienen können, eine Handvoll Markdown-Anweisungen erlernen und die grundlegendsten Funktionen von Git beherrschen. Das sollte jeder Mitarbeiter einer Webagentur können.

5.) Schnellerer Seitenaufbau

Statische Websites sind in der Regel sehr viel schneller als Websites mit einem CMS. Beim Aufruf einer Seite liefert der Apache die HTML-Seite sofort aus. Ein CMS muss die Seite dagegen erst einmal mit Hilfe von Datenbankabfragen dynamisch bauen, bevor Apache sie aufliefern kann. Das kostet Zeit.

Google misst die Geschwindigkeit jeder Website und stellt die Ergebnisse grafisch dar. Vergleichen Sie einmal die Geschwindigkeit meiner Website mit der einer beliebigen WordPress-Website.

6.) Es geht auch im Browser

Dieser Abschnitt trug ursprünglich die Überschrift »Professionelles Projektmanagement und Continous Integration«. Die Begriffe werden vielen Lesern jedoch nichts sagen. Und wer sich damit auskennt, weiß ohnehin Bescheid.

Der Code von Websites inklusive aller Inhalte lässt sich mit webbasierten, gehosteten Code-Repositories im Webbrowser verwalten. GitHub ist in diesem Bereich der Marktführer. Es gibt aber auch Open-Source-Software, die man selbst hosten kann. Das superschlanke System Gitea läuft sogar auf einem RaspberryPi. Mit einem solchen System kann man statische Websites komplett im Webbrowser verwalten, da die Daten im Webbrowser editiert werden können. Der Screenshot zeigt dies wieder am Beispiel der Seite, die Sie gerade lesen.

Über Code-Hostingsysteme wird das Handling von statischen Websites auch für die Content-Lieferanten ähnlich bequem wie bei einem CMS, da Inhalte über ein Web-Interface eingegeben und verändert werden können. Das gruppenbasierte Rechtemanagement ermöglicht dabei sogar redaktionelle Workflows, wie sie bei anspruchsvolleren CMS gegeben sind.

Die Systeme automatisieren über sogenannte Hooks sogar das Deployment neuer Inhalte, sodass zum Beispiel nach einer Textänderung, der Generator angestoßen wird, um die Webstie neu zu bauen.

Fazit

Moderne Entwicklungswerkzeuge wie Git und Code-Hosting verbinden sich mit Website-Generatoren zu einem professionellen Workflow für die Entwicklung und Pflege von Websites. Eine Code-Hosting-Plattform ermöglicht Redakteuren die bequeme Bearbeitung von Texten im Webbrowser. Der Software-Stack bleibt klein, was Komplexität verringert und die Angriffsfläche für Hacker minimiert. Statische Websites sind in der Regel schneller als dynamische, was das Nutzererlebnis verbessert.