Mit HTACCESS-Anpassungen die Blogperformance und die Ladegeschwindigkeit optimieren

Mit HTACCESS-Anpassungen die Blogperformance und die Ladegeschwindigkeit optimieren

Lesedauer: 3 Minuten

Wer sich intensiver mit seiner WordPress-Installation beschäftigt, kennt mit Sicherheit die .htaccess-Datei, die im Rootverzeichnis des jeweiligen Blogs liegt.

Denn wer “sprechende” URLs in seinem Blog und nicht nur die Datensatzkennzeichnung einer Seite in der Browserzeile anzeigen will, der generiert bei der Blogeinrichtung unter dem Punkt “Einstellungen – Permalinks” eine entsprechende HTACCESS-Datei, in der die URLs umgeschrieben werden.

Einstellung für die Permalinks

Für die URL-Umschreibung wird das Modul mod_rewrite angesprochen, das die meisten Hoster bzw. Provider schon in recht kleinen Webspace-Paketen anbieten. Dennoch sollte man sich vorher erkundigen, ob es auch wirklich im Leistungsumfang des jeweiligen Hostigpakets enthalten ist.

Beispiel sprechende URL: www.geld-online-blog.de/htaccess-datei-anlegen

Beispiel  Datensatzkennzeichnung in der URL: www.geld-online-blog.de/?p=123

Das erste Beispiel sagt deutlich mehr aus als das zweite.

In der HTACESS-Datei steht dann folgender Code für die Umschreibung der Permalinks:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ -
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Weitere wichtige Einstellungen für die HTACCESS-Datei

Mit der Ausführung dieses Schrittes hat der Blog eine .htaccess-Datei, in der nicht allzu viel steht. Doch es gibt noch weitere empfehlenswerte Einstellungen für die HTACCESS-Datei, die vor allem die Ladegeschwindigkeit des Blogs verbessern wird. Diese werde ich hier näher aufführen.

Doppelter Inhalt

Der folgende Eintrag in die .htaccess verhindert doppelten Inhalt. Denn in den meisten Fällen kann ein Blog entweder mit www oder ohne www in der URL aufgerufen werden. Die Suchmaschinen sehen in dieser Option allerdings zwei verschiedene Websites, die über den gleichen Inhalt verfügen.

Um zu vermeiden, dass es für jede Seite zwei Linkziele gibt und die Suchmaschinen dies als “Duplicate Content” ansehen, leitet die folgende Anweisung Adressen ohne www mittels Redirect 301 auf die Adresse mit www weiter. Der Blog- oder Websitebesucher bekommt davon nichts mit.

Nicht vergessen: Die eigene URL statt der Beispiel-URL einfügen.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.meine-webseite.de$ [NC]
RewriteRule ^(.*)$ http://www.meine-webseite.de/$1 [R=301,L]

Browsercache

Mit dem unten genannten Code wird der Cache der jeweiligen Browser so beeinflusst, dass überflüssige Serveranfragen entfallen. Die angegebenen Dateitypen werden für eine festgelegte Dauer gecached.  Die aufgeführten Zahlen hinter den Dateitypen ist die Sekundenzahl von 30 Tagen.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType text/plain A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType video/x-flv A2592000
ExpiresByType application/pdf A2592000
</IfModule>

Auch diese Anweisung regelt die Cache-Verfallszeiten von bestimmten Dateitypen und kann anstelle des oben genannten Codes verwendet werden.

# Cache-Control Headers
<IfModule mod_headers.c>
<filesMatch ".(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch ".(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch ".(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch ".(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
</filesMatch>
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept-Encoding
</IfModule>

Komprimierung mit deflate oder gzip

Mit dem deflate-Modul lassen sich bestimmte Dateitypen wie JavaScript, CSS, HTML, PHP und XML serverseitig vor der Ausgabe komprimieren, was die Ladezeit einer Website deutlich verbessern kann. Auch dieses Modul muss vom Provider angeboten werden.

<IfModule mod_deflate.c>
 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE text/javascript
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/atom_xml
 AddOutputFilterByType DEFLATE application/javascript
 AddOutputFilterByType DEFLATE application/x-javascript
 AddOutputFilterByType DEFLATE application/x-shockwave-flash
</IfModule>

Ein anderes Komprimierungsmodul ist gzip. Sollte dies vom Provider angeboten werden, kann folgender Code in HTACCESS-Datei eingefügt werden:

<IfModule mod_gzip.c>
 mod_gzip_on Yes
 mod_gzip_dechunk Yes
 mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
 mod_gzip_item_include handler ^cgi-script$
 mod_gzip_item_include mime ^text/.*
 mod_gzip_item_include mime ^application/x-javascript.*
 mod_gzip_item_exclude mime ^image/.*
 mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

Man kann auch testen (falls man beide verwenden kann), mit welchem Modul die Seite schneller wird und sich dann für ein Modul entscheiden. Also alle beide Anweisungen brauchst du nicht in die HTACCESS einzufügen.

Sicherung von .htaccess und wp-config.php

Neben der .htaccess kann man mit folgendem Code auch die wichtige wp-config.php, in der die Datenbank-Parameter enthalten sind, vor Zugriffen sichern.

<files wp-config.php>
Order deny,allow
Deny from all
</files>
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

Um auf Nummer sicher zu gehen, habe ich die Code-Blöcke mit IfModule-Tags eingefasst, damit zuerst geprüft wird, ob das Modul zur Verfügung steht. Wenn nicht, passiert nichts weiteres, d. h. es wird keine Fehlermeldung ausgegeben.

Wer allerdings keine Angst vor Fehlermeldungen hat, lässt diese IfModule-Tags einfach weg und provoziert im Falle eines nicht vorhandenen Moduls eine Fehlermeldung (500 internal server error). Das kann auch hilfreich sein, denn im anderen Fall wird einem das Gefühl vermittelt, alle Module stünden zur Verfügung, was nicht unbedingt sein muss.

Änderungen an der .htaccess eintragen

Wenn du deine .htaccess ändern willst, dann lade diese Datei von dem Webserver auf den Rechner und benenne sie dort um in htaccess.txt, also in eine einfache Textdatei.

Dann fügst du die Anleitungen ein, speicherst die Datei ab und lädst sie wieder auf den Webserver ins Rootverzeichnis. Nun muss der Name erneut angepasst werden. Lösche die Dateiendung .txt und füge an den Anfang des Dateinamens den Punkt ein. Dann müsste die .htaccess-Datei wieder funktionieren.

Ich füge eine .htaccess-Datei  mit all den hier erläuterten Anweisungen als einfache Textdatei ein und du kannst sie downloaden: HTACCESS-Download.

Vergiss nicht, dass du noch URL-Anpassungen (wie oben erwähnt) vornehmen musst, um die Datei verwenden zu können.

Teile diesen Beitrag:


Schreibe einen Kommentar

WordPress Cookie Hinweis von Real Cookie Banner