WordPress: Wie 404-Seiten den Server lahmlegen können
Auch Fehlerseiten verursachen Last auf dem Server und das kann auch mal sehr unangenehm werden.
Eigentlich ist das Problem kein spezifisches WordPress-Problem, sondern vielmehr ein grundlegendes. Ich ordne es hier nur ein, weil ich gerade bei einem Kunden mit einem WordPress genau dieses Problem hatte. Jetzt aber erstmal zum Hintergrund:
404- oder Fehlerseiten, sind die Fehlerseiten die man sieht, wenn ein Webserver eine Ressource auf dem Server nicht finden konnte. Also immer wenn man eine HTML-Seite, ein Bild, ein Video etc. anfordert das nicht gefunden werden kann, dann liefert der Webserver eine 404-Seite.
In WordPress kann man diese Seite mit einem eigenen Template (404.php) umsetzen, andernfalls wird das Template hinter der index.php genutzt. Wenn man sich dann üblicherweise mal anschaut, was in dieser 404.php drin ist, so sind das meist normale WordPress-Seiten mit Header, Footer etc. Es wird also die komplette Prozess des Ladens der Website durchgearbeitet, der aus vielen Datenbank-Abfragen uvm. besteht.
Nehmen wir jetzt einmal an, dass wir z.B. eine Galerie mit 50 Bildern haben und diese Bilder alle nicht vorhanden sind. Was nun passiert ist, dass beim Aufruf der Galerie-Seite auch nahezu gleichzeitig* 50 Fehlerseiten vollständig generiert werden. Wenn man das auf mehrere Galerie-Seiten anwendet, hat man ziemlich schnell ziemlich viele Datenbank-Abfragen. Wenn die 404-Seite dann gleichzeitig noch Such-Logik enthält, zwingt das schnell die Infrastruktur in die Knie.
Wie kann man das Problem verhindern?
Die einfachste Lösung ist in meinen Augen eine statische 404-Seite die man nur liest und ausgibt, gefolgt von einem die() in der 404.php. Man sollte aber wissen, dass dabei natürlich trotzdem Datenbankabfragen stattfinden, aber mitunter deutlich weniger als mit der kompletten Logik.
* Mir ist klar, dass die Browser nur eine bestimmte Anzahl gleichzeitiger Requests zulassen.
Mitdiskutieren