Skip to content

Alles für WordPress, Webentwicklung — und mehr

🔗 So setzen Sie WordPress-Permalinks zurück: 3 Wege, um einen 404-Fehler zu beheben

🔗 So setzen Sie WordPress-Permalinks zurück: 3 Wege, um einen 404-Fehler zu beheben

Sie kennen das Gefühl: Sie öffnen eine Website und sehen einen weißen Bildschirm mit dem gefürchteten 404-Fehler. Die Startseite lädt einwandfrei, das Admin-Panel funktioniert, aber der Beitrag oder die Seite selbst wird nicht angezeigt. Sie überprüfen die URL, speichern den Eintrag erneut, leeren den Plugin-Cache, nichts hilft.

In neun von zehn Fällen liegt die Ursache in defekten WordPress-Rewrite-Regeln. Die Permalinks werden nicht mehr aufgelöst, und das CMS kann nicht ermitteln, welcher Inhalt unter dieser Adresse angezeigt werden soll. Gute Nachricht: Das lässt sich in einer Minute beheben, ohne Plugins oder Code-Änderungen.

Nachfolgend finden Sie drei Methoden zum Zurücksetzen der Permalinks: von der einfachsten (ein paar Klicks im Admin-Panel) bis zum manuellen Eingriff in die Datenbank per phpMyAdmin. Nach dem Reset verschwindet der 404-Fehler, und die URL-Struktur bleibt unverändert erhalten.

💡 Kurzübersicht:

  • Rufen Sie das WordPress-Admin-Panel auf und klicken Sie auf der Seite „Permalinks" auf „Änderungen speichern".
  • Fügen Sie eine Codezeile in die functions.php Ihres Themes ein, laden Sie die Seite neu und entfernen Sie die Zeile wieder.
  • Leeren Sie das Feld rewrite_rules in der Tabelle wp_options per phpMyAdmin.
  • Überprüfen Sie das Ergebnis: Öffnen Sie die problematische Seite und stellen Sie sicher, dass der 404-Fehler verschwunden ist.

Permalinks sind lesbare URLs für WordPress-Seiten und -Beiträge. Statt ?p=123 sehen Sie /blog/how-to-reset-permalinks/. Die Umwandlung übernimmt der Rewrite-Rules-Mechanismus, ein Regelwerk, das das CMS in der Datenbank und (bei bestimmten Einstellungen) in der .htaccess-Datei speichert.

Beim Hinzufügen eines neuen Beitragstyps, bei Änderungen der Linkstruktur oder nach einer Website-Migration aktualisieren sich die Rewrite-Regeln mitunter nicht automatisch. WordPress verwendet weiterhin die alten, zwischengespeicherten Regeln, und eine physisch vorhandene Seite liefert einen 404-Fehler. Ein Flush erzwingt die vollständige Neuerstellung der Rewrite-Regeln: Er löscht die gespeicherten Regeln und generiert die aktuellen.

Dabei werden die Permalinks nicht „gelöscht"; die in den Einstellungen definierte URL-Struktur bleibt unverändert. Lediglich der Cache der internen Routing-Regeln ändert sich. Der Vorgang ist völlig ungefährlich: Themes, Plugins und Inhalte bleiben unberührt.

Methode 1. Über das WordPress-Dashboard

Die schnellste und sicherste Methode ist das Zurücksetzen über das Admin-Panel. Nutzen Sie diesen Weg, wenn das Dashboard erreichbar ist.

  • Melden Sie sich in der WordPress-Konsole an: your-site.com/wp-admin.
  • Navigieren Sie zu Einstellungen → Permalinks.
  • Ändern Sie nichts an den Einstellungen, scrollen Sie lediglich auf der Seite nach unten.
  • Klicken Sie auf die blaue Schaltfläche „Änderungen speichern".
Speichern-Button auf der WordPress-Permalinks-Einstellungsseite

WordPress erstellt die Rewrite-Regeln stillschweigend neu und aktualisiert die .htaccess (sofern verwendet). Es erscheint keine Erfolgsmeldung; öffnen Sie einfach die problematische Seite in einem neuen Browser-Tab und prüfen Sie, ob der Fehler behoben ist.

Warum funktioniert das? Wenn Sie auf „Änderungen speichern" klicken, ruft das CMS intern die Funktion flush_rewrite_rules() auf, dieselbe, die Entwickler im Code verwenden. Der einzige Unterschied ist der Auslöser: Hier klicken Sie mit der Maus, statt PHP zu schreiben.

Diese Methode löst das Problem in den allermeisten Fällen. Wenn sie nicht geholfen hat, fahren Sie mit Methode 2 fort.

Methode 2. Über die functions.php des Themes

Falls das Admin-Panel nicht lädt oder die Schaltfläche „Speichern" kein Ergebnis brachte, setzen Sie die Regeln programmatisch zurück. Sie benötigen Zugriff auf die Dateien der Website: per FTP, über den Dateimanager des Hostings oder den integrierten Theme-Editor.

Wichtig: flush_rewrite_rules() ist eine ressourcenintensive Operation. Sie baut die gesamte URL-Struktur neu auf und verlangsamt die Website spürbar, wenn sie bei jedem Aufruf ausgeführt wird. Daher fügen wir die Funktion einmalig hinzu, laden die Seite neu und entfernen die Zeile sofort wieder.

  • Öffnen Sie die Datei functions.php des aktiven Themes. Pfad: /wp-content/themes/your-theme/functions.php.
  • Fügen Sie ganz am Ende der Datei, vor dem schließenden ?> (falls vorhanden), eine Zeile ein:
1flush_rewrite_rules();
  • Speichern Sie die Datei.
  • Laden Sie eine beliebige Seite der Website im Browser neu; die Funktion wird beim ersten Aufruf ausgeführt.
  • Öffnen Sie die functions.php erneut und löschen Sie die eingefügte Zeile. Dieser Schritt ist zwingend erforderlich.
Rewrite-Regeln-Code im WordPress-Theme-Editor leeren

Die Funktion wurde einmal ausgeführt, die Regeln wurden neu aufgebaut, der Code wurde entfernt, und die Website arbeitet normal ohne zusätzliche Last. Plugin-Entwickler nutzen denselben Ansatz: flush_rewrite_rules() wird an den Aktivierungs-Hook gehängt, nicht an jede Anfrage.

Eine Alternative für diejenigen, die nicht direkt in die functions.php eingreifen möchten: das Plugin Code Snippets. Erstellen Sie ein neues Snippet mit demselben Code, führen Sie es einmal aus (Schaltfläche „Ausführen") und löschen Sie es. Das Ergebnis ist identisch.

Methode 3. Per phpMyAdmin, direkter Reset der Regeln in der Datenbank

Die tiefste Ebene ist das manuelle Leeren der Rewrite-Regeln direkt in der Tabelle wp_options. Nutzen Sie diesen Weg, wenn Sie weder Zugriff auf das Admin-Panel noch auf die Theme-Dateien haben (beispielsweise bei einem White Screen of Death auf der gesamten Website, außer auf die Datenbank).

Erstellen Sie unbedingt ein Backup der Datenbank, bevor Sie Änderungen in phpMyAdmin vornehmen. Eine einzige falsche Aktion im SQL-Editor kann die Website irreparabel beschädigen.

  • Öffnen Sie phpMyAdmin über Ihr Hosting-Panel (cPanel, ISPmanager, DirectAdmin) im Bereich „Datenbanken".
  • Wählen Sie in der linken Spalte die Datenbank Ihrer WordPress-Website aus.
  • Wechseln Sie im oberen Menü zum Tab SQL.
  • Fügen Sie die Abfrage in das Textfeld ein und klicken Sie auf „OK":
1SELECT * FROM wp_options WHERE option_name = 'rewrite_rules'
  • Die Ergebnisse zeigen eine einzelne Zeile. Klicken Sie daneben auf „Bearbeiten" (das Stiftsymbol).
  • Suchen Sie das Feld option_value, das einen langen Text mit serialisierten Daten enthält. Markieren Sie den gesamten Inhalt des Feldes, löschen Sie ihn und speichern Sie.
Das rewrite_rules-Feld in phpMyAdmin bearbeiten

Beim nächsten Seitenaufruf erkennt WordPress den leeren Wert von rewrite_rules, stellt fest, dass keine Regeln vorhanden sind, und generiert sie automatisch neu. Sie müssen nichts weiter veranlassen.

Hinweis: Bei manchen Hosting-Konfigurationen kann das Tabellenpräfix von wp_ abweichen. Wenn Ihr Präfix anders lautet (z. B. wpxy_), ersetzen Sie wp_options durch wpxy_options. Das Präfix können Sie in der Datei wp-config.php in der Zeile $table_prefix überprüfen.

Wenn Sie lieber zuschauen als lesen, zeigt dieses Video den gesamten Ablauf des Zurücksetzens von Permalinks mit der ersten Methode, von der Anmeldung im Admin-Panel bis zur Überprüfung des Ergebnisses:

⁉️🤔 Häufig gestellte Fragen

Verschwinden meine URLs nach dem Zurücksetzen der Permalinks?

Nein. Ein Flush ändert nicht die unter „Einstellungen → Permalinks" festgelegte Linkstruktur. Er baut lediglich den Cache der internen Routing-Regeln neu auf. Alle Ihre Adressen wie /blog/, /product/ und /category/ bleiben exakt gleich. Die Ausnahme: Sie haben die Struktur vor dem Speichern manuell in den Einstellungen geändert; in diesem Fall werden die URLs gemäß der neuen Vorlage neu aufgebaut.

Muss ich ein Plugin installieren, um Permalinks zurückzusetzen?

Für einen einmaligen Vorgang definitiv nicht. Die drei oben genannten Methoden decken alle Szenarien ohne zusätzliche Software ab. Plugins wie Rewrite Rules Inspector sind nur dann sinnvoll, wenn Sie regelmäßig eigene Beitragstypen und Taxonomien im Code registrieren und den Zustand der Regeln in Echtzeit einsehen möchten. Für eine einfache 404-Behebung ist das überdimensioniert.

Das Zurücksetzen über das Admin-Panel hat nicht geholfen. Was nun?

Prüfen Sie, ob die .htaccess-Datei von einem anderen Plugin (Caching, Sicherheit, SEO) überschrieben wird. Deaktivieren Sie verdächtige Plugins testweise und wiederholen Sie den Reset. Hilft das nicht, fahren Sie mit Methode 2 (PHP) fort; diese ruft garantiert dieselbe Funktion flush_rewrite_rules() unter Umgehung sämtlicher Admin-Filter auf.

Kann ich die Regeln per WP-CLI zurücksetzen?

Ja, sofern WP-CLI auf dem Server installiert ist, bewirkt der Befehl wp rewrite flush genau dasselbe über die Kommandozeile. Das ist die schnellste Methode für Entwickler, die per SSH arbeiten. Sie wird sofort ausgeführt, erfordert kein Öffnen des Browsers und hinterlässt keine Spuren im Theme-Code.

Was tun, wenn der 404-Fehler nach dem Reset weiterhin besteht?

Die Ursache liegt dann nicht bei den Permalinks. Prüfen Sie drei Dinge: (1) ob die Seite oder der Beitrag selbst physisch gelöscht wurde, (2) ob der Slug mit anderen Inhalten oder einer Taxonomie kollidiert, (3) ob Anfragen durch eine .htaccess-Datei mit fehlerhaften Weiterleitungsregeln blockiert werden. Benennen Sie in letzterem Fall die .htaccess testweise in .htaccess.bak um, speichern Sie die Permalinks über das Admin-Panel (WordPress erstellt eine neue .htaccess) und prüfen Sie erneut.

Sie haben den Reset mit einer der drei Methoden durchgeführt, und die Seite wird wieder angezeigt. Hervorragend. Doch wenn ein 404-Fehler einmal aufgetreten ist, kann er wiederkommen: nach einem Plugin-Update, einem Theme-Wechsel oder Bearbeitungen an eigenen Beitragstypen. Setzen Sie diesen Leitfaden auf die Lesezeichenliste; die erste Methode (die Schaltfläche „Speichern" im Admin-Panel) beherrschen Sie jetzt aus dem Effeff und können sie in zehn Sekunden ausführen.

Und die wichtigste Regel bei der Arbeit mit der Datenbank: Erstellen Sie vor jedem Eingriff ein Backup. phpMyAdmin verzeiht keine Fehler, aber ein Datenbank-Backup bringt die Website in wenigen Minuten wieder zum Leben.