Ladezeiten Supergau – Warum Ihre Seite schnell sein sollte

Juli 16, 2012 by  
Filed under Analyse, Grundlagen, Optimierung

Ladezeiten eine WebseiteAus aktuellem Anlass habe ich beschlossen etwas zum Thema Ladezeiten zu schreiben. Wie einige sicher wissen crawlen wir mit unserem Strukturanalysedienst strucr.com meist große Webseiten und gehen dabei sehr tief. Oft sind die gecrawlten Webseiten in großen Bereichen extrem langsam. Teilweise ist die Performance an einigen Stellen so schlecht, dass mehrere Sekunden vergehen bis der HTML-Code ausgeliefert ist und ein Crawl mit einigen wenigen Requests die Seite spürbar langsamer werden lässt. Scheinbar ist die Performance der Webseite bei den meisten Firmen noch immer kein Thema.

Ladezeiten sollten ein Thema sein:

Argumentiert man bei Ladezeiten mit Usability, Ressourcenverbrauch oder möglichen Einnahmesteigerungen so stößt dies meist auf taube Ohren. Es geht aber bei der Performance von Webseiten auch darum Schreckensszenarien wie das folgende (frei erfunden) zu vermeiden:

Ein 13 jähriger Bengel hat sich über Ihre Webseite geärgert und möchte Sie dies spüren lassen. Da seine Ressourcen stark eingeschränkt sind überlegt er sich, wie genau er die Seite möglichst effizient lahmlegen kann. Er sucht sich also genau den Typ von Unterseiten heraus, die überdurchschnittliche Ladezeiten aufweisen, und ruft von diesen so viele wie möglich in kurzer Zeit ab. Ihre Seite geht wegen schlecht performender Unterseiten in die Knie obwohl für den Betrieb der Seite mehrere Server zur Verfügung stehen und der Angriff stümperhaft und gerade mal mit einer einzelnen DSL-Leitung durchgeführt wird.

Durch schlechte Ladezeiten droht also schnell mal ein kompletter Ausfall der Seite. Ladezeitenprobleme sind mitunter Sicherheitsprobleme und diese sollten eine hohe Priorität haben und mit ausreichend Ressourcen abgearbeitet werden.

Die Problemanalyse und Problembehebung:

Die Aufgabenstellung ist denkbar einfach. Zunächst müssen die langsamen Seiten identifiziert werden. Dafür kann entweder ein Crawler benutzt werden, der in der Lage ist die Antwortzeiten zu erfassen (z.B. strucr.com), oder aber man baut einfach ein simples Logging der Zeiten in den Code der Webseite ein. Sobald man eine langsame Seite gefunden hat, muss man sich im Detail anschauen was an der Seite langsam ist (Debugger nutzen) und dann Abhilfe schaffen.

Hier einige Optimierungsansätze:

  • Häufig haben Webseiten Probleme mit langsamen Datenbankabfragen. Oft lassen sich die Abfragen optimieren indem sie einfach anders geschrieben werden. Manchmal fehlen auch einfach nur die Indizes. Viele Datenbankserver sind darüber hinaus falsch konfiguriert und können daher Anfragen nicht performant beantworten.
  • Bei PHP-Seiten fehlt häufig ein sogenannter Opcode-Cache der den interprätierten Code zwischenspeichert. Der Code muss daher ständig neu übersetzt werden was zu deutlichen Verzögerungen führt.
  • Vereinzelt wird bei Seiten auf externe Daten zugegriffen anstatt diese lokal vorzuhalten oder zwischenzuspeichern.
  • Paginierte Inhalte sind oft nicht in der Seitenzahl beschränkt und damit auf den hinteren Seiten zwangsweise deutlich langsamer. Denn dort werden in der Regel die Inhalte datenbankseiting bis zu der betreffenden Seite vorbereitet und dann die entsprechende Anzahl Datensätze übersprungen. Auf der letzten Seite bedeutet das dann einen Full Table Scan auf einer temporären Tabelle. Ein Performance-Alptraum.
  • Statt den schnellen und optimierten Funktionen der Programmiersprache werden oft eigene Funktionen geschrieben die dann langsamer sind.

Und das Beste zum Schluss:

Verbesserte Usability, niedrigerer Ressourcenverbrauch oder möglichen Einnahmesteigerungen gibt es bei der Beseitigung des Sicherheitesproblems nun gratis mit dazu.

Comments

12 Responses to “Ladezeiten Supergau – Warum Ihre Seite schnell sein sollte”
  1. Julian sagt:

    Ich kann das Analyse Tool NewRelic noch dazu empfehlen dass sowohl den Server als auch den Browser des Users trackt. Hier wird genau unterschieden an welcher Stelle die Probleme auftreten und teilweise zeigt das Tool sogar die MySQL-Querys oder die Funktion im php-Code an die langsam sind.

  2. Seb@argutus sagt:

    Unheimlich guter Artikel! Ladezeiten unterschätzen viele leider sehr. Neben der Sicherheit spielt besonders das Ranking eine wichtige Rolle. Werde mir das Tool auf jeden Fall mal anschauen, die Leistung selbst ist vielversprechend.

  3. Das Thema Ladezeiten ist mittlerweile sehr, sehr wichtig und wird leider immer noch völlig unterschätzt. Hier kann man auch noch eine Menge optimieren, zum Beispiel mit Bildern komprimieren, geringere Größen, also zum Beispiel statt ein 500px Bild auf 300px verkleinern bringt auch schon eine ganze Menge.

  4. GMT sagt:

    Also ich analysiere die Ladezeiten mit den Browser Addons Firebug und Page Speed. Kann man ziemlich genau sehen, welches Element wie groß ist und wie lange die Ladezeit ist. Damit kann man ganz gut zu große Bilder entdecken oder langsame Skripte.

  5. Es geht in dem Artikel vorallem um die Zeit um die Seite auf dem Server zu generieren. Die Ladezeiten beim User sind eine vollkommen andere Sache.

  6. Michael sagt:

    Inwiefern sind Ladezeitenprobleme denn Sicherheitsprobleme, das habe ich nicht ganz verstanden?

  7. Das Ladezeitenproblem wird zum Sicherheitsproblem wenn einzelne Seiten so viele Ressourcen benötigen, dass einige wenige Zugriffe auf diese Seiten oder den Seitentyp ausreichen um alle Ressourcen aufzubrauchen.

  8. Rene sagt:

    Hallo Tobias,

    ein durchaus interessanter Artikel, der sich aber noch erweitern ließe. Im Grunde nutzen die meisten Blogger wie auch SEOs WordPress. Hier könnte man doch wunderbar ansetzen und Möglichkeiten der Optimierungen darstellen.
    Meines Ermessens gibt es eine Vielzahl von Seiten die das Thema ansprechen. Aber gerade für den Hobbyblogger mit wenig Kenntnissen im Bereich von Server und Softwareentwicklung wäre dies mal ein heiß ersehnter Artikel.

    Gruß RR

  9. M. Jutzi sagt:

    Eines der größten Hindernisse in Puncto Ladezeiten ist immer noch die Anzahl von Http-Requests und die Auflösung von Bildern. Die Ausführung der Sprache spielt denke ich kaum eine Rolle und gute Blog/CM-Systeme cachen die Datenbankverbindungen, so dass ich darin auch kein Problem sehe.

    Wir nutzen C#/ASP.NET im Vergleich zu PHP konnten wir keinen signifikanten Performance-Vorteil feststellen. Die Sub-300ms Ladezeiten kommen eher von Sprites und minimierten Http-Requests.

    (siehe )

  10. Daniel sagt:

    Guter Artikel, Ladezeiten hatte ich bisher noch überhaupt nicht im Visier, das wird demnächst mal angegangen.

Trackbacks

Check out what others are saying about this post...
  1. […] Warum eine Webseite schnell sein sollte – Aus aktuellem Anlass habe ich beschlossen etwas zum Thema Ladezeiten zu schreiben. Wie einige sicher wissen crawlen wir mit unserem Dienst strucr.com meist große Webseiten und gehen dabei sehr tief. Weiter… […]

  2. […] In 90 % der Fälle, die wir übernehmen ist der Server zu langsam. Ebenso verhält es sich mit der Seitenladezeit, die meist aufgrund von überflüssigen Elementen auf der Webseite, fehlender Gzip-Komprimierung und dergleichen entstehen. Interessant: Alle Shop-Agenturen machen nach einem kurzen Hinweis auf die Seitenladezeit sehr gute Arbeit. Nur hatten unsere Kunden ihre Agenturen in den meisten Fällen nicht explizit nach einer Speed-Optimierung gefragt. Einen ersten Hinweis gibt Euch Webpagetest.org, ein super Tool, das auch automatisch historische Daten sammelt. Oder mein Post auf dem Jahr 2011 und hier besonders auch die Kommentare. Tobias Schwarz hat hierzu 2012 noch mehr Infos geschrieben. […]



Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

css.php