Zum Hauptinhalt springen

PHP hat einen Static Site Generator

Bisher gab es für PHP noch keinen Static Site Generator, der mich wirklich überzeugen konnte.

Mit Stenope hat sich das nun geändert. Ich möchte diesen feierlichen Anlass nun nutzen, um über die Welt der Static Site Generatoren zu reden.

Und am Ende dieses Artikels zeige ich dir, wie du mit Stenope wundervolle, rasend schnelle Webseiten entwickeln kannst.

Was ist ein Static Site Generator?

Gut, dass du fragst! Ein Static Site Generator erzeugt statisches HTML. Nicht mehr und nicht weniger.

Meist werden dabei Daten, wie z.B. Blogposts, in einem textbasierten Format wie Markdown oder JSON gespeichert und auf Abruf erzeugt.

Das HTML, das dabei entsteht, ist immer statisch – also unveränderlich. Jeder Mensch auf der Welt sieht am Ende exakt genau die gleiche Webseite.

Die Idee ist keineswegs neu. HTML wurde nämlich genau für diesen Zweck entwickelt. Das Netz war in seinen Anfängen eine Ansammlung statischer HTML-Seiten, auf die Menschen weltweit zugreifen konnten.

Bekannte Static Site Generatoren wie z.B. Hugo oder Gatsby gibt es seit langer Zeit und sie werden bevorzugt von tech-affinen Menschen benutzt, die bereit sind, ihre Inhalte im Markdown-Format zu pflegen und per Git zu versionieren.

Auch gibt es mittlerweile Content Management Systeme (CMS), die diesen Ansatz zumindest anbieten (Statamic) oder gar puristisch verfolgen (TinaCMS). Ziel dieser Systeme ist es, die Vorteile von statischem HTML mit denen von Content Management Systemen zu kombinieren. Die Abkürzung für Static Site Generatoren ist SSG.

Welche Vorteile bietet ein Static Site Generator?

Ein Static Site Generator spart Zeit und Geld. Er erhöht die Performance deiner Webseite, weil das statische HTML ohne Zwischenschritt direkt an die Browser deiner Besucher ausgeliefert werden kann. Das statische HTML bietet außerdem viele weitere Vorteile:

  • Fertig gerendertes statisches HTML benötigt keine Programmiersprache wie PHP oder Python.
  • Statisches HTML kann auf einem Content Delivery Network (CDN) leben und benötigt somit keinen eigenen Server.
  • Die Auslieferung von statischem HTML kostet dich sehr wenig oder gar nichts.
  • Statisches HTML ist sehr sicher – weil es im Prinzip nichts gibt, was jemand hacken könnte.
  • Statisches HTML ist rasend schnell – weil es sich gut zwischenspeichern lässt (Caching). Sowohl im Browser als auch in einem CDN.
  • Statisches HTML selbst kennt keine Updates oder Security-Patches. Denn es handelt sich einfach nur um Dokumente – nicht um eine komplexe Applikation wie z.B. ein WordPress-System.
  • Statisches HTML ist langlebig. Es liegt einfach im Netz und das wird es auch noch in 10 Jahren tun – selbst ohne weiteres Zutun.

Ist ein Static Site Generator für meine Webseite geeignet?

Nehmen wir an, du hast eine Unternehmenswebseite, die mit WordPress läuft. Du hast die Zugangsdaten für deinen Adminbereich erhalten und kannst von dort aus deine Inhalte pflegen.

Nur gibt es dabei einen Haken. Ahnst du es schon? Ein Problem, dessen du dir vielleicht gar nicht bewusst bist. Pflegst du wirklich deine Inhalte? Du könntest es jederzeit tun – machst es aber kaum oder gar nicht (mehr).

Das soll absolut kein Vorwurf sein. Deine Webseite ist schließlich fertig. Die Welt dreht sich seitdem weiter.

Das Problem ist nun, dass du eine komplexe Applikation im Internet betreiben lässt, deren Hauptzweck darin besteht, Inhalte zu pflegen, ohne jemanden beauftragen zu müssen. Und genau das hat paradoxerweise dafür gesorgt, dass du in eine teure Abhängigkeit zu deiner Agentur geraten bist. Kommt dir das bekannt vor?

Es gibt Studien, die belegen, dass du mit dieser Situation nicht alleine dastehst.

Zum Beispiel wurden für die SIINDA Landscape Study von 2018 sehr viele deutsche KMU-Webseiten untersucht: bei 42 Prozent lag die letzte inhaltliche Änderung mehr als ein Jahr zurück, nur 23 Prozent waren im letzten Monat angefasst worden. Selbst Seiten, die auf Seite eins bei Google stehen, werden laut einer Analyse im Schnitt nur alle zwei Jahre aktualisiert.

Stellen wir uns also vor, deine Firma möchte jedes Jahr ein einziges Mal etwas verändern – z.B. ein neues Teamfoto hochladen oder einen Blogpost über eine Unternehmensauszeichnung veröffentlichen. Dann ist ein Static Site Generator perfekt geeignet. Deine Inhalte sind statisch – also ist statisches HTML die ehrlichste und effizienteste Lösung für dich und dein Unternehmen.

An den folgenden Punkten erkennst du, dass eine statische HTML-Webseite für dein Unternehmen besser geeignet ist als ein Content Management System.

  • Du loggst dich kaum in dein System ein und vergisst sogar deine Anmeldedaten regelmäßig.
  • Dein CMS ist dir zu kompliziert, sodass du deine Agentur sogar für Änderungen anrufst, die das CMS dir eigentlich ermöglichen sollte.
  • Dein System ist dir zu teuer und du fragst dich, warum eine simple Firmenwebseite jährlich so viele Kosten verursacht.
  • Dein System ist dir zu langsam. Du hast vielleicht sogar schon einen Serverwechsel hinter dir und ein Performance-Plugin installiert und trotzdem bleibt deine Webseite langsam.
  • Du möchtest keine Systemupdates mehr. Alle paar Jahre läuft dein CMS aus dem Support, und die Migration kostet fast so viel wie ein Neubau – für im Grunde statisches HTML.
  • Du möchtest ein gutes Gefühl haben. Vielleicht warst du schon einmal Ziel eines Angriffs und willst nie wieder fürchten, dass deine Firmenwebseite zur Werbefläche für fremden Schund wird.

Warum gibt es so viele Webseiten, die mit einem CMS gemacht sind?

Wenn du schon einmal mit einer Agentur gearbeitet hast, die auf ein Content Management System setzt, ahnst du vielleicht schon, warum dort ein anderes Lied gesungen wird. Dort möchte man von Static Site Generatoren nichts hören. Dort wird stattdessen betont, wie komfortabel du mit dem CMS deine Webseiten pflegen kannst. Man zeigt dir glänzende Dashboards mit grenzenlosen Möglichkeiten und tollen Plugins.

Dass sich dadurch teure Wartungsverträge, Upgrades auf neuere Versionen, Relaunches und Optimierungen verkaufen lassen, ist kein Zufall, sondern der Kern ihres Geschäftsmodells.

Außerdem ist da der Wunsch nach einem Allzweckwerkzeug. Agenturen wünschen sich ein Tool, mit dem sie einfache Webseiten und komplexe Systeme gleichermaßen umsetzen können. Somit wird das CMS schnell für alles Mögliche benutzt und zum heiligen Gral erklärt.

Auch als Verkaufsargument und Vertrauensanker benutzt man das CMS gerne. Das CMS ist im Grunde der Kern der Agentur und ein CMS lebt von den zahlreichen Agenturen, die es vertreiben.

Aber würdest du dir einen LKW zulegen, ihn pflegen, warten und die Betriebskosten zahlen, damit du ihn alle 1–2 Jahre für den nächsten Umzug aus dem eigens dafür errichteten Fahrzeugschuppen holen kannst? Du kannst damit alles transportieren. Von der winzigen Umhängetasche bis zu LKW-Ladungen voller Blumenerde. Du findest das absurd? Das ist es auch!

Aber bin ich mit statischem HTML nicht ebenso abhängig von einer Agentur?

Wenn du deine Inhalte nicht selbst in Markdown bearbeiten und dich nicht mit Git-Versionierung beschäftigen möchtest, wirst du für deine Änderungen höchstwahrscheinlich die Hilfe eines Technikers benötigen.

In diesem Fall zahlst du jedoch ausschließlich für die Änderungen und nicht für die laufenden Kosten eines komplexen Systems. Mit anderen Worten zahlst du nun für ehrliche Arbeit und echte Wertschöpfung.

Meine Kunden erhalten auf Wunsch mittlerweile einen MCP-Zugang zu ihrer Webseite. Damit kann dein KI-Chatbot die Inhalte deiner Webseite verwalten – inklusive Vorschaulinks mit optionalem Passwortschutz. Wenn dich das interessiert. Melde dich einfach bei mir. Dann zeige ich dir, was ich damit meine.

Hat statisches HTML auch Nachteile?

Statisches HTML ist super cool für Millionen von Unternehmens- und Portfolio-Seiten, aber natürlich gibt es auch Schattenseiten.

Dynamische Inhalte

Wie der Name schon andeutet, ist statisches HTML von Natur aus nicht dynamisch. Jede Seite muss im Vorhinein gerendert werden.

Das fällt besonders auf, sobald viele verschiedene Kombinationen der gleichen Seite möglich sind – wie bei dieser Kursübersicht.

Niemand kann wirklich wissen, in welcher Kombination der Besucher nach Kategorien, Veranstaltungsorten oder Preisen filtern und sortieren wird.

Das lässt sich zwar mit JavaScript und Tricks wie versteckten Daten, eingebettet in unsichtbare HTML-Tags, lösen. Unschön und etwas hacky bleibt es jedoch trotzdem. SEO-freundlich ist das auch nicht.

Also bleibt für solche Sachen eine einfache Web-Applikation die passende Wahl. Und ich meine damit kein CMS – nur weil eine Webseite ein zentrales dynamisches Element besitzt, benötigt sie noch lange kein WordPress.

Inhalte mit einem Ablaufdatum

Eine Jahreszahl wie in „© 2026 Braunstetter" zeigt in statischem HTML auch noch das Jahr 2026, wenn schon längst das Jahr 2046 angebrochen ist.

Das Gleiche gilt übrigens für die oben erwähnte Kursübersicht. Reines statisches HTML würde in zwanzig Jahren hoffnungslos veraltete Kurse anzeigen.

Auch dieses Problem lässt sich lösen. Es gibt beispielsweise die Möglichkeit, eine Scheduled pipeline zu erstellen. Die ermöglicht es dir, in regelmäßigen Abständen deine statische Webseite neu zu rendern und somit auch deine Daten aktuell zu halten.

Du denkst dir jetzt vielleicht: Wenn deine Webseite auf einen regelmäßigen Rebuild angewiesen ist, bist du wieder abhängig von einem System, das auch in Jahren noch lauffähig sein muss.

Das stimmt natürlich. Aber dieses System ist viel kleiner als ein CMS und du zahlst diesen Preis bewusst und gezielt für etwas, das du wirklich brauchst. Ein guter Entwickler wird einen Static Site Generator wählen, der deine Webseiten auch in Jahren noch zuverlässig rendert.

Außerdem bleibt HTML, das schon im Netz liegt, von diesen Dingen unbeeindruckt. Im schlimmsten Fall würden deine Inhalte schlicht und einfach nicht weiter aktualisiert werden. Eine CMS-Webseite, deren Server ein Problem hat, würde auf einmal anfangen, unschöne Abstürze zu produzieren, langsamer zu werden oder Schlimmeres.

Keine geschützten Bereiche

Statisches HTML ist für viele Webseiten ein wahrer Segen. Wenn du jedoch einen Bereich möchtest, in dem du dir z.B. alle deine Kurse ansehen kannst wie hier, dann ist statisches HTML leider keine Option. Für solch einen Adminbereich benötigst du in jedem Fall eine Web-Applikation.