Offen und ehrlich – nicht immer läuft alles reibungslos

Ehrlich Beitrag

Du hast deine Webseite. Du denkst alles ist gut. Und eines Tages wachst du auf und schon hast du jede Menge Arbeit.

Du denkst Sch... und würdest am liebsten alles hinwerfen. Doch dann besinnst du dich und weißt, es geht immer irgendwie weiter!

So jedenfalls ist es mir ergangen. Vor gar nicht allzu langer Zeit. 

More...

Die Überraschungs-Email

Eine Webseite, die mir seit etwas über 2 Jahren regelmäßig gute Provisionen über Digistore24 bringt und über den Hosting-Anbieter Hostgator läuft, geriet in einen Ausnahmezustand.

Das begann mit einer Email, die ich von dem Provider mit folgendem Inhalt erhalten hatte:

Hello,

Your account xxxxxx on gator0000.hostgator.com has been overusing CPU resources for an extended period of time and has been disabled in order to ensure continued performance and stability of the server. While we do limit each account to no more than 25% of a system's CPU in our terms of service, we do not actively disable accounts until they greatly exceed that number, which is what happened in this case.

Unfortunately, there is no way of predicting an account's resource usage in advance. A sudden increase in traffic, a bot crawl, or a change in site activity can cause a site to dramatically increase its resource usage in an instant. When this happens, the server's ability to function properly is jeopardized, and we must, by necessity, restrict the source of the problem to keep the server functioning.

Please take a moment to review this email in full as it contains important information and resources to assist you in resolving this issue. Please note that this permanent restriction requires you take further actions to gain access to and resolve the issues on your account.

-How can you resolve the issue?
We have two solutions available. Moving the account to a dedicated server, which will allow far greater hardware resources or you may try following some of our tutorials for optimizing popular scripts. http://support.hostgator.com/articles/specialized-help/technical/optimize-cpu-resource-usage. If you feel your scripts have already been optimized, it may simply be time to consider the hardware upgrade.

-Important note
While an upgrade to a dedicated server would increase resource availability, an upgrade to a VPS would not, in most cases. A VPS offers a root environment in which custom installs and configurations can be made, but only the very highest level VPS packages offer the same level of server resources available on your current plan. Moving to a VPS in this circumstance would likely make the problem worse, rather than better. Additionally, our cloud platform is also a shared environment, and does not offer an increase in available resources.

-What do I do next?
If you reply back to this email with your IP address (http://www.hostgator.com/ip.shtml) we will be more than happy to go ahead and enable HTTP access for you, allowing you to safely work on the script while minimizing the negative effects on the server and its other users. If your IP address changes frequently, you can reply back requesting password-based restrictions.

-How does a CPU issue occur?
Many times popular scripts may perform inefficient tasks repeatedly leading to CPU overuse. Below please find helpful articles outlining resource restrictions set on HostGator accounts:
https://support.hostgator.com/articles/pre-sales-policies/rules-terms-of-service/cpu-resource-restriction
https://support.hostgator.com/articles/pre-sales-policies/rules-terms-of-service/cpu-resource-usage

-How can I rate-limit search engine crawlers?
All major crawlers respect robots.txt to restrict them from crawling certain pages. Additional steps may be needed to limit the rate at which Googlebot and Bingbot craw your site:
http://support.hostgator.com/articles/hosting-guide/lets-get-started/how-to-use-robots-txt
http://support.hostgator.com/articles/telling-google-how-often-to-crawl-your-website
http://support.hostgator.com/articles/telling-the-bing-network-how-often-to-crawl-your-website

CPU Seconds used in the past hour: 2592, 72% CPU
Sun May 13 03:01:27 CDT 2018
Running Processes:
 379473  3.2  0.4 461900 163436 ?       RN   02:46   0:30 /opt/php54/bin/php-cgi /home2/.../public_html/
 381375  3.4  0.4 389144 156768 ?       RN   02:47   0:29 /opt/php54/bin/php-cgi /home2/.../public_html/

....

....

Frontend, Backend - alles am Ende?

Das Aufrufen der Seite war ab sofort nicht mehr möglich. Es erschien ausschließlich die Meldung:

Error 500 - Internal Server Error.

Auch der Zugriff auf das WordPress Backend war nicht mehr gegeben.

Also beides, Frontend und Backend nicht mehr erreichbar.

Kurz zur Erklärung: Das Frontend bezeichnet alles, was für den Besucher deiner Webseite sichtbar ist. Dazu gehören deine Seiten und deine Blogartikel.

Das Backend ist der Adminbereich, den nur du mit deiner Zugangsberechtigung einsehen und bearbeiten kannst. Bei WordPress gelangst du so zum Dashboard. Dort verfasst du neue Beiträge und nimmst Einstellungen, Konfigurationen sowie andere Anpassungen vor.

Was ist zu tun, wenn dein Kunden-Konto abgeschaltet wurde?

Auf jeden Fall solltest du den Empfehlungen des Hosting-Anbieters folgen.

Zuerst einmal habe ich mich mit dem Provider in Verbindung gesetzt, um für die Seite wieder Zugang zum Content-Management WordPress zu erhalten. Das wurde mir recht zeitnah gewährt.

Als erste Maßnahme habe ich mit UpdraftPlus ein Backup erstellt. Schließlich weißt du vorher nie, ob irgendwelche Schwierigkeiten auftreten.

Cache Plugin installieren

Der nächste Schritt war, das Cache-Plugin auszutauschen. Das heißt, das alte Cache-Plugin wurde von mir deaktiviert und gelöscht. Dann das neue Plugin WP Super Cache (von Hostgator empfohlen) installiert, aktiviert und die notwendigen Einstellungen vorgenommen.

Wozu dient ein Cache-Plugin?

Mit steigenden Besucherzahlen wird der Webspace zunehmend belastet. Dies kann negative Auswirkungen auf die Ladezeit der Website haben. Um das zu vermeiden, lohnt sich auf jeden Fall die Installation eines Cache-Plugins. 

Das sogenannte Caching hat die Funktion, dass einmal aufgerufene Seiten einer Website zwischengespeichert werden. Somit müssen beim nächsten Aufrufen nicht mehr alle Daten aus der Datenbank ausgelesen werden. 

Genau diese Aufgabe übernimmt das Plugin WP Super Cache. Es generiert aus den dynamischen Seiten statische HTML-Seiten, die deutlich schneller geladen und angezeigt werden. 

Datenbanken optimieren

MySQL ist ein Datenbank-Management-System, das Daten in Tabellen verwalten, anzeigen, speichern, ändern kann. Diese Aufgaben verrichtet es sehr gut. Ansonsten hat es keine weitere Funktion. 

Jede Datenbank wird durch viele INSERT, DELETE oder UPDATE-Statements mehr und mehr gefüllt. Das gilt auch für die MySQL Datenbank.

Geht eine Webseite neu an den Start, sind die Datenbanken noch nicht so stark gefüllt. Im Laufe der Zeit kommen immer neue Einträge in die Datenbanken hinzu. Die logische Konsequenz ist, dass die Serverlast zunimmt und die Datenbankabfragen für langsame Ladezeiten sorgen. 

Bei der Optimierung der Datenbanken werden zunächst einmal die Tabellen ermittelt, die einen Überhang haben. Dieser kann entstehen, wenn viele Daten geändert oder gelöscht werden. Es handelt sich bei einem Überhang um nicht genutzten Speicher, der sich bei Änderungen stetig vergrößert. Genau dieser ungenutzte Speicher wird wieder freigegeben. 

Zur Optimierung hast du zwei Möglichkeiten:

phpMyAdmin

Du loggst dich in das cPanel deines Kundenkontos bei deinem Provider ein. Der Link phpMyAdmin führt dich dann zu den Datenbanken.

Bevor du die Optimierung vornimmst, solltest du den Reiter "Exportieren" aufrufen und ein Backup machen.

Wähle anschließend die Datenbank aus, die du bearbeiten willst. Markiere die Tabellen, die optimiert werden sollen oder wähle alle aus. Rechts in der Schaltfläche klickst du "Optimiere Tabelle" an. 

WP Optimize

Die andere und einfachere Variante ist die Optimierung mit dem Plugin WP Optimize. Dieses Plugin ist nach der Installation sofort einsatzbereit.

Neben den Datenbank-Tabellen kannst du zusätzlich noch andere Optimierungen - wie z. B. Betrags-Revisionen entfernen - vornehmen.

Plugins und Themes entfernen

Leider war ich in der Vergangenheit etwas nachlässig, was Plugins und Themes angeht. Dabei gilt: Alles was nicht direkt und aktiv benötigt wird, sollte auch nicht auf dem Server bleiben.

Wozu bewahre ich ungenutzte Themes im Theme-Ordner auf? Die kann ich genauso gut auf meinem Computer speichern.

Noch wichtiger sind die Plugins. Einige Plugins habe ich deaktiviert, weil ich diese nur selten oder gar nicht benutzt habe. Heute weiß ich, dass lediglich das Deaktivieren nicht ausreicht. Es gibt Plugins, die selbst deaktivierten Zustand noch aktiv sind und Daten senden. 

Alle Plugins, die nicht regelmäßig zum Einsatz kommen, lösche ich daher und installiere diese bei Bedarf neu. 

Dabei solltest du wissen, dass du beim Installieren von Plugins und Themes in WordPress meistens auch Optionen in der Datenbank speicherst. Einige dieser Hilfsprogramme oder Erweiterungen sind unmotiviert und wenig verantwortlich programmiert worden. Wenn der Code die geschriebenen Daten nach der Deaktivierung nicht wieder korrekt entfernt, bleibt Datenmüll zurück. Dieser Müll bläht die Datenbank unnötig auf und beeinflusst somit auch die Performance.

Bilder entfernen oder komprimieren

Ebenfalls ein wenig gedankenlos war ich in meiner Anfangszeit, was Bilder und Bildgrößen angeht. Natürlich werden hier ebenfalls unnötigerweise Ressourcen verbraucht.

Mittlerweile komprimiere ich alle Bilder, die ich auf meinen Webseiten verwende, auf eine Größe von ca. 100 KB. Das lässt sich mit den kostenlosen Anwendungen Compressnow oder tiny png sehr leicht und ohne Qualitätsverlust umsetzen.

Bilder, die ich aktuell nicht verwende, lösche ich. Die müssen nicht geladen werden.

Crawling-Rate reduzieren

Die 500 Fehler, die Sie erhalten haben, sind auf die Aktivität auf https://muster.de zurückzuführen. Es gibt ein Limit von 25 gleichzeitigen Prozessen pro Panel. Wir haben festgestellt, dass Googlebot Ihre Website mit einer extrem schnellen Rate durchsucht, was zu Problemen auf dem Server führt.


Leider reagiert Googlebot nicht auf die Crawl-Delay-Einstellung in robots.txt, da sie diese als nicht standardisierte Einstellung ansehen. Sie können die Crawl-Rate für Websites ändern, die sich auf der Root-Ebene befinden, z. B. www.example.com und http://subdomain.example.com, indem Sie sich bei google.com/webmasters anmelden und der Anleitung unten folgen. Sie können die Crawl-Rate für Sites, die sich nicht auf der Root-Ebene befinden, nicht ändern, z. B. www.example.com/folder. Möglicherweise müssen Sie sich für ein Google-Webmaster-Konto anmelden.

Hinweis: Die Crawl-Rate bezieht sich auf die Geschwindigkeit der Anfragen von Googlebot während des Crawl-Prozesses. Es hat keinen Einfluss darauf, wie oft Google crawlt oder wie tief sie Ihre URL-Struktur crawlt.


Google verwendet ausgeklügelte Algorithmen, um festzulegen, wie oft eine Website gecrawlt werden soll. Das Ziel ist, bei jedem Besuch so viele Seiten wie möglich von der Website zu crawlen, ohne die Bandbreite des Servers zu überschreiten.

Zu viele Anfragen auf einer Website in einem sehr kurzen Zeitraum können dazu führen, dass die Website langsam geladen wird und sogar Probleme auf dem Server verursacht. 

Es gibt keine Möglichkeit, den Ressourcenverbrauch eines Kontos im Voraus vorherzusagen. Ein plötzlicher Anstieg des Datenverkehrs, ein Bot-Crawl oder eine Änderung der Webseiten-Aktivität kann dazu führen, dass eine Webseite ihren Ressourcenverbrauch in einem Augenblick drastisch erhöht. 

Da das Problem der Serverbelastung aufgetreten ist, blieb mir nur die Möglichkeit, die Crawling-Rate von Google zu reduzieren. Gemeint ist die Zeit, die der Googlebot zum Crawlen einer Webseite für eine gesamte Domain oder Subdomain benötigt.

Dazu rufst du die Google Search Console für deine Property auf. Klicke auf das Zahnradsymbol in der oberen rechten Ecke der Seite und wähle im Drop-down-Menü die Option Website-Einstellungen.

Fazit

Ein solches Szenario ist nicht wünschenswert, dennoch sehr lehrreich. Ich musste mich mit ein paar Dingen beschäftigen, die ich bisher immer vor mir hergeschoben hatte.

Und ich musste mit Hindernissen fertig werden, die ich vorher nicht kannte. So hatte mir ein Support-Mitarbeiter von Hostgator eingeschränkten Zugriff auf meine IP-Adresse gewährt. Beim Versuch das Backend aufzurufen erhielt ich dann diese Meldung:

Auf Nachfrage bei Hostgator wurde mir mitgeteilt:

Sie erhalten den Fehler 403, weil Ihre IP 89.XXX.XX.XXX auf einer RBL-Blacklist eines Drittanbieters steht. Sie müssen sich mit Ihrem Internet-Provider in Verbindung setzen, um dieses Problem zu lösen.

Ich hatte nicht bedacht, dass ich zwischenzeitlich über CyberGhost den anonymen Surfmodus aufgerufen hatte.

Also:

  • Modus ausschalten
  • neue IP-Adresse
  • neuer eingeschränkter Zugriff

- Pause -

Computer hochgefahren. Beim Versuch das Backend aufzurufen wieder die Mitteilung:

Der Grund: Der Zugang beschränkte sich auf eine bestimmte IP-Adresse. Da ich dynamische IP-Adressen habe, konnte die nun nicht zugeordnet werden. 

Wieder den Support angeschrieben mit dem Ergebnis:

I replaced the IP restriction with a password based restriction. Please try connecting again now.


User:

Password:

Das bedeutet, es öffnet sich erst einmal ein Anmeldeformular mit Zugangsdaten. Erst danach lässt sich die Seite überhaupt aufrufen.

Dann endlich geschafft - Entwarnung!

Mein Anspruch ist es, dir offen und ehrlich zu zeigen, dass eben nicht immer alles reibungslos läuft. Doch genau solche Probleme gilt es zu meistern. Entweder du arbeitest selber an der Lösung oder du suchst dir professionelle Unterstützung. 

Ich gestehe: Es gab schon bessere Tage. Es war nervig. Doch nun läuft alles wieder.

Mal sehen wie lange?! 😉