Beiträge und Seiten in WordPress exportieren und importieren: Medien, Autoren und Links richtig übernehmen
Inhalte zwischen WordPress-Websites übertragen: Was der WXR-Export enthält, wie Sie mit dem WordPress Importer oder WP-CLI importieren, Autoren zuordnen, Medien vollständig übernehmen und typische Fehler wie fehlende Bilder beheben.
Mit KI erstellt – redaktionelle Prüfung ausstehend
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Mehr dazu

Beiträge und Seiten wandern häufiger zwischen WordPress-Installationen, als man denkt: beim Zusammenlegen zweier Websites, beim Neuaufbau mit einem anderen Theme, beim Übernehmen von Inhalten aus einem Testsystem oder einfach als zusätzliche Sicherung der Texte. WordPress bringt dafür ein eigenes Exportformat mit, eine XML-Datei im sogenannten WXR-Format. Der Export ist schnell erledigt. Beim Import zeigen sich die Tücken: Bilder fehlen, Autoren landen als Abonnenten im System oder Beiträge erscheinen doppelt. Diese Anleitung zeigt, wie Sie Inhalte sauber exportieren, vollständig mit Medien importieren und das Ergebnis prüfen.
Voraussetzungen
- WordPress ab Version 6.x auf Quelle und Ziel, getestet mit WordPress 7.1.2 und PHP 8.4.
- Die Rolle Administrator auf beiden Websites.
- Das Plugin WordPress Importer auf der Zielwebsite. Laut wordpress.org lag zum Testzeitpunkt Version 0.9.6 vor.
- Für große Datenmengen: SSH-Zugang mit WP-CLI, weil der Upload im Browser durch PHP-Grenzen begrenzt ist.
- Die Quellwebsite bleibt während des Imports öffentlich erreichbar, damit die Medien heruntergeladen werden können.
- Ein aktuelles Backup der Zielwebsite. Ein Import lässt sich nicht per Knopfdruck rückgängig machen.
Schritt 1: Wissen, was der Export enthält
Die Export-Datei ist kein Backup. Sie enthält Inhalte mit ihren Metadaten, aber keine Dateien und keine Konfiguration. Wer das vorher weiß, erlebt nach dem Import keine Überraschung:
| Im Export enthalten | Nicht enthalten |
|---|---|
| Beiträge, Seiten, eigene Inhaltstypen | Bilddateien selbst, nur deren Adresse |
| Kategorien, Schlagwörter, eigene Taxonomien | Einstellungen der Website und der Plugins |
| Kommentare | Theme, Plugins, Widgets |
| Autoren mit Anmeldename und Anzeigename | Passwörter und Rollen der Benutzer |
| Benutzerdefinierte Felder (Post-Meta) | Daten in eigenen Tabellen von Plugins |
Für einen vollständigen Umzug einer Website ist dieser Weg daher ungeeignet. Dafür kopieren Sie Dateien und Datenbank, wie in der Anleitung WordPress manuell migrieren beschrieben. Der Export eignet sich, wenn Sie Inhalte in eine bestehende oder neu aufgebaute Website übernehmen wollen.
Verifizieren: Sie wissen, welche Inhalte Sie übertragen wollen, und haben für Einstellungen, Menüs und Plugin-Daten einen eigenen Plan, etwa Nachstellen per Hand.
Schritt 2: Inhalte exportieren
Im Adminbereich öffnen Sie Werkzeuge > Export. Darunter wählen Sie aus, was exportiert wird. Zur Auswahl stehen „Alle Inhalte“, „Beiträge“, „Seiten“ und „Medien“ zur Auswahl, dazu Inhaltstypen von Plugins. Bei Beiträgen können Sie nach Kategorie, Autor, Zeitraum und Status filtern. Ein Klick auf „Export-Datei herunterladen“ liefert die XML-Datei.
Wählen Sie in der Regel „Alle Inhalte“, auch wenn Sie nur Beiträge brauchen. Beitragsbilder sind eigene Einträge vom Typ Anhang. Exportieren Sie nur Beiträge, fehlen die zugehörigen Medien-Einträge. Im Labor enthielt der Export nur der Beiträge zwei Einträge, der Export aller Inhalte sieben, darunter das Beitragsbild.
Mit WP-CLI geht es ohne Browser und ohne Zeitlimit. Der Befehl legt die Datei im angegebenen Verzeichnis ab:
wp export --dir=/home/benutzer/export/ --filename_format='export-alles.xml'
# Nur Beiträge einer Kategorie ab einem Datum
wp export --dir=/home/benutzer/export/ --post_type=post --category=aktuelles --start_date=2025-01-01
Große Websites teilt WP-CLI automatisch in mehrere Dateien auf, laut Hilfe standardmäßig ab 15 MB. Die Grenze ändern Sie mit --max_file_size. Speichern Sie die Datei außerhalb des öffentlichen Webverzeichnisses, denn sie enthält E-Mail-Adressen der Autoren und alle Kommentare mit Absenderdaten.
Verifizieren: Die Datei öffnet sich im Texteditor und beginnt mit einer XML-Deklaration. grep -c "<item>" export-alles.xml nennt ungefähr so viele Einträge, wie Beiträge, Seiten und Medien auf der Quellwebsite existieren.
Schritt 3: Den WordPress Importer vorbereiten
WordPress liefert unter Werkzeuge > Importieren nur eine Liste von Importern. Beim Eintrag „WordPress“ steht „Jetzt installieren“, danach „Importer ausführen“. Per WP-CLI installieren Sie das Plugin so:
wp plugin install wordpress-importer --activate
Ohne das Plugin bricht wp import mit dieser Meldung ab:
Error: WordPress Importer needs to be installed. Try 'wp plugin install wordpress-importer --activate'.
Im Browser begrenzt PHP die Größe der hochgeladenen Datei. Im Labor zeigte der Importer „Maximale Größe: 2 MB“, entsprechend der Einstellung upload_max_filesize. Größere Dateien importieren Sie per WP-CLI oder erhöhen die Grenze, wie in der Anleitung zur Upload-Größe in WordPress beschrieben.
Verifizieren: Unter Plugins > Installierte Plugins ist „WordPress Importer“ aktiv, und wp help import zeigt die Hilfe zum Befehl.
Schritt 4: Importieren und Autoren zuordnen
Im Browser laden Sie die Datei unter Werkzeuge > Importieren > WordPress hoch. Im nächsten Bildschirm „Autoren zuweisen“ entscheiden Sie für jeden Autor der Quelle, ob WordPress einen neuen Benutzer anlegt oder die Beiträge einem vorhandenen Benutzer zuordnet. Darunter steht die Option „Dateianhänge herunterladen und importieren“. Aktivieren Sie sie, sonst kommen keine Bilder mit.
Bei WP-CLI steuert der Parameter --authors die Zuordnung. create legt fehlende Benutzer an, skip übernimmt keine Autoren, und eine CSV-Datei legt eine eigene Zuordnung fest:
wp import export-alles.xml --authors=create
# Eigene Zuordnung: Datei mit Kopfzeile old_user_login,new_user_login
wp import export-alles.xml --authors=zuordnung.csv
Beide Varianten haben im Labor Nebenwirkungen gezeigt, die Sie kennen sollten. Mit create legte der Importer die Redakteurin der Quellwebsite neu an, allerdings als Abonnentin. Rollen und Passwörter stehen nicht im Export, der Importer erinnert am Ende selbst daran. Mit skip hatten die importierten Beiträge überhaupt keinen Autor mehr, die Autorenkennung stand auf 0. Ordnen Sie Beiträge deshalb lieber einem vorhandenen Benutzer zu, im Browser über die Auswahlliste, bei WP-CLI über eine Zuordnungsdatei. Die Rollen der neu angelegten Benutzer korrigieren Sie danach unter Benutzer, wie in der Anleitung zu Benutzerrollen und Rechten beschrieben.
Verifizieren: Die Ausgabe endet mit „All done“ bzw. Success: Finished importing. Unter Beiträge und Seiten stehen die neuen Inhalte mit dem gewünschten Autor. wp user list --fields=user_login,roles zeigt keine unerwarteten Benutzer.
Schritt 5: Medien, Beitragsbilder und Links prüfen
Der Importer lädt jedes Bild über seine alte Adresse herunter. Ist die Quelle nicht erreichbar, erscheint in der Ausgabe eine Zeile wie „Failed to import Medien …“, und der Beitrag verweist ins Leere. Im Labor lief genau das zunächst schief, weil unsere Testumgebung sich nicht selbst aufrufen konnte. Nach dem Aktivieren der Konstante IMPORT_DEBUG in der wp-config.php nannte der Importer den Grund, einen cURL-Fehler beim Verbindungsaufbau. Diese Laboreigenheit betrifft Sie nicht, wenn die Quellwebsite öffentlich erreichbar ist. Die Konstante hilft aber bei jeder Fehlersuche:
define( 'IMPORT_DEBUG', true );
WordPress lädt Medien beim Import nur von Adressen, die es für extern hält. Adressen im eigenen Netz oder auf localhost lehnt es aus Sicherheitsgründen ab, im Labor mit der Meldung „Es wurde keine gültige URL angegeben.“. Liegt die Quelle also nur intern vor, etwa auf einem Testsystem, veröffentlichen Sie sie kurzzeitig unter einer normalen Adresse oder kopieren Sie den Ordner wp-content/uploads per SFTP und importieren den Text ohne Anhänge.
Nachdem die Quelle erreichbar war, kam das Bild in der Mediathek an und das Beitragsbild war korrekt zugeordnet. Prüfen Sie außerdem die Links im Text. Verweise auf andere Beiträge enthalten weiterhin die Domain der Quellwebsite. Die passen Sie mit einem Probelauf von wp search-replace an:
wp search-replace 'https://alt.example.de' 'https://www.example.de' --dry-run --report-changed-only
Entfernen Sie die Konstante IMPORT_DEBUG nach der Fehlersuche wieder.
Verifizieren: Unter Medien sind die Bilder vorhanden, im Frontend zeigen die Beiträge ihre Beitragsbilder, und der Quelltext einer Seite enthält keine Adressen der alten Domain mehr.
Schritt 6: Doppelte Einträge und Aufräumen
Bricht ein Import ab, starten Sie ihn einfach neu. Der Importer erkennt vorhandene Einträge an Titel und Datum und überspringt sie mit Meldungen wie „Beitrag „Hello world!“ already exists.“. Im Labor lieferte ein zweiter Lauf mit derselben Datei ausschließlich solche Meldungen, neue Duplikate entstanden nicht. Anders sieht es aus, wenn Sie Inhalte zwischen den Läufen bearbeitet oder umbenannt haben. Dann legt der Importer sie erneut an.
Zum Schluss deaktivieren und löschen Sie den WordPress Importer, wenn Sie ihn nicht mehr brauchen. Jedes Plugin, das ungenutzt bleibt, ist ein weiteres, das gepflegt werden muss. Löschen Sie auch die Export-Datei von Server und Rechner oder bewahren Sie sie geschützt auf.
wp plugin deactivate wordpress-importer --uninstall
Verifizieren: wp post list --post_type=post --format=count entspricht der Zahl auf der Quellwebsite. Der WordPress Importer steht nicht mehr in der Pluginliste, und im Webverzeichnis liegt keine XML-Datei.
Inhalte zu übernehmen ist meist ein einmaliger Vorgang, die Website dahinter braucht aber dauerhaft Pflege. Wer Updates und Sicherungen nicht selbst im Kalender halten möchte, kann sie abgeben: Die WordPress-Wartung von wordpressupdate.de übernimmt Updates von WordPress, Plugins und Themes mit Kompatibilitätsprüfung und wöchentliche Backups auf externen Speicher.
Typische Fehler
| Fehlerbild | Ursache | Lösung |
|---|---|---|
| „Failed to import Medien …“ | Quellwebsite nicht erreichbar oder Adresse intern | Quelle öffentlich erreichbar machen, IMPORT_DEBUG für Details |
| Beiträge ohne Beitragsbild | Nur Beiträge exportiert, Anhänge fehlen | Mit „Alle Inhalte“ erneut exportieren |
| Redakteure sind nach dem Import Abonnenten | Rollen stehen nicht in der Export-Datei | Rollen unter Benutzer nachtragen |
| Beiträge ohne Autor | Import mit --authors=skip | Vorhandenem Benutzer zuordnen, per Zuordnungsdatei oder im Browser |
| Upload bricht ab, Datei zu groß | upload_max_filesize kleiner als die Datei | Per WP-CLI importieren oder Grenze erhöhen |
Error: WordPress Importer needs to be installed. | Plugin fehlt auf dem Ziel | wp plugin install wordpress-importer --activate |
| Links führen zur alten Domain | Adressen im Text unverändert | wp search-replace mit Probelauf |
Häufige Fragen
Ersetzt der Export ein Backup?
Nein. Einstellungen, Plugins, Theme und Bilddateien fehlen. Für eine Sicherung brauchen Sie Datenbank und Dateien, wie in der Anleitung zur Backup-Strategie für WordPress beschrieben.
Kommen Menüs und Widgets mit?
Klassische Menüs sind in „Alle Inhalte“ enthalten, müssen nach dem Import aber unter Design wieder einem Menübereich zugewiesen werden. Widgets und Einstellungen des Customizers fehlen. Bei Block-Themes prüfen Sie Navigation und Vorlagen nach dem Import einzeln.
Kann ich Inhalte eines Seitenbaukastens übertragen?
Die Inhalte stehen meist in Post-Meta und kommen mit. Ob sie auf dem Ziel richtig dargestellt werden, hängt davon ab, ob dort dasselbe Plugin in passender Version aktiv ist. Testen Sie das an wenigen Seiten, bevor Sie alles übertragen.
Was ist mit Kommentaren und personenbezogenen Daten?
Kommentare wandern mit Name, E-Mail-Adresse und IP-Adresse. Wenn Sie diese Daten auf der neuen Website nicht brauchen, exportieren Sie per WP-CLI mit --skip_comments oder löschen Sie die Kommentare nach dem Import.
Testumfang
Wir haben Export und Import auf einer Testinstallation mit WordPress 7.1.2 durchgespielt, dabei kamen Texte, Kategorien und Beitragsbild vollständig an. Ein zweiter Importlauf erzeugte keine Duplikate, die Rolle der Redakteurin ging allerdings wie beschrieben verloren. Seitenbaukästen, Multisite und Exporte mit mehreren tausend Einträgen haben wir nicht geprüft, dort sollten Sie zuerst mit einem Teil der Inhalte testen.
Fazit
Export und Import von WordPress eignen sich gut, um Inhalte zwischen Websites zu übertragen, solange Sie ihre Grenzen kennen. Exportieren Sie alle Inhalte, damit Beitragsbilder mitkommen, halten Sie die Quelle für den Medien-Download erreichbar und ordnen Sie Autoren bewusst zu. Nach dem Import prüfen Sie Rollen, Bilder und Links und räumen Plugin und Export-Datei wieder weg. Wenn Sie die laufende Pflege Ihrer Website lieber abgeben, finden Sie bei der WordPress-Wartung von Marcel Schönfelder persönliche Betreuung aus Dresden.


