Server-Umzug & Wordpress nach Jekyll

Nachdem ich nun seit Jahren auf verschiedensten Seiten Jekyll (den statischen Webseiten Generator) einsetze und auch seit mehr als 1 Jahr darüber blogge, wurde es endlich Zeit meinen eigenen Blog weg von Wordpress und hin zu Jekyll zu migrieren.

Ich nehme momentan einige Umbauarbeiten an meinem Server vor und will meine Wordpress-Multisite Installation loswerden. Nicht nur, das es eine permanente Sicherheitsbedrohung ist, seien wir ehrlich: ich blogge super selten und auf ein Update kommen zehntausende lesende Zugriffe.

Wieso sollte also jede Seite immer und immer wieder neu erzeugt werden, inkl. aller Datenbankzugriffe etc. Dazu kommt noch, das sich Wordpress Themes sehr schlecht optimieren lassen und diese zumeist mit dutzenden Assets (JS, CSS) vollgemüllt sind. Eine unnötige Belastung für alle involvierten Parteien und den Aspekt Datenschutz haben wir dabei noch gar nicht betrachtet.

Da ist mir eine Jekyll Seite viel lieber, zudem ich diese dann auch noch gleich über GitHub Pages kostenlos hosten kann.

Gesagt getan: 1 Tag später ist der Umzug vollendet und die Seite wird über GitHub ausgeliefert.

Herausforderungen und Lösungen

In der Vergangenheit habe ich schonmal über das Thema “Wordpress zu Jekyll umziehen” geschrieben, seitdem hat sich aber eine Kleinigkeit geändert. Eine wesentliche Nicht-Ganz-So-Kleine-Kleinigkeit wie ich anmerken möchte. Und zwar bin ich auf das Wordpress to Jekyll Exporter Plugin gestoßen, welches deutlich bessere Arbeit leistet als das offizielle Jekyll WP-Importer Plugin.

Das Plugin wurde von Ben Balter geschrieben, einem Entwickler den man kennen sollte, wenn man öfters mit Jekylll zu tun hat.

Die Stärken des Plugins liegen u.a. in den Punkten:

  • wpcli Support (um Timeouts beim Export zu umgehen)
  • Custom Permalinks Unterstützung
  • Export des gerenderten, anstatt des in der DB gespeicherten Contents (wenn man viele ShortCodes verwendet hat ein Lebensretter)
  • Konvertierung von HTML zu Markdown wo es möglich ist

Ich habe den Umzug diesmal mit Hilfe des Plugins vorgenommen und hatte dadurch wesentlich weniger Aufwand bei den Nacharbeiten. Die ganzen Media Files habe ich mit Hilfe eines rsync in mein Jekyll Verzeichnis gezogen und einmal via Suchen & Ersetzen über alle Dateien die Pfade angepasst.

Bzgl. SEO war mir in dem Falle nur die URLs der Posts wichtig und diese wurden 100% korrekt übernommen. Sollte man hingegen für die Bildersuche optimieren sollte man den rsync Schritt 2x überdenken und lieber bei der wp-content Verzeichnisstruktur bleiben.

You know what they say:

A good URL never changes

Fuck it. Google mit seiner Bild- und Trafficklau Suchmaschine ist mir herzlich egal. Hauptsache die Bilder in meinen Artikeln werden vernünftig angezeigt. Da es sich hier um meine persönliche Seite handelt, kann ich ja machen was ich will und muss auf keine Rankingverluste Rücksicht nehmen.

Und da ich gerade so schön in Fahrt war, habe ich in dem Zuge auch einige alte Posts gelöscht und die Seitenanzahl um ca. 100 Einträge gedrückt, da ich in Jekyll auf Kategorie- und Tag-Archive verzichtet und dies lieber über die Archiv-Sitemap gelöst habe. Das ganze bietet sich ab einer gewissen Posts Anzahl nicht mehr an, für mich funktioniert es aber noch ganz gut.

Was sonst noch?

  • Von über 700kB und etlichen CSS und JS Dateien auf ca 210kB pro Seite mit je einer CSS und JS Datei
    • Einzig der genutzte Font liesse sich noch wegoptimieren, aber ein ganz klein bißchen Style darf dann doch übrig bleiben
  • Umzug zu GitHub Pages, keine Ops-Arbeit mehr mit Certbot, kein PHPFPM, keine MariaDB, keine Deployments mehr notwendig
  • Ein neuer Blog Artikel bedeutet jetzt nur ein neues Markdown File
  • Und ein neues Design war auch überfällig, das alte war ja schon sicher 2 Jahre online … wo bleibt da der Spaß?!

Die Umstellung lief einwandfrei:

  • CNAME in GitHub angepasst
  • die A-Records auf GitHub Pages umgebogen
  • eine Stunde war die Seite online
  • und nochmal 24h später die Wordpress Seite gelöscht, yeah!

Wie war nochmal der Werbe-Slogan: Technik die begeistert!?!

Kevin Papst's Picture

von: Kevin Papst

Ich bin freier Programmierer, Spaziergänger, Open-Source Contributor, Fallschirmspringer, Windel-Wechsler, Buchfan und Entwickler der Zeiterfassung Kimai.