Viele bestehende Websites basieren auf einem CMS wie Joomla oder WordPress. Für aktiv gepflegte Websites ist das weiterhin sinnvoll. Wenn Inhalte jedoch nur noch selten geändert werden, kann eine statische Veröffentlichung die passendere Lösung sein.
Das CMS bleibt lokal als Bearbeitungssystem erhalten. Öffentlich ausgeliefert wird eine statische HTML-Version. So bleibt die Website erreichbar und bearbeitbar, ohne dass ein veraltetes CMS im Live-Betrieb abgesichert und gewartet werden muss.
Beispiel: Joomla 3
Ein typischer Fall ist eine ältere Joomla-3-Website.
Die Ausgangslage:
- Joomla 3 ist veraltet.
- Die Website läuft stabil nur unter PHP 7.4.
- Der Hoster bietet PHP 7.4 langfristig nicht mehr oder nur noch eingeschränkt an.
- Eine Portierung auf eine aktuelle Joomla-Version wäre sehr aufwendig.
- Die Website wird nur selten aktualisiert.
- Die Inhalte sollen weiterhin öffentlich erreichbar bleiben.
Eine direkte Migration auf eine aktuelle Joomla-Version kann in einem solchen Fall unverhältnismässig sein. Oft müssten Template, Erweiterungen, PHP-Kompatibilität, Inhalte und mehrere Zwischenschritte geprüft und angepasst werden.
Empfohlene Lösung
Die geeignete Lösung ist ein hybrider Ablauf:
- Die bestehende Joomla-3-Website wird lokal gespiegelt.
- Die lokale Version läuft z.B. über Docker mit der passenden PHP-Version.
- Anpassungen werden weiterhin im lokalen CMS gemacht.
- Die Website wird mit HTTrack oder wget als HTML-Version ausgegeben.
- Die statischen Dateien werden auf den Webserver hochgeladen.
- Öffentlich läuft nur noch die statische Website.
Das CMS bleibt damit als internes Bearbeitungssystem erhalten. Die Live-Website besteht nur noch aus HTML, CSS, JavaScript, Bildern und Downloads.
Vorteile
Diese Lösung hat klare Vorteile:
- Das veraltete CMS ist öffentlich nicht mehr erreichbar.
- Es gibt kein öffentliches CMS-Backend.
- Es gibt keine Datenbank im Live-Betrieb.
- Die Website ist unabhängig von der PHP-Version des Hosters.
- Der Wartungsaufwand sinkt deutlich.
- Das Sicherheitsrisiko wird stark reduziert.
- Der Aufwand ist deutlich geringer als eine vollständige CMS-Migration über mehrere Versionsschritte, wie sie bei einer alten Joomla-3-Website oft nötig wäre.
Für eine Website mit wenigen Aktualisierungen pro Jahr ist das oft die sinnvollste Lösung.
Aktualisierung der Inhalte
Wenn später Inhalte geändert werden, erfolgt die Anpassung lokal:
- Docker-Umgebung starten.
- CMS lokal öffnen.
- Inhalte anpassen.
- Website lokal prüfen.
- Mit HTTrack oder wget eine neue statische Version erzeugen.
- Export prüfen.
- Dateien auf den Webserver hochladen.
Für die öffentlich erreichbare Website braucht es auf dem Webserver kein Joomla, keine Datenbank und keine alte PHP-Version mehr.
Statische Version erzeugen
Die statische Version wird aus einer erreichbaren CMS-Website erzeugt. Diese kann lokal, auf einer Testumgebung oder direkt auf dem Live-Server laufen. Häufig wird dafür eine lokale Entwicklungsumgebung verwendet, zum Beispiel Docker, DDEV, MAMP, XAMPP, WSL oder eine Linux-Umgebung.
Ein Tool wie HTTrack oder wget ruft die Website auf, folgt den internen Links und speichert daraus HTML-Dateien, Bilder, CSS, JavaScript und weitere benötigte Dateien. Entscheidend ist, dass die Website im Browser korrekt erreichbar ist.
Beispiel:
Lokale CMS-Website:
http://localhost:8080/
Export-Ordner:
~/web-exporte/meine-website-static/
Variante mit HTTrack
HTTrack installieren:
sudo apt update
sudo apt install httrack
Export-Ordner erstellen:
mkdir -p ~/web-exporte
cd ~/web-exporte
Website spiegeln:
httrack "http://localhost:8080/" \
-O "meine-website-static" \
"+localhost:8080/*" \
"-*administrator*" \
"-*wp-admin*" \
"-*wp-login.php*" \
"-*xmlrpc.php*"
Danach liegt die statische Website hier:
~/web-exporte/meine-website-static/
Bei einer Joomla-Seite können zusätzlich typische Admin-Bereiche ausgeschlossen werden:
httrack "http://localhost:8080/" \
-O "meine-website-static" \
"+localhost:8080/*" \
"-*/administrator/*" \
"-*/installation/*" \
"-*/tmp/*" \
"-*/cache/*"
Variante mit wget
wget ist oft die einfachere Variante für einen schnellen, gut kontrollierbaren Export.
Falls wget fehlt:
sudo apt update
sudo apt install wget
Export-Ordner erstellen:
mkdir -p ~/web-exporte/meine-website-static
cd ~/web-exporte/meine-website-static
Website spiegeln:
wget \
--mirror \
--convert-links \
--adjust-extension \
--page-requisites \
--no-parent \
http://localhost:8080/
Die wichtigsten Optionen:
--mirror lädt die Website rekursiv herunter
--convert-links schreibt Links für die statische Version um
--adjust-extension speichert HTML-Dateien mit passender Endung
--page-requisites lädt Bilder, CSS und JavaScript mit
--no-parent verhindert das Crawlen in übergeordnete Bereiche
Zugriff auf die exportierten Dateien
Nach dem Export liegen die statischen Dateien im gewählten Export-Ordner. Von dort können sie geprüft, weiterbearbeitet und auf den Webserver hochgeladen werden.
Danach prüfen
Vor dem Hochladen sollte die statische Version geprüft werden:
- Startseite öffnen
- Navigation testen
- Bilder kontrollieren
- CSS und JavaScript prüfen
- Downloads testen
- alte CMS-Links entfernen
- Admin-Links ausschliessen
- Kontaktformular separat testen
Erst wenn die statische Version korrekt funktioniert, werden die Dateien auf den Webserver hochgeladen.
Kontaktformular
Eine statische Website kann ein Formular nicht selbst verarbeiten. Wenn weiterhin ein Kontaktformular gebraucht wird, kann ein separates kleines Formular-Script eingesetzt werden.
Die Website bleibt statisch. Nur der Formularversand läuft über eine kleine serverseitige Komponente.
Beispiel:
Statische Website:
https://archiv.beispiel.ch/
Formularverarbeitung:
https://formulare.beispiel.ch/kontakt.php
Das Formular auf der statischen Seite sendet die Daten an dieses Script. Dort werden Pflichtfelder geprüft, Spam-Schutz angewendet und die Anfrage per E-Mail weitergeleitet.
Vorteile:
- Die Website bleibt statisch.
- Die Formularverarbeitung bleibt unter eigener Kontrolle.
- Es braucht keinen externen Formular-Dienst.
- Das alte CMS muss öffentlich nicht weiterbetrieben werden.
- Datenschutz und E-Mail-Versand können gezielt geregelt werden.
Das Formular-Script sollte mindestens Pflichtfelder prüfen, E-Mail-Adressen validieren, Spam-Schutz einsetzen und Fehler sauber behandeln. Für einfache Formulare reicht oft eine Kombination aus Honeypot-Feld, Zeitprüfung und serverseitiger Validierung.
Weitere Optionen
🔄 CMS vollständig aktualisieren
Das ist sinnvoll, wenn die Website aktiv weiterentwickelt wird, regelmässig neue Inhalte erhält oder dynamische CMS-Funktionen benötigt. Bei älteren CMS-Versionen kann eine Aktualisierung jedoch aufwendig sein, weil Template, Erweiterungen, PHP-Kompatibilität und mehrere Versionsschritte geprüft werden müssen.
🪞Website einmalig spiegeln
Mit HTTrack oder wget kann eine Website direkt vom Live-Server gespiegelt werden. Das eignet sich für eine einmalige Archivierung, wenn später keine Bearbeitung mehr geplant ist.
📦WordPress mit Simply Static exportieren
Bei WordPress gibt es Plugin-Lösungen wie Simply Static. Damit kann direkt aus WordPress eine statische Version erstellt werden. Das ist praktisch, wenn WordPress noch sauber läuft und Zugriff auf das Backend besteht.
Fazit
Für eine ältere CMS-Website, die nur selten aktualisiert wird und nur unter einer alten PHP-Version stabil läuft, ist eine statische Veröffentlichung oft die sinnvollste Lösung.
Das CMS bleibt lokal als Bearbeitungssystem erhalten. Die öffentliche Website besteht nur noch aus statischen Dateien. Dadurch bleibt sie erreichbar, sicher und unabhängig von PHP-Versionen, Datenbank und CMS-Updates.
Wenn ein Kontaktformular nötig ist, kann dieses über ein separates kleines Formular-Script betrieben werden. So bleibt die Website statisch, während die Formularverarbeitung klar abgegrenzt und kontrollierbar bleibt.