WordPress-FehlerMeldungen von WordPress

WordPress: „Maximum execution time exceeded“ verstehen und beheben

PHP beendet ein Skript, das länger rechnet als in max_execution_time erlaubt, ab Werk nach 30 Sekunden. In WordPress trifft das vor allem Importe, Sicherungen, Updates, die Bildbearbeitung und fehlerhafte Plugins. Oft zeigt die Seite nur den kritischen Fehler, den genauen Wortlaut liefert das Fehlerprotokoll. Abhilfe schafft ein höherer Wert im Hosting-Panel oder in der php.ini. Sehr lange Aufgaben erledigst Du besser mit WP-CLI, denn auf der Kommandozeile gilt keine Zeitgrenze.

So sieht die Meldung aus

  • Fatal error: Maximum execution time of 30 seconds exceeded
  • Maximum execution time of 60 seconds exceeded
  • Maximum execution time of 300 seconds exceeded

Woran es liegt.

Große Importe und Exporte

Das Einlesen vieler Beiträge, Produkte oder Bilder in einem Rutsch dauert länger als die erlaubten Sekunden. Der Import endet mittendrin und hinterlässt einen halben Datenbestand.

Sicherungen ohne Etappen

Sicherungs-Plugins packen Dateien und Datenbank in ein Archiv. Bei großen Seiten reicht die Zeit eines einzigen Aufrufs dafür nicht, wenn das Plugin die Arbeit nicht in mehrere Durchläufe aufteilt.

Rechenintensive Bildbearbeitung

Beim Erzeugen der Bildgrößen rechnet PHP mit GD oder Imagick. Bei sehr großen Fotos oder beim Neuberechnen aller Vorschaubilder summiert sich das schnell über die Grenze hinaus.

Endlosschleife im Code

Ein Fehler in einem Plugin oder Theme lässt eine Schleife nie enden. Dann bringt auch eine höhere Grenze nichts, der Abbruch kommt nur etwas später.

Knappe Grenze beim Hoster

Manche Hoster setzen max_execution_time niedrig an und erlauben keine Änderung. Andere trennen die Verbindung schon am Webserver, bevor PHP selbst an seine Grenze kommt.

So behebst Du den Fehler.

Leg vor jeder Änderung eine Sicherung von Dateien und Datenbank an. Geh die Schritte der Reihe nach durch und prüf nach jedem, ob die Seite wieder lädt.

  1. Stelle des Abbruchs ermitteln

    Die Zeile mit „Maximum execution time“ im Protokoll nennt Datei und Zeilennummer, an der PHP gestoppt hat. Aktiviere dafür WP_DEBUG_LOG in der wp-config.php oder schau in das Fehler-Log im Hosting-Panel. Der Ordnername unter wp-content/plugins verrät, welches Plugin zu lange lief.

  2. Die geltende Zeitgrenze ansehen

    Unter Werkzeuge → Website-Zustand → Bericht nennt der Abschnitt „Server“ die „Maximale PHP-Ausführungszeit (max_execution_time)“. Steht dort 30, genügt das für normale Seitenaufrufe, für Importe und Sicherungen aber oft nicht.

  3. max_execution_time erhöhen

    Am einfachsten geht es im Hosting-Panel bei den PHP-Einstellungen. Fehlt dort das Feld, gehört der Wert in eine php.ini oder .user.ini, die direkt neben der wp-config.php liegt. Heb vorher eine Kopie der alten Datei auf. 300 Sekunden sind ein üblicher Wert für Importe. Den Wert 0, also gar keine Grenze, solltest Du auf einem Webserver nicht setzen.

    php.ini oder .user.ini
    max_execution_time = 300
  4. Zeitgrenze aus der wp-config.php setzen

    Lässt sich die php.ini nicht ändern, kann die wp-config.php die Grenze bei jedem Aufruf neu setzen. Die Abfrage mit function_exists verhindert einen Absturz, falls der Hoster set_time_limit abgeschaltet hat. Sperrt der Server den Wert fest, bleibt der Befehl ohne Wirkung.

    wp-config.php
    if ( function_exists( 'set_time_limit' ) ) {
        set_time_limit( 300 );
    }
  5. Lange Aufgaben mit WP-CLI erledigen

    Auf der Kommandozeile hat PHP keine Zeitgrenze. Datenbank-Sicherungen, Importe und das Neuberechnen von Bildern laufen dort ohne Abbruch durch. Du brauchst dafür SSH-Zugang, für wp import außerdem das aktive Plugin WordPress Importer.

    Terminal (WP-CLI)
    wp db export sicherung.sql
    wp media regenerate --yes
    wp import inhalte.xml --authors=create
  6. Arbeit in kleinere Pakete teilen

    Teile große Importdateien in mehrere kleine auf und stelle Sicherungs-Plugins auf Etappen oder einen nächtlichen Zeitplan um. Viele Import-Plugins lassen Dich einstellen, wie viele Einträge sie pro Durchlauf verarbeiten.

  7. Grenze des Webservers mit dem Hoster klären

    Hilft ein höherer PHP-Wert nicht und erscheint stattdessen ein Fehler 504, bricht der Webserver vorher ab. Bei nginx regelt das fastcgi_read_timeout, bei Apache die Einstellung Timeout. Diese Werte ändert in der Regel nur der Hoster.

Zuletzt geprüft am 25. September 2026.

So kommt er nicht wieder.

  • Importe und Exporte in handlichen Paketen durchführen statt alles auf einmal.
  • Sicherungen über den Hoster oder per WP-CLI laufen lassen, nicht als einen langen Aufruf im Browser.
  • Regelmäßige Aufgaben in die Nacht legen und ihre Dauer im Blick behalten.
  • Plugins meiden, die bei jedem Seitenaufruf aufwendige Berechnungen anstoßen.

Fragen zu Maximum execution time exceeded

Wo stelle ich max_execution_time ein?
Am sichersten im Hosting-Panel bei den PHP-Einstellungen. Alternativ in einer php.ini oder .user.ini, falls der Hoster das erlaubt, oder mit set_time_limit in der wp-config.php. Einträge in der .htaccess wirken nur, wenn PHP als Apache-Modul läuft.
Warum läuft mein Import länger als 30 Sekunden ohne Fehler?
Unter Linux zählt PHP nur die Zeit, in der das Skript selbst rechnet. Warten auf die Datenbank, auf Dateien oder auf andere Server zählt nicht mit. Deshalb kann ein Aufruf deutlich länger dauern, bevor die Grenze greift.
Ist max_execution_time 0 eine gute Idee?
Nein. Ohne Grenze kann ein fehlerhaftes Plugin den Server dauerhaft beschäftigen und die Seite für alle Besucher bremsen. Setze lieber einen großzügigen festen Wert und erledige sehr lange Aufgaben mit WP-CLI.
Was hat der Fehler mit 504 Gateway Timeout zu tun?
Beide entstehen durch zu lange Laufzeiten. Beim 504 wartet der Webserver oder ein Proxy nicht länger auf PHP, bei „Maximum execution time“ stoppt PHP sich selbst. Welche Grenze zuerst greift, hängt von den Einstellungen beim Hoster ab.

Lieber eine Website, die einfach läuft?

Wir bauen Websites, die schnell laden und ohne Update-Stress laufen. Oder wir übernehmen Deine WordPress-Seite samt Pflege. Erst Dein Paket, dann ein Termin per Video.

Kevin Baum im Videocall an seinem Schreibtisch, im Hintergrund eine Holzlattenwand mit farbigem Licht.

Erst Dein Paket, dann der Termin

Im Preisrechner tippst Du an, was Dich bremst. Du siehst sofort Dein Paket mit Preisspanne. Danach wählst Du direkt einen Termin, das Gespräch läuft per Video.

Dein Preis in 2 Minuten