Ein langer Abschied von Wordpress

Ein langer Abschied von Wordpress
Ein iMac als historischer Stich© Gemini

Seit mehr als 15 Jahren lief diese Domain mit Wordpress. Seit zwei Wochen läuft das Publishing-System Ghost und ich habe eine Menge Erfahrungen gemacht. Was der Blick über den Tellerrand bewirkt beschreibe ich in dieser Artikelstrecke – kulturell, kognitiv und technisch.

Diese Website läuft seit einigen Tagen auf Ghost, nicht mehr auf WordPress. Das alte, historisch gewachsene WordPress existiert weiter als Versicherung und ich pflege die Datenbank. Von Ghost erhoffe ich mir ein stabiles, einfaches und performantes System, das womöglich auch auf schwacher Hardware seinen Dienst leisten kann. In dieser kleinen Artikelstrecke in eigener Sache möchte ich meine Erfahrungen, meine Motivation und die konkreten Problemfälle des Systemumstiegs dokumentieren, naheliegenderweise in eben jener Publishingumgebung.

WordPress ist nicht schlecht, ein gutes Drittel des Internets läuft darauf, große Medienseiten nutzen es. Gleichzeitig hat es eine Generation von Internetnutzern geprägt. Ich bin dieser Software bis heute dankbar, aber irgendwann verschiebt sich der Fokus. Ich wollte wieder publizieren und nicht vorrangig die Software verwalten. Ob das klappt, wird sich zeigen – ich habe sie ja noch, meine alte Datenbank.

Wartung in den Feature Creep

Es war kein Tag, an dem ich beschloss, WordPress sei schlecht, es war eher eine Erosion. Hinzu kam eine wiederkehrende Sorge um die Angriffsfläche. Plugins, Themes und WordPress selbst sind über die Jahre unübersichtlich geworden, und die Multidomain-Umgebung tut ihr Übriges. Ich habe einen verseuchten Datenbestand selbst erlebt, einen Einbruch, der nicht nur Daten zerstörte, sondern auch die Reputation der Domain beschädigte. Über ein veraltetes Theme, ein nachlässig gewartetes Plugin kann viel passieren, und ich habe mir früh angewöhnt, immer eine Ebene unterhalb der eigentlichen WordPress-Instanz abzusichern.

Die Datenbank trägt inzwischen gute fünfzehn Jahre auf dem Buckel, und ich bin selbst überrascht, wie lange ich damit schon ununterbrochen im Netz unterwegs bin und die verschiedensten Publikationen verwirklicht habe, mal mit größerer, mal mit geringerer Intensität. Genau diese Verbundenheit ist der Grund, warum die alte Installation nicht verschwindet. Sie läuft als Sicherung weiter, sie trägt noch andere Seiten, und wenn mich die Lust packt, für ein Projekt etwas Neues aufzusetzen, steht das bewährte System bereit. WordPress ist der eingängige Standard, mit dem auch andere schnell arbeiten können, die örtliche Kirchengemeinde, eine Person mit einer Idee, ein Spaßprojekt an einem Wochenende.

Fehlende Grundfunktionen

Was mich über die Jahre zermürbt hat, ist weniger ein Mangel als ein Zuviel. Bestimmte Grundfunktionen, finde ich, sollte ein Publishingsystem von sich aus mitbringen, statt sie an verwaiste Drittanbietersoftware auszulagern. Das einfachste Beispiel ist die elementare Suchmaschinenoptimierung. Metadaten sind enorm wichtig, und ich verstehe nicht recht, weshalb ich für diese wenigen statischen Felder ein Plugin wie Rank Math oder Yoast benötige, so bewusst mir ist, dass diese Werkzeuge weit mehr leisten als die bloße Verwaltung von Open-Graph- und Google-Metadaten. So aber sammeln sich die Plugins, eines für die Bildkompression, eines für die Sicherheit, eines fürs Caching. Vieles habe ich in meinem eigenen Theme selbst implementiert, doch dadurch wuchs das Child-Theme zu einer eigenen, schwer beherrschbaren Komplexität heran.

Ghost nimmt mir an dieser Stelle viel ab, wenngleich es andere Probleme mitbringt, etwa die fehlende Medienverwaltung. Das System ist übersichtlich und einfach, und es entlastet auch bei der Arbeit am eigenen Theme. Der DOM-Baum, den Ghost erzeugt, ist erstaunlich sauber und damit leicht zu gestalten. Den Anstoß, es wirklich noch einmal zu versuchen, gab ein Video der Redaktion c’t 3003 über leichtgewichtige Bloggingsysteme. Es hat mich affiziert, weil es einen Gedanken bestätigte, den ich ohnehin mit mir herumtrug, und weil es den Wechsel leichter erscheinen ließ, als er sich am Ende erwies. Also startete ich eine Testumgebung, fuhr Ghost in einem Docker-Container hoch und begann, mein bestehendes WordPress-Theme Stück für Stück zu adaptieren. Bei der Gelegenheit entfernte ich angesammelten Spaghetti-Code. Nach etwa zwei Wochen stand eine erste Beta.

Ghost im Abstahierungswahn

Erwartet hatte ich ein leichtgewichtiges, schnelles und gut wartbares System, das mir Arbeit abnimmt, schließlich ist genau das die Versprechung. Diese Erwartung wurde bis zu einem gewissen Punkt enttäuscht. Ich verstehe, dass auch hier eine eigene Komplexität herrscht, und bin doch nicht ganz sicher, ob sich der Aufwand in jeder Hinsicht lohnt. An einer Stelle reibt es spürbar, am Betrieb im Container. Ein echtes Unbehagen will ich das nicht nennen, denn Docker ist keine schlechte Umgebung, ressourcensparsam und zuverlässig, und vermutlich unterm Strich die vernünftige Wahl. Was mich stört, ist anderes. Ich sorge mich, dass mit einem Container Mühe verlorengehen kann, die Automatisierung bleibt mühsam, und es fehlt die maschinenlesbare Wahrheit einer einzigen Konfigurationsdatei, weil die entscheidenden Größen als Umgebungsvariablen im Verborgenen liegen.

Am deutlichsten zeigt sich das an den Aktualisierungen. Ghost bringt für die Docker-Installation keine eigene, im Bedienpanel sichtbare Update-Routine mit, anders als die Ein-Klick-Aktualisierung, die man von WordPress kennt. Aktualisiert wird auf der Kommandozeile, und nach jedem Upgrade müssen die Umgebungsvariablen wieder stimmen. Eine saubere Automatisierung dieses Vorgangs habe ich nicht hinbekommen, was womöglich sicherer ist, aber fehleranfällig bleibt, denn ein Zahlendreher oder ein vergessener Paketstand genügt, und etwas geht kaputt. Wo ein automatischer Aktualisierungsweg fehlt, muss man sich regelmäßig kümmern, Befehle präsent halten, immer wieder hineinschauen, statt das zu tun, wofür das System eigentlich da ist. WordPress löst das eingängiger, weil die Aktualisierung dort sichtbar im Verwaltungsbereich liegt. Aus dem Container herauszufinden bleibt darum ein Vorhaben, das ich weiterverfolge. Genau dieses widerspenstige Verhältnis zwischen Komfort, Kontrolle und Eigenständigkeit zieht sich, das nehme ich jetzt schon vorweg, als roter Faden durch die ganze Strecke, von der Infrastruktur über die Sicherheit bis zur Gestaltung, und es ist am Ende kein technisches, sondern ein Haltungsproblem, die alte Frage, wie viel Hand man selbst am eigenen Werk behalten will.

Eine ältere Enttäuschung gehört hierher, weil sie meine Skepsis erklärt. Vor einigen Monaten habe ich für jemanden ein WordPress aufgesetzt, nicht zum ersten Mal, mit dem Versprechen, das sei leicht zu bedienen und leicht zu warten. Als ich dann wieder in der Plugin-Kette steckte und am Ende doch Dinge erklären musste, die schlicht nicht zugänglich sind, war ich von meinem eigenen Versprechen ein wenig desillusioniert.

Web auf Wordpress, Wordpress im Web

Diese Verbundenheit mit dem Web reicht weit zurück. Nächtelang saß ich in meinem Berliner Jugendzimmer an den ersten Seiten, und bis heute mag ich statische, formwandlerische Dateiformate, weshalb mein liebstes Format für Texte ausgerechnet Markdown ist, das ich in Editoren wie iA Writer oder iA Presenter pflege. Strukturierte Daten haben stets eine eigentümliche Anziehungskraft auf mich ausgeübt, schon als Jugendlicher bildete ich die umliegenden Fahrpläne von Bussen, Straßenbahnen, S-Bahnen und Regionalzügen in einer Access-Datenbank ab, ein aus heutiger Sicht unsinniges, aber lehrreiches Unterfangen.

Meine Schulpräsentationen versah ich früh mit Sprungmarken und internen Verweisen, baute in Textverarbeitung und Präsentationsprogramm meine eigenen One-Pager und legte im Wirtschaftskundeunterricht eine kleine Projektwebsite an. Damals war das die Neugier eines Jungen, heute klingt es erstaunlich fortschrittlich. Von dieser Neugier ist nichts verlorengegangen, sie hat nur ihren Gegenstand gewechselt, und dass ich nun ein klares, ehrliches und beherrschbares System suche, ist die folgerichtige Fortsetzung eines halben Lebens am Rechner. Ghost ist für mich der nächste Versuch, diese Neugier mit jener Souveränität zu versöhnen, die ich nie aufgeben wollte.