Wordpress schneller machen:

Connection keep-alive per .htaccess aktivieren

25. September 2014WordPress Tipps8 Kommentare
Share on Facebook0Tweet about this on Twitter8Share on Google+0Share on LinkedIn1Email this to someone

Ein wichtiger Schritt zur Optimierung eurer Seiten-Ladezeit ist der Befehl „connection: keep-alive“, der das Laden verschiedener Dateien über eine Verbindung ermöglicht und deswegen von vielen Tools geprüft wird. Hier die Anleitung wie ihr keep-alive einfach per .htaccess aktiviert.

Vor der Optimierung

Webpagetest.org: So sollte das Testergebnis eurer Seite nicht aussehen.

Was ist keep-alive?

Eine Internetseite besteht üblicherweise aus einer HTML-Datei und dazugehörigen Grafiken, CSS- und JScript Dateien. Im HTML ist definiert, welche anderen Elemente durch den Browser vom Server heruntergeladen werden müssen um die Seite anzuzeigen. Früher wurde für jedes Element eine eigene tcp Verbindung zwischen Server und Webbrowser aufgebaut um die Datei zu laden. Keep-alive ist eine Methode, um mehrere Daten über nur eine tcp Verbindung zwischen Webserver und Webbrowser herunterzuladen. Das ist schneller als wenn für jede Datei eine eigene Verbindung hergestellt werden muss. Deswegen sollte das „Connection keep-alive“ standardmäßig aktiviert sein. Bei vielen shared-hosting Anbietern ist es dies allerdings nicht, weshalb ihr eure Konfiguration zum Beispiel mit webpagetest.org testen solltet. Wenn euer Ergebnis aussieht, wie in dem Beispiel oben, dann solltet ihr aktiv werden um die Performance eurer Seite zu verbessern.

So wird keep-alive aktiviert

Im http Header wird das Verhalten definiert. Ist keep-alive nicht aktiviert, liegt das daran, dass eure Headers „connection: close“ beinhalten. Der Server schließt die Verbindung nach dem Download einer Datei. Wenn der Header zu „connection: keep-alive“ geändert wird, bleibt die Verbindung offen, sodass mehrere Daten heruntergeladen werden können.

Den HTTP Header per .htaccess ändern

Eine Möglichkeit keep-alive im Header zu aktivieren ist über die .htaccess Datei. Hierzu benötigt ihr darauf Zugriff, zum Beispiel per FTP. Wichtig: vorher zur Sicherheit eine Kopie der Datei lokal speichern, so dass ihr wieder den Urzustand herstellen könnt, falls etwas nicht klappt. Außerdem solltet ihr die Datei nur mit einem richtigen Editor bearbeiten (Word ist keiner).

Diesen Code fügt ihr in die .htaccess Datei ein:

<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>

Diese Zeilen Code reichen aus, damit eure Seite ein Stück schneller geladen werden kann – wenn der Hoster die Funktion in eurem (Shared)-Hosting-Paket unterstützt.

Keep-alive per Plugin aktivieren

Umfangreiche Plugins wie W3 Total Cache beinhalten neben anderen Optimierungsmöglichkeiten die Funktion um das „connection: keep-alive“ im Header der Seite zu aktivieren.

Fazit: mit nur einer Zeile Code in eurer .htaccess Datei könnt ihr die Ladezeit eurer Seite verbessern.


Hans Jung

Hans Jung

Hans ist Datenschutzbeauftragter und bekennender WordPress-Fan – und versucht beides unter einen Hut zu bekommen.
Hans Jung
Share on Facebook0Tweet about this on Twitter8Share on Google+0Share on LinkedIn1Email this to someone
Kommentare zu "Connection keep-alive per .htaccess aktivieren"
  1. […] Ich sehe gerade, Hans Jung hat über “Keep Alive” geschrieben. Tja, der Code stimmt, aber bei mir tut er […]

    1. nebeltal schrieb am 26. September 2014, um 05:11 Uhr:

      Tja, egal wo ich es einfüge: 500 Internal Server Error

    2. Roger Seifert schrieb am 6. Oktober 2014, um 09:59 Uhr:

      So sah meine .htaccess nach der Änderung aus:

      # BEGIN WordPress
      Header set Connection keep-alive
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ – [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]

      # END WordPress

      Dann erhielt ich:

      Internal Server Error

      The server encountered an internal error or misconfiguration and was unable to complete your request.

      Please contact the server administrator, support@ xxx .ch and inform them of the time the error occurred, and anything you might have done that may have caused the error.

      More information about this error may be available in the server error log.

      Apache Server at www. xxx .ch Port 80

      Mit dieser (alten) Version der .htaccess funktioniert meine Seite:

      # BEGIN WordPress

      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ – [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]

      # END WordPress

      Schade, dass es kein Beispiel gab wo, wie, was eingefügt werden soll.
      Auch mit der Beschreibung in weiteren Kommentaren merkt man, dass ein Profi nicht in der Sprache des „nicht-Profis“ spricht…

      1. Hans Jung schrieb am 6. Oktober 2014, um 10:22 Uhr:

        Hallo Roger,
        versuche mal den Code ausserhalb des # WordPress Bereichs zu schreiben:

        # BEGIN WordPress

        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ – [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]

        # END WordPress

        # Start eigener Code – Du musst die <> noch wie im Artikel beschrieben einfügen

        ifModule mod_headers.c
        Header set Connection keep-alive
        /ifModule

        # End eigener Code

        Einige Anbieter von Shared-Server unterbinden das connection keep-alive. In diesen Fällen komment es auch zur Fehlermeldung „Error occurred: 500 – internal server error“

  2. Uwe Werner schrieb am 25. September 2014, um 17:04 Uhr:

    Leider wird die ganze Seite dadurch lahm gelegt.

  3. Hans Jung schrieb am 26. September 2014, um 10:07 Uhr:

    Falls in eurer .htaccess bereits ein Block mit

    ifModule mod_headers.c
    /ifModule

    vorhanden ist, fügt ihr dort am besten folgende Zeile ein:

    Header set Connection keep-alive

    Alternativ den gesamten Block am Ende der .htaccess einfügen, so dass der Wert nicht von einem anderen Eintrag überschrieben wird.
    Es kann sein, dass die Konfiguration eures Hosters den hier vorgestellten Weg nicht unterstützt/unterbindet. Wenn sich die Fehler also nicht beheben lassen, dann solltet ihr wieder die ursprüngliche .htaccess verwenden.

  4. heinz schrieb am 2. Oktober 2014, um 09:23 Uhr:

    Hallo Hans,

    auch bei mir funktioniert das nicht. Liegt vielleicht auch daran, dass nicht endgültig klar ist, wo das hin soll.
    Vielleicht könntest Du einfach mal ein komplettes Beispiel angeben, wie man die .htaccess bestücken muss. Also im Prinzip eine Zusammenfassung aus dem was Du im Text sagst und dem was Du per Kommentar hinzufügst 🙂

    Das wäre toll. Danke.

  5. Arthur Skotzek schrieb am 12. August 2015, um 16:51 Uhr:

    Hallo Hans,

    habe die paar Zeilen in die htaccess eingefügt – und eine Art Wunder erlebt:
    Eine Site, die bislang aus unerklärlichen Gründen Eeeeeeeeeeeewigkeiten brauchte (Server ist Strato), wird nun hastenichjesehen geladen.
    Desterwegens kommt von mir ein dickes Danke für den Tip!

    ciao
    Arthur

Schreibe einen Kommentar

Pressengers lebt von der Wordpress Community, beteilige dich mit einem Kommentar!
Deine E-Mail Adresse wird nicht veröffentlicht.

Achtung: Mit dem Absenden eines Kommentars erklärst du dich damit einverstanden, dass alle eingegebenen Daten und deine IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA überprüft und gespeichert werden. Weitere Informationen zu Akismet und Möglichkeiten des Widerrufs..