Eben lief deine Website noch einwandfrei – nach dem Umzug auf einen neuen Server steht plötzlich überall „Grüße“ statt „Grüße“. Umlaute, das ß und Sonderzeichen sind in seltsame Buchstabensalate verwandelt. Die gute Nachricht vorweg: Deine Texte sind nicht verloren. Das ist ein bekanntes, klar benanntes Problem mit einer zuverlässigen Lösung. In diesem Beitrag erklären wir verständlich, was technisch passiert, warum ausgerechnet der Umzug den Schaden anrichtet – und wie du ihn Schritt für Schritt vollständig behebst.
Das Symptom: Aus „Grüße“ wird „Grüße“
Das Schadensbild ist immer gleich und sehr wiedererkennbar. Überall dort, wo eigentlich ein deutscher Umlaut oder ein Sonderzeichen stehen müsste, erscheinen jetzt zwei oder mehr fremde Zeichen. Typische Beispiele aus echten Fällen:
| So soll es sein | So sieht es kaputt aus |
|---|---|
| Grüße | Grüße |
| Über uns | Über uns |
| Außen | Außen |
| ausgewählte Gerichte | ausgewählte Gerichte |
Fachleute nennen diesen Zeichensalat Mojibake (japanisch für „Zeichen-Wandlung“). Das Muster ist verräterisch: Fast immer taucht ein großes à auf, gefolgt von einem zweiten Zeichen. Genau dieses à ist die Signatur des Problems – und gleichzeitig der Schlüssel zur Reparatur.
Keine Panik: Nichts ist verloren
Auch wenn es schlimm aussieht: Bei diesem Fehler geht kein einziges Zeichen verloren. Die Information steckt vollständig in der Datenbank – sie wird nur falsch interpretiert und deshalb falsch angezeigt. Der Schaden ist systematisch und nach einem festen Muster entstanden, also lässt er sich auch systematisch und verlustfrei rückgängig machen. Wichtig ist nur: vor der Reparatur ein Backup anlegen und die Richtung der Korrektur richtig wählen.
Das ist der entscheidende Unterschied zu echtem Datenverlust: Hier sind die Buchstaben nicht weg, sondern nur „falsch übersetzt“. Wenn man die falsche Übersetzung kennt, kann man sie exakt umkehren. Und die kennen wir.
Wie WordPress Texte speichert (einfach erklärt)
Um zu verstehen, was schiefgeht, brauchst du nur eine Idee: Ein Computer speichert keine Buchstaben, sondern Zahlen (Bytes). Welche Zahl welcher Buchstabe ist, legt der sogenannte Zeichensatz fest – quasi das Wörterbuch zwischen Zahlen und Buchstaben. Für deutsche Websites sind drei Begriffe wichtig:
| Zeichensatz | Was er kann | Umlaut „ü“ = |
|---|---|---|
| latin1 (ISO-8859-1) | Alter West-Europa-Zeichensatz, nur 1 Byte pro Zeichen, keine Emojis | 1 Byte |
| utf8 (utf8mb3) | Moderner Standard, jedes Zeichen 1–3 Bytes, weltweite Schriften | 2 Bytes |
| utf8mb4 | Wie utf8, aber zusätzlich mit Emojis – heute empfohlen für WordPress | 2 Bytes |
Der Knackpunkt: Ein „ü“ ist in UTF-8 zwei Bytes lang (technisch: die Zahlen C3 A4 für „ä“, C3 BC für „ü“). Wenn ein Programm diese zwei Bytes fälschlich mit dem alten latin1-Wörterbuch nachschlägt, liest es daraus zwei einzelne Zeichen – nämlich à und ¼. Genau hier beginnt der Salat.
In jeder WordPress-Installation gibt es drei Orte, an denen ein Zeichensatz festgelegt ist: 1. in der Datei wp-config.php (die Einstellung DB_CHARSET), 2. in den Datenbank-Tabellen selbst und 3. in der Verbindung zwischen WordPress und Datenbank. Solange alle drei dasselbe „sprechen“, ist alles gut. Stimmen sie nicht überein, entsteht Mojibake.
Warum das Original funktioniert, der Klon aber kaputt ist
Das ist die Frage, die fast alle Betroffenen stellen: „Auf der alten Seite war doch alles richtig – warum jetzt nicht mehr?“ Die Antwort ist überraschend logisch.
Viele ältere Installationen – besonders die, die per 1-Klick-Installer im cPanel (Softaculous & Co.) entstanden sind – haben eine kleine Inkonsistenz eingebaut: Die Texte sind als modernes UTF-8 gespeichert, aber die Datenbank ist nach außen als latin1 deklariert. Das klingt nach einem Fehler – und ist es im Prinzip auch. Aber solange Speichern und Anzeigen auf demselben System mit denselben (falschen) Einstellungen passieren, heben sich die beiden Fehler gegenseitig auf. Die Seite sieht perfekt aus. Niemand merkt etwas.
Beim Umzug wird genau diese stille Übereinkunft zerstört. Das Umzugswerkzeug nimmt die „latin1“-Beschriftung der alten Datenbank wörtlich und „konvertiert“ die Daten brav nach UTF-8 – obwohl sie längst UTF-8 sind. Jedes Umlaut-Byte wird dabei ein zweites Mal verschlüsselt. So wird aus einem Zeichen plötzlich zwei. Auf dem neuen Server fehlt dann die ausgleichende Gegen-Inkonsistenz, und der Salat wird sichtbar.
Original: UTF-8 gespeichert
In der alten Datenbank steht „Grüße“ korrekt als UTF-8 – das „ü“ belegt zwei Bytes. Alles ist sauber gespeichert.
Original: Zwei Fehler heben sich auf
Die Datenbank ist als latin1 beschriftet, obwohl UTF-8 drinsteht. WordPress liest mit derselben Schieflage zurück – die Anzeige ist trotzdem korrekt. Niemand bemerkt das Problem.
Umzug: Das Tool nimmt „latin1“ ernst
Beim Klonen liest Duplicator (oder ein anderes Umzugstool) die Beschriftung „latin1“ und konvertiert die Daten nach UTF-8 – obwohl sie schon UTF-8 sind. Eine Konvertierung zu viel.
Umzug: Jeder Umlaut wird verdoppelt
Aus dem „ü“ (Bytes C3 BC) werden bei der überflüssigen Konvertierung vier Bytes – die Zeichen „ü“. Aus einem Zeichen sind zwei geworden. Das ist die sogenannte Doppel-Kodierung (Double-Encoding).
Klon: Der Salat wird sichtbar
Auf dem neuen Server passt die ausgleichende Schieflage nicht mehr. WordPress zeigt nun ehrlich an, was in der Datenbank steht: „Grüße“ statt „Grüße“.
Was „Doppel-Kodierung“ konkret bedeutet
Man kann es sich wie eine doppelte Übersetzung vorstellen: Ein deutscher Satz wird ins Englische übersetzt – und dann wird das englische Ergebnis noch einmal so behandelt, als wäre es Deutsch, und „übersetzt“. Heraus kommt Unsinn. Beim Mojibake ist es genauso, nur mit Bytes:
Richtig: ü = Bytes C3 BC (UTF-8, ein Zeichen)
Eine Übersetzung
zu viel: ü → „Ó + „¼“ → Bytes C3 83 C2 BC (= "ü", zwei Zeichen)
Dasselbe für ß: ß = C3 9F → "ß" = C3 83 C2 9F
Weil dieser Vorgang nach einer festen Regel abläuft und die komplette Datenbank gleichmäßig betrifft, lässt er sich exakt umkehren: Man muss die überflüssige Übersetzung einfach genau einmal zurückrechnen. Danach steht wieder das saubere „ü“ da.
Die typische Falle: cPanel-Installer und Duplicator
Das Problem tritt fast immer in derselben Konstellation auf – deshalb lohnt es sich, sie zu kennen:
Typische Auslöser für Mojibake beim Umzug
- Die Ursprungsseite wurde per cPanel-1-Klick-Installer (Softaculous) angelegt – oft mit latin1-Beschriftung
- Geklont wurde mit Duplicator, All-in-One WP Migration, einem SQL-Export oder einem Hoster-Umzugstool
- In der wp-config.php steht DB_CHARSET auf utf8, während die Tabellen oder die Datenbank latin1 deklarieren
- Beim Import wurde eine automatische „Zeichensatz-Konvertierung“ nicht abgeschaltet
- Erst nach dem Umzug, nicht vorher, treten die kaputten Umlaute auf
Viele suchen den Fehler zuerst im Theme oder in einem Plugin und probieren stundenlang herum. Vergebliche Mühe: Der Salat steckt in der Datenbank, nicht in den Theme-Dateien. Du erkennst das daran, dass auch Titel, Menüs, Einstellungen und sogar der Seitenname betroffen sind – überall, wo Text aus der Datenbank kommt.
Reparatur Schritt für Schritt
Jetzt zur Lösung. Die Reparatur ist gut machbar, aber sie greift direkt in die Datenbank ein. Deshalb gilt eine eiserne Regel, bevor irgendetwas anderes passiert:
Lege vor jedem Eingriff ein vollständiges Backup der Datenbank an (z. B. als SQL-Export). Wenn die Korrektur in die falsche Richtung läuft, kann sie Daten unbrauchbar machen. Mit Backup ist das halb so wild – du spielst es einfach zurück und versuchst es erneut. Ohne Backup wird ein Fehler richtig teuer. Am sichersten testest du die Reparatur zunächst auf einer Kopie der Seite.
Schritt 1: Die Diagnose – welcher Fall liegt vor?
Es gibt zwei Spielarten des Problems, und sie brauchen unterschiedliche Lösungen. Schau dir dazu am besten einen betroffenen Text genau an:
- Fall A – Doppel-Kodierung: Du siehst Muster wie
ü,ö,ä,ß(immer mit dem großenÃ). Das ist der häufigste Fall nach einem Duplicator-Umzug. Die Daten sind UTF-8, aber einmal zu viel kodiert. - Fall B – echtes latin1: Die Texte waren nie UTF-8, sondern „echtes“ altes latin1, werden aber jetzt als UTF-8 ausgegeben. Hier hilft eine reine Umstellung des Zeichensatzes, keine Rückrechnung.
Für den mit Abstand häufigsten Fall A (das verräterische Ã) zeigen wir hier die Reparatur. Mit einem Datenbank-Werkzeug wie phpMyAdmin (in fast jedem Hosting enthalten) oder Adminer / TablePlus kannst du prüfen, ob wirklich überall das Doppel-Muster vorliegt.
Schritt 2: Die Korrektur per SQL
Die eigentliche Heilung besteht darin, die überflüssige Übersetzung genau einmal zurückzunehmen. In SQL übernimmt das ein kompakter Befehl, den du pro Textspalte ausführst. Er liest den Text als latin1 zurück (macht die zu viel ausgeführte Konvertierung rückgängig) und speichert ihn als sauberes UTF-8:
Beispiel mit dem Standard-Präfix wp_ – passe es an dein eigenes Präfix an:
-- Beiträge und Seiten
UPDATE wp_posts SET
post_content = CONVERT(CAST(CONVERT(post_content USING latin1) AS BINARY) USING utf8mb4),
post_title = CONVERT(CAST(CONVERT(post_title USING latin1) AS BINARY) USING utf8mb4),
post_excerpt = CONVERT(CAST(CONVERT(post_excerpt USING latin1) AS BINARY) USING utf8mb4);
-- Einstellungen (Seitentitel, Slogan, viele Plugin-Optionen)
UPDATE wp_options SET
option_value = CONVERT(CAST(CONVERT(option_value USING latin1) AS BINARY) USING utf8mb4);
-- Zusatzfelder von Beiträgen (z. B. ACF, SEO-Plugins)
UPDATE wp_postmeta SET
meta_value = CONVERT(CAST(CONVERT(meta_value USING latin1) AS BINARY) USING utf8mb4);
-- Kommentare, Kategorien/Schlagwörter
UPDATE wp_comments SET comment_content = CONVERT(CAST(CONVERT(comment_content USING latin1) AS BINARY) USING utf8mb4);
UPDATE wp_terms SET name = CONVERT(CAST(CONVERT(name USING latin1) AS BINARY) USING utf8mb4);
1. Tabellen-Präfix: Ersetze wp_ durch dein echtes Präfix – viele Installationen nutzen etwas wie wpic_ oder wp123_. 2. Nur einmal ausführen: Lass den Befehl pro Spalte genau einmal laufen. Führst du ihn zweimal aus, machst du aus sauberen Umlauten neuen Salat. Am besten beschränkt man die Korrektur auf Zeilen, die das Ã-Muster überhaupt enthalten.
Schritt 3: Der sichere Ablauf im Überblick
Backup anlegen
Vollständigen Datenbank-Export ziehen und sicher ablegen. Erst danach geht es weiter.
Auf einer Kopie testen
Spiele das Backup in eine Test- oder Staging-Umgebung ein und führe die Reparatur dort zuerst aus. So siehst du das Ergebnis ohne Risiko für die Live-Seite.
Korrektur ausführen
Die SQL-Befehle pro Textspalte genau einmal ausführen. Bei vielen Plugin-Tabellen lohnt es sich, auch deren Textspalten einzubeziehen.
Ergebnis prüfen
Stichproben auf der Seite und in der Datenbank: Stehen jetzt überall saubere Umlaute? Taucht das große „Ó nirgends mehr auf? Dann hat es geklappt.
Cache leeren
Zum Schluss alle Caches leeren – Seiten-Cache, Optimierungs-Plugins und ggf. den Browser-Cache. Sonst zeigt die Seite noch alte, zwischengespeicherte Salat-Versionen an.
Du musst nicht zwingend selbst SQL schreiben. Viele Hoster bieten in phpMyAdmin einen SQL-Reiter, in den du die Befehle nur einfügst. Alternativ erledigt ein erfahrener Dienstleister die Reparatur in der Regel in unter einer Stunde. Achtung: Das beliebte Plugin „Better Search Replace“ ersetzt nur Texte – es kann diesen Zeichensatz-Fehler nicht zuverlässig beheben, weil hier keine Wörter, sondern Bytes umgerechnet werden müssen.
Damit es nicht wieder passiert: richtig umziehen
Die schönste Reparatur ist die, die man nie braucht. Mit zwei Maßnahmen verhinderst du, dass beim nächsten Umzug wieder Salat entsteht:
So ziehst du eine WordPress-Seite ohne Umlaut-Probleme um
Der nachhaltigste Schritt ist die Umstellung auf utf8mb4. Dieser Zeichensatz ist heute der WordPress-Standard, beherrscht alle Sprachen und sogar Emojis – und beseitigt die alte latin1-Schieflage dauerhaft. Danach sind Umlaute auch bei künftigen Umzügen kein Thema mehr.
Wann du besser einen Profi fragst
Hand aufs Herz: Direkte Eingriffe in die Datenbank sind nichts, was man zwischen Tür und Angel macht. Hol dir Unterstützung, wenn einer dieser Punkte auf dich zutrifft:
- Du bist dir bei Backup, phpMyAdmin oder SQL unsicher.
- Es handelt sich um einen wichtigen Live-Shop oder eine geschäftskritische Seite.
- Das Schadensbild ist gemischt (teils Salat, teils sauber) – dann ist die Richtung der Korrektur nicht eindeutig und ein falscher Lauf richtet Schaden an.
- Neben WordPress hängen weitere Systeme an derselben Datenbank.
Mojibake sieht nach Katastrophe aus, ist aber in Wahrheit eines der dankbarsten WordPress-Probleme: Die Daten sind vollständig da, der Fehler folgt einem festen Muster – und genau deshalb lässt er sich sauber und vollständig zurückdrehen.
Michael Rademacher, Gründer realmaker
Fazit
Wenn nach einem Umzug überall „Grüße“ statt „Grüße“ steht, ist das kein Datenverlust, sondern eine Doppel-Kodierung: Die Umlaute wurden beim Klonen einmal zu viel von latin1 nach UTF-8 umgewandelt. Das Original funktionierte nur deshalb, weil sich dort zwei Zeichensatz-Fehler gegenseitig ausglichen – beim Umzug ist diese Balance zerbrochen. Die Lösung ist, die überflüssige Umwandlung mit einem gezielten SQL-Befehl genau einmal zurückzurechnen. Mit Backup, einem Test auf einer Kopie und anschließendem Cache-Leeren ist der Spuk in kurzer Zeit vorbei – und mit der Umstellung auf utf8mb4 kommt er auch nicht wieder.
Umlaute kaputt nach dem Umzug?
Wir bringen deine Texte sauber zurück
Als Agentur mit über 23 Jahren WordPress-Erfahrung reparieren wir Mojibake schnell, sicher und verlustfrei – inklusive Backup, Test und Umstellung auf utf8mb4, damit es nicht wieder passiert.
Häufige Fragen
Nein. Bei dieser Art von Fehler ist kein Zeichen verloren. Die Information steckt vollständig in der Datenbank, sie wird nur falsch dargestellt. Sobald die überflüssige Kodierung zurückgerechnet ist, stehen alle Umlaute und Sonderzeichen wieder korrekt da.
Nur eingeschränkt und mit hohem Risiko. Plugins wie „Better Search Replace“ tauschen Texte aus, aber sie rechnen keine Bytes um. Du müsstest jede einzelne kaputte Kombination von Hand ersetzen – fehleranfällig und nie vollständig. Der saubere Weg ist die byte-genaue Rückrechnung per SQL.
Weil sich auf dem alten Server zwei Zeichensatz-Fehler gegenseitig aufgehoben haben: Die Daten waren UTF-8, die Datenbank war als latin1 beschriftet, und WordPress hat mit derselben Schieflage zurückgelesen. Das Ergebnis war zufällig korrekt. Beim Umzug zerbricht diese Balance, und der eigentliche Zustand der Daten wird sichtbar.
Übertrage die Datenbank byte-genau, ohne automatische Zeichensatz-Konvertierung, und stelle die Seite vorab auf utf8mb4 um – in der Datenbank, in den Tabellen und in der wp-config.php. Dann passt überall derselbe Zeichensatz, und Umlaute überstehen jeden Umzug unbeschadet.
Dieser Beitrag ist Teil unserer WordPress-Wissensreihe von realmaker – deiner Kreativagentur für Film, Web und KI-Lösungen.