Skip to main content

Fehler 500 (Interner Serverfehler): Ursachen finden und beheben, ohne dass Kunden es zuerst merken

Fehler 500 heißt: Der Server hat ein Problem, sagt aber nicht welches. So findest du die Ursache über Logs, .htaccess und Plugins und erfährst vom Ausfall, bevor dein Kunde anruft.

Fehler 500 ist der unspezifischste aller HTTP-Fehler: Der Server meldet ein internes Problem, nennt aber keinen Grund. Hier erfährst du, welche Ursachen am häufigsten dahinterstecken, wie du den Fehler 500 über Logs und Rollback eingrenzt und wie du Ausfälle per Monitoring bemerkst, bevor deine Kunden anrufen.

Fehler 500: Der Kunde ruft an, und du hast nichts gemerkt

Freitag, 16:40 Uhr. Ein Kunde schreibt, sein Kontaktformular zeige nur eine weiße Seite mit „500 Internal Server Error“. Die Startseite lädt normal, im Backend sieht alles gut aus. Du weißt nicht, seit wann das so ist und wie viele Anfragen verloren gingen.

beispiel.de/200 · Startseite lädt normal
beispiel.de/kontakt/500 · Kontaktformular: Internal Server Error

Wir kennen diese Situation aus unserer Zeit als Agentur nur zu gut. Ein Fehler 500 ist selten ein Totalausfall. Er trifft oft nur eine Unterseite, ein Formular oder den Checkout, und genau deshalb fällt er so spät auf. Wer im DACH-Raum Kundenseiten betreut, rechnet die Fehlersuche zu Stundensätzen von 80 bis 150 Euro ab. Jede Stunde, in der niemand den Fehler bemerkt, kostet zusätzlich Anfragen und Vertrauen.

Was Fehler 500 (Interner Serverfehler) bedeutet

Der HTTP-Statuscode 500 steht für „Internal Server Error“, auf Deutsch interner Serverfehler. Der Server hat deine Anfrage erhalten, ist bei der Verarbeitung aber auf ein unerwartetes Problem gestoßen. Anders als bei 404 (Seite nicht gefunden) oder 403 (Zugriff verboten) verrät der Code nicht, was schiefging. Er ist der Sammelcode für alles, was die Anwendung nicht sauber abfangen konnte.

CodeBedeutung
404Seite nicht gefunden · Grund ist eindeutig
403Zugriff verboten · Grund ist eindeutig
500Interner Serverfehler · Sammelcode, Grund steht im Log

Deshalb hilft die Meldung allein nicht weiter. Hinter einem 500 Internal Server Error kann ein Tippfehler in einer Konfigurationsdatei stecken, ein Fatal Error in PHP oder ein Plugin, das nicht mehr zur PHP-Version passt. Die Ursache steht nicht im Browser, sondern in den Logs auf dem Server. Je nach System sieht die Fehlerseite anders aus: Apache zeigt eine nüchterne Standardseite, bei WordPress erscheint oft nur eine leere weiße Seite. Der Statuscode ist in allen Fällen derselbe.

Häufige Ursachen für einen Fehler 500

Fünf Auslöser decken in der Praxis die meisten Fälle ab:

01 · Konfiguration
Fehlerhafte .htaccess
Ein falscher Rewrite-Befehl oder eine Direktive, die dein Server nicht kennt, reicht aus. Das passiert gern nach Umzügen oder wenn ein Plugin die Datei umschreibt.
02 · Code
PHP-Fehler
Syntaxfehler, nicht abgefangene Exceptions oder eine inkompatible PHP-Version nach einem Hoster-Update.
03 · Erweiterungen · WordPress Nr. 1
Plugins und Themes
Ein Update oder der Konflikt zweier Erweiterungen. Bei WordPress ist das die häufigste Ursache.
04 · Ressourcen
Speicherlimit
Das Skript überschreitet das PHP-Memory-Limit, etwa bei Bildverarbeitung, Importen oder großen Shop-Kategorien.
05 · Dateisystem
Dateirechte und Besitzer
Falsche Berechtigungen nach einem Dateiumzug oder Deployment. Als Richtwert gelten 755 für Ordner und 644 für Dateien.

Auch Eingriffe des Hosters können Seiten kippen lassen. Wie sich das im Monitoring zeigt, haben wir im Beitrag PHP-Sicherheitslücke: Warum so viele Websites down waren beschrieben.

Fehler 500 beheben: Schritt-für-Schritt-Diagnose über Logs und Rollback

Geh der Reihe nach vor, ändere immer nur eine Sache auf einmal und notiere, was du getan hast.

  1. 01

    Logs lesen: Schau ins Error-Log deines Servers (Apache oder nginx) und ins PHP-Error-Log. Du findest sie meist im Hosting-Panel. Die Zeile zum Zeitpunkt des Fehlers nennt oft schon Datei und Zeilennummer. Bei WordPress schreibt WP_DEBUG_LOG Fehler in wp-content/debug.log, ohne sie Besuchern anzuzeigen.

  2. 02

    Letzte Änderung zurückrollen: Was wurde zuletzt geändert? Update, Deployment, Konfiguration? Spiel das Backup ein oder mach das Deployment rückgängig. Ein Rollback bringt die Seite schneller zurück als jede Fehlersuche. Die Analyse machst du danach in Ruhe auf einer Staging-Kopie.

  3. 03

    .htaccess prüfen: Benenne die Datei testweise um. Läuft die Seite, war sie der Auslöser. Bei WordPress erzeugst du unter „Einstellungen > Permalinks“ mit einmal Speichern eine frische Datei.

  4. 04

    Plugins und Theme ausschließen: Benenne den Ordner wp-content/plugins per FTP um und prüfe, ob die Seite lädt. Dann reaktivierst du die Plugins einzeln. Alternativ wechselst du testweise auf ein Standard-Theme.

  5. 05

    Limits und Rechte prüfen: Erhöhe das PHP-Memory-Limit testweise, etwa auf 256 MB, und kontrolliere die Dateirechte. Steht im Log „Allowed memory size exhausted“, ist das der Beleg.

Warum Fehler 500 oft nur zeitweise auftreten

Ein Fehler 500, der kommt und geht, hat meistens mit Last oder Timing zu tun. Bei Traffic-Spitzen sind PHP-Prozesse oder Datenbankverbindungen ausgeschöpft: Einzelne Anfragen scheitern, die nächste klappt wieder. Cronjobs, Backups oder ein Cache-Neuaufbau fressen zu bestimmten Uhrzeiten Ressourcen. Auch Bots, die gezielt eine rechenintensive URL abrufen, können einzelne Seiten kippen lassen, während der Rest einwandfrei läuft. Verwandt ist der Fehler 503 Service Unavailable, der ebenfalls oft unter Last auftritt.

Das Tückische daran: Du testest manuell, die Seite lädt, und du hältst den Kunden für übervorsichtig. Ohne Protokoll weißt du nicht, ob der Fehler dreimal pro Woche auftritt oder jede Stunde. Du brauchst eine lückenlose Aufzeichnung: Wann kam welcher Statuscode, bei welcher URL, zu welcher Uhrzeit? Ein Muster wie „immer nachts um drei“ oder „nur auf /checkout/“ führt dich direkt zur Ursache.

ZeitURLStatusCheck
Mo 03:00/checkout/500fehlgeschlagen
Mo 09:00/checkout/200ok
Mo 15:00/kontakt/200ok
Di 03:00/200ok
Di 03:00/checkout/500fehlgeschlagen
Di 12:00/checkout/200ok
Mi 03:00/checkout/500fehlgeschlagen
Mi 18:00/kontakt/200ok
Beispiel Checkverlauf: Zwischen den erfolgreichen Checks gehen einzelne 500er leicht unter. Filtert man nach Statuscode 500, wird das Muster sichtbar: nur /checkout/, immer um 03:00 Uhr.

Wie Pingoclock Fehler 500 erkennt, bevor Kunden anrufen

Pingoclock ist ein DSGVO-konformes Uptime Monitoring aus Deutschland, das bei einem Fehler 500 den HTTP-Statuscode jeder hinterlegten URL prüft und dich per E-Mail alarmiert. Der Free Plan überwacht 20 Websites kostenlos im 60-Minuten-Intervall, der Pro Plan kostet 3,99 € im Monat und prüft alle 5 Minuten.

Free · 20 Websites · 60 Min.Pro · 5 Min. · 3,99 €/MonatHosting in DE

Konkret heißt das: Du hinterlegst nicht nur die Startseite, sondern gezielt Kontaktformular, Checkout oder Login. Bei jedem Check vergleicht Pingoclock den erhaltenen mit dem erwarteten HTTP-Statuscode, normalerweise 200. Liefert eine URL einen 500er, schlägt der Check fehl. Ein Bestätigungs-Check läuft, danach kommt die Meldung. Wie du kurze Hänger von echten Ausfällen trennst und Warnungen sinnvoll einstellst, erklärt der Beitrag Kurze Ausfälle bei Websites: Warum sie passieren und wie du Warn-E-Mails richtig einstellst.

01 · CheckGET /kontakt/
02 · Vergleicherwartet 200, erhalten 500
03 · BestätigungBestätigungs-Check läuft
04 · MeldungE-Mail an dich

Manche Systeme liefern bei einem Fehler trotzdem Statuscode 200 und zeigen nur im Inhalt eine Fehlermeldung. Hier hilft die Contentüberwachung: Du prüfst zusätzlich, ob ein erwarteter Inhalt auf der Seite steht, etwa der Shopname im Footer. Fehlt er, schlägt Pingoclock Alarm. Im Checkverlauf filterst du außerdem nach Statuscode und Zeitraum und siehst, wann genau die 500er auftraten. Mehr zu allen Prüfarten findest du auf der Seite Uptime Monitoring.

Nur Statuscode200 OKCheck besteht, obwohl die Seite eine Fehlermeldung zeigt.
Mit ContentüberwachungInhalt fehltShopname im Footer nicht gefunden: Pingoclock schlägt Alarm.

Ein Beispiel: Das Plugin-Update am Freitagnachmittag

Stell dir vor, du betreust 15 Kundenseiten und spielst am Freitag um 15 Uhr ein Update für ein Formular-Plugin ein. Bei einem Kunden verträgt es sich nicht mit dem Theme: Das Kontaktformular liefert einen Fehler 500, die Startseite läuft weiter. Freitagabends testet niemand Formulare.

Fr · 15:00
Update für das Formular-Plugin eingespielt.
Fehler 500
Das Kontaktformular eines Kunden fällt aus, die Startseite läuft weiter.
Nächstes Intervall
Check und Bestätigungs-Check schlagen fehl, die Meldung landet im Postfach.
Vor dem Wochenende
Plugin zurückgerollt, Störungsdauer für den Report dokumentiert.

Mit Pingoclock steht die Kontaktseite als eigener Check im Account. Nach dem nächsten Intervall und dem Bestätigungs-Check landet die Meldung in deinem Postfach, ohne dass sich ein Kunde melden muss. Du rollst das Plugin zurück, bevor das Wochenende beginnt, und belegst dem Kunden später im Report, wie lange die Störung dauerte. Wie das für viele Kundenprojekte gleichzeitig funktioniert, steht auf der Seite Uptime Monitoring für Agenturen.

Häufige Fragen zu Fehler 500

Kann ich als Besucher einen Fehler 500 beheben?

Nein. Der Fehler liegt auf Serverseite. Du kannst die Seite neu laden oder später wiederkommen. Beheben muss ihn der Betreiber.

Reicht es nicht, dass mein Hoster den Server überwacht?

Nicht ganz. Dein Hoster sieht seine Infrastruktur, nicht deine Website aus Besuchersicht. Ein PHP-Fehler durch ein Plugin bleibt in seinem Monitoring meist unsichtbar. Ein externes Monitoring prüft die tatsächliche URL.

Schadet ein Fehler 500 dem Google-Ranking?

Ein kurzer, einmaliger Fehler ist in der Regel unkritisch. Treten 500er wiederholt oder über Stunden auf, kann Google die Seite schlechter crawlen und bewerten. Deshalb lohnt es sich, den Fehler schnell zu bemerken.

Wir haben Pingoclock gebaut, weil wir als Agentur genau solche Freitagnachmittage erlebt haben und es zuerst erfahren wollten, nicht der Kunde. Mit dem kostenlosen Free Plan überwachst du bis zu 20 Websites, alle Daten bleiben auf Servern in Deutschland. Wer 5-Minuten-Intervalle und Webhooks braucht, wechselt jederzeit auf den Pro Plan ab 3,99 € im Monat.

Free0 €
Bis zu 20 Websites60-Minuten-IntervallWarnung per E-Mail
Kostenlos starten
Pro3,99 € /Monat
Prüfung alle 5 MinutenWebhooksAlles aus Free
Pro wählen
Pingo, das pingoclock-Maskottchen, lächelt zufrieden

Kostenlos starten, später ohne Datenverlust upgraden

Keine Kreditkarte. Server in Deutschland.

Jetzt kostenlos registrieren
Pingo, das pingoclock-Maskottchen, lächelt zufrieden

Starte jetzt deine kostenlose Website Überwachung

Mit ping'o'clock erfährst du vor deinen Besuchern, wenn deine Website offline ist. Oder lasse dich über neue Inhalte informieren. Einfach URL eingeben und los geht es:

DSGVO-konform

·

Server in Deutschland

·

Keine Kreditkarte