Als Betreiberin von Crest Datei habe ich in den letzten Jahren mehrfach komplette Websites und Content-Migrationen begleitet. Eine der häufigsten Fragen, die mir gestellt wird, lautet: Wie führe ich ein Headless CMS ein — konkret: von WordPress zu Strapi migrieren, ohne Datenverlust? In diesem Artikel teile ich meine praktische Anleitung aus echten Projekten, inklusive Fallen, die du vermeiden solltest, und konkreten Tools und Befehlen, die sich bewährt haben.
Warum Strapi? Warum Headless überhaupt?
Bevor ich in die Schritte eintauche: Ich entscheide mich für Strapi, weil es flexibel, Open Source und sehr gut erweiterbar ist. Headless-Trennung bedeutet: WordPress bleibt ein monolithisches CMS mit Frontend gekoppelt, Strapi trennt Content (API) und Präsentation. Das bringt Vorteile bei Performance, Multi-Channel-Ausspielung und Modernisierung des Tech-Stacks — aber die Migration ist ein nicht zu unterschätzendes Projekt.
Erste Vorbereitung: Audit und Strategie
Bevor du exportierst, solltest du den Bestand kennen:
Ich lege eine Mapping-Tabelle an: WordPress-Feld → Strapi-Collection Type. Dabei halte ich fest, welche Felder als Text, Rich-Text, Relation, Media oder JSON in Strapi abgebildet werden.
| WordPress | Strapi | Bemerkungen |
|---|---|---|
| post_title | title (Text) | Einfach |
| post_content | body (Rich Text) | Shortcodes prüfen |
| post_name (slug) | slug (UID) | Wichtig für Redirects |
| featured_media | image (Media) | Medienpfad erhalten |
Datenexport aus WordPress
Ich bevorzuge zwei parallele Exporte:
Tools/Techniken, die ich nutze:
Wichtig: Exportiere auch Taxonomien (Kategorien/Tags), Autoren, SEO-Meta (Yoast/RankMath-Felder) und Custom Fields (ACF) in die Exporte — sonst verlierst du wichtige Metadaten.
Medienmigration: oft der kritischste Teil
Bilder und Dateien müssen physisch verfügbar bleiben oder in Strapi importiert werden. Ich empfehle:
Für große Sites automatisiere ich den Upload mit einem Node-Skript, das Medien aufnimmt und per Strapi-Upload-Endpoint hochlädt, dabei die ursprünglichen Dateinamen und Pfade bewahrt. So kannst du später die URLs in Content ersetzen.
Strapi aufsetzen und Content-Modelle anlegen
Ich richte Strapi lokal oder in einer Staging-Umgebung ein und definiere Collection Types entsprechend meiner Mapping-Tabelle. Wichtige Hinweise:
Import: Strategien und Tools
Drei Wege haben sich bewährt:
Ich bevorzuge ein Node-Skript, das die WordPress-JSON liest, Felder mappt, Medien hochlädt (falls nötig) und dann per Strapi-REST-API den Content anlegt. So kannst du Transaktionen, Logging und Wiederholbarkeit einbauen.
Praktisches Beispiel (Ablauf eines Imports)
Wichtig: Beim Anlegen der Beiträge setze das ursprüngliche publish-Datum (created_at/updated_at) falls du Historie erhalten willst. Strapi erlaubt das, wenn du entsprechende Felder im Request spezifizierst (bei gegebener Berechtigung).
Permalinks, SEO, Redirects
URLs sollten erhalten bleiben oder korrekt weitergeleitet werden. Ich sichere folgendes:
Testing und Qualitätssicherung
Bevor Live-Schaltung:
Go-Live und Nacharbeiten
Beim Umstellen empfehle ich eine Wartungsseite oder eine schrittweise Umstellung mit Feature-Flags. Nach dem Livegang beobachte:
Wenn du möchtest, kann ich dir ein Beispiel-Node-Skript zur Verfügung stellen, das Medien hochlädt und Beiträge anlegt — das habe ich schon mehrfach für Kunden angepasst. Auf Crest Datei findest du später auch ein detailliertes Repo mit Scripts und Konfig-Beispielen unter https://www.crest-datei.de.