Sonntag , 28 August 2016

.htaccess Tutorial – Anleitung für SEOs

Vor einigen Jahren habe ich eine Ausbildung als Programmierer angestrebt. Leider wurde aus mir nie ein 100%-Herzblut-Programmierer – sonst hätte es diesen Blogeintrag wahrscheinlich schon früher gegeben. Ich bin relativ schnell weg vom Programmieren in Richtung Online Marketing gegangen und wurde irgendwann von SEO gefangen.  Als SEO kann man sehr viel Onpage und Offpage auch ohne große Programmierkenntnisse erreichen – irgendwann, wenn man sich selbst und seine Projekte jedoch auf eine genauere und erfolgreichere Ebene bringen möchte, bleiben gewisse Kenntnisse  in der Programmierung und dem Code der Webseiten aber einfach nicht aus. Man kann leider nicht alles in CMS Systemen per Click und Drag&Drop so gut erreichen als direkt im Code. Gerade bei größeren und länger bestehenden Projekten kommt man an der .htaccess auch gar nicht mehr vorbei. Doch genug geplaudert – los geht’s:

.htaccess – Was ist das für eine Datei?

.htaccess (Hypertext Access) Dateien sind Konfigurationsdateien im Textformat, welche Anweisungen an NCSA-kompatible Webserver (z.B. Apache) geben. Der Punkt „.“ gehört zum Dateinamen. Die für SEOs dabei interessantesten Einsatzgebiete sind hier sicher die 404er Fehlerseite oder Weiterleitungen (301er, 302er usw.). Die .htaccess vererbt ihre Anweisungen an Unterverzeichnisse und muss so bei üblichen Webseiten und Webprojekten nur einmal im obersten / haupt – Verzeichnis angelegt werden.

Tipp1: Nicht alle Hoster unterstützen die .htaccess. Gerade bei den günstigeren Hostern sollte man sich vorab unbedingt informieren, ob der Server die .htaccess unterstützt.

Tipp2: Wer die .htaccess für seinen WordPress Blog nutzen möchte, kann diese ganz einfach über das kostenlose Yoast SEO Plugin bearbeiten.

Tipp3: Die Datei kann mit einem normalen Texteditor erstellt werden.

Funktionen von .htaccess – Was kann ich alles damit machen?

Die .htaccess hat viele Einsatzmöglichkeiten – ich werde die für SEOs interessanten Funktionen hier etwas detailierter vorstellen und die restlichen Funktionen nur kurz ansprechen. Am Ende des Beitrags findet ihr Links von Quellen und weiteren Informationen, falls ihr detailliertere und weitere Infos benötigt.

.htaccess für SEOs: Umleitungen – 301 und 302

Gerade bei Umstrukturierungen einer Webseite kommt es oft vor, dass URLs oder der komplette Aufbau geändert werden. Dann kommen die Umleitungen 301 und 302 zum Einsatz! Meines Erachtens der wichtigste Einsatzbereich für SEOs in der .htaccess Datei. Warum ist das für SEO so wichtig? Ganz einfach: Aufgebaute Links und ein gutes Ranking würde verloren gehen, wenn man die URL oder URL-Struktur einer Seite ändert. Mit einem Redirect sagen wir den Suchmaschinenen, dass die alte URL nicht mehr verfügbar ist und die ganze Kraft der Backlinks und das Ranking auf die neue URL übergeben werden soll.

Unterschied 301 und 302:

  • Der redirect 301 sagt den Suchmaschinen, dass die gewünschte angeforderte Seite permanent einer neuen URL zugeordnet wurde. Das bedeutet, dass die „alte“ URL aus dem Index genommen und die Power auf die „neue“ URL gelenkt wird.

Ein Beispiel für den Einsatz des 301 redirects:

Ich analysiere meine eigenen Backlinks (oder die einer Expired Domain) mit einem Tool wie dem Link Juice Recovery Tool der LinkResearchTools. Dieses Tool zeigt mir meine „toten“ Backlinks, d.h. Backlinks, die auf meiner Seite z.B. einen 404er Error hervorrufen (mehr zu 404 weiter unten). Das Tool generiert mir dann automatisiert alle 301er redirects für diese toten Backlinks. Diese Weiterleitungen trage ich dann in meine .htaccess ein und „lenke“ somit die ganze Power der ehemals toten Backlinks auf meine Startseite. Beispiel:

Redirect 301 /olddirectory/oldfile.html  http://www.domain.at/
  • Der redirect 302 sagt der Suchmaschine, dass die angeforderte Seite nur temporär auf der neuen URL zu erreichen ist. Die „alte“ URL bleibt somit im Index und übergibt ihre Power nicht an die „Neue“.  Es gibt kaum noch Anwendungen, bei denen der redirect 302 sinnvoll eingesetzt wird. Gerade bei langfristigen Änderungen in der Struktur einer Webseite sollte also z.B. der redirect 301 verwendet werden.

Weitere Infos dazu hier: http://www.bigoakinc.com/blog/when-to-use-a-301-vs-302-redirect/

Hier ein paar Anwendungsbeispiele von seo-snippets.de (ACHTUNG: für die folgenden Anwendungen von modrewrite, ist es wichtig, dass modrewrite installiert ist (Mehr Infos zur ModRewrite findest du hier) und zu Beginn einer Befehlabfolge ein „RewriteEngine On“ steht (siehe wie folgt). Der Befehl „Rewrite Cond“ definiert Regeln/Konditionen für die die darauffolgenden Befehle gelten sollen.):

301 Weiterleitung einer Domain-URL von ohne auf mit www:

Beispiel (für Weiterleitung von domain.at auf www.domain.at):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.at$ [NC]
RewriteRule ^(.*) http://www.domain.at/$1 [L,R=301]

Das „L“ in [L,R=301] steht hier für „last rule“ und stoppt nach diesem Befehl den rewriting Prozess. Wird benutzt, um ein erneutes Überschreiben zu verhindern. Das „R“ steht für „force redirect“ und forciert den 301er redirect. Würde das „=301″ hier nicht stehen, so wäre es automatisch ein 302er redirect!!

301 Weiterleitung einer Domain-URL von mit auf ohne www:

Beispiel (für Weiterleitung von www.domain.at auf domain.at):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.at$ [NC]
RewriteRule ^(.*) http://domain.at/$1 [L,R=301]

301 Weiterleitung einer alten URL auf eine neue URL:

Beispiel (Weiterleitung von /relativer-pfad/alte-url.html auf http://www.domain.at/absoluter-pfad/neue-url.html):

Redirect 301 /relativer-pfad/alte-url.html http://www.domain.de/absoluter-pfad/neue-url.html

Alternative Schreibweise:

Redirect permanent /relativer-pfad/alte-url.html http://www.domain.de/absoluter-pfad/neue-url.html

301 Weiterleitung aller Dateien eines Verzeichnisses, auf eine andere Datei, bis auf eine Ausnahme

Beispiel (Weiterleitung aller Dateien des Verzeichnisses /produkte/ auf /produkte.php, ausser /produkte/aktionen.php):

RewriteEngine On
RewriteRule ^produkte/aktionen.php /aktionen.html [L,R=301]
RewriteRule ^produkte(.*)$ /produkte.php [L,R=301]

Weiterleitung einer dynamischen URL auf eine statische Seite

Weiterleitung von http://www.domain.at/article.jsp?id=8932 auf http://www.domain.at/neueste-nachrichten.htm

RewriteEngine On
RewriteRule ^article.jsp?id=(.*)$ /neueste-nachrichten.htm [L,R=301]

Interne Weiterleitung (Umschreiben einer dynamischen URL auf eine statische URL)

Ruft man die URL /schoener_name.html auf, wird intern /index.php ausgeführt und ausgegeben. Der Server gibt dabei den Statuscode “200″ (OK) aus und macht keine 301 oder 302 Weiterleitung. In der Adresszeile steht aber immer noch /schoener_name.html. Das Umschreiben ist somit nach außen hin nicht erkennbar.

RewriteRule ^schoener_name.html$ index.php [L]

.htaccess für SEOs: 404 Fehlerseite anzeigen

Der 404 Error erscheint beim Aufruf einer Webseite, welche nicht gefunden werden kann. D.h. die Seite wurde entweder gelöscht, verschoben oder hat nie existiert (z.B. wenn man sich vertippt hat). Hat man keine 404er Fehlerseite für seine Webseite eingerichtet, so bekommt der Besucher eine vom Webserver „nackte“ 404 Error Meldung, mit der man den Besucher höchstwahrscheinlich verliert (Usability-Horror).  Auf der Suche nach „kaputten“ Backlinks kann eine 404er Fehlerseite von Vorteil sein. Tools erkennen Broken Links einfacher, wenn eine 404er Fehlerseite eingerichtet ist (siehe Beispiel LinkResearchTools oben).

Einen Fehler aus der Praxis, den wir immer wieder sehen: Man leitet von alten nicht mehr existierenden Seiten http://www.domain.at/gibtsnicht.html via redirect auf eine eigens angelegte 404 Fehlerseite. Dies sollte nicht gemacht werden, da diese Seite dann nicht als 404 identifiziert werden kann und diese 404 Seite durch die 301 Weiterleitungen extrem gestärkt im Google Index auftaucht. Ein Tool, mit dem man den Code einer Seite abfagen kann, gibts z.b. hier.

image-7726

Mit dem folgenden Befehl kann eine extra 404 Seite eingetragen werden. Sollte also eine Seite nicht mehr vorhanden sein, bekommt der Besucher automatisch diese eingetragene Seite angezeigt:

„Befehl 404 Pfad“ Beispiel:

errordocument 404 /www/error404.html

Beispiele für kreative 404 Error Pages (Tipp:  eine 404er Fehlerseite sollte grundsätzlich so aufgebaut sein, dass sie den Kunden, der nicht vorgefunden hat, was er eigentlich erwartet hat, an der Hand nimmt und ihn auf eine sinnvolle Seite oder mögliche Alternativen hinweist).

http://www.hongkiat.com/blog/60-really-cool-and-creative-error-404-pages/

Weitere übliche  Fehlercodes:  400, 401, 403, 500

Der Fehlercode 500 „Internal Server Error“ kann durch eine Fehlkonfiguration des Webservers, einen Schreibfehler in der htaccess-Datei oder bei nicht-funktionierenden CGI-Skripts vorkommen. Theoretisch gibt es noch viele andere Ursachen. 500 kommt immer bei unerwarteten Serverfehlern.

Der Fehlercode 403 erscheint, wenn man keine Zugriffsrechte auf die Seite hat.

Der Fehlercode 400 erscheint, wenn die Anfrage fehlerhaft aufgebaut war.

Möchte man für jeden Fehlercode eine eigene Seite erstellen, könnte das so aussehen:

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

 Weitere .htaccess Einsatzmöglichkeiten

„Hot-Linking“ verbieten und damit die eigene Seite wieder schneller machen?

Folgendes Szenario: Ich habe viele große Bilddateien auf meiner Homepage – diese benötigen für meine eigenen Besucher jedoch nicht übermäßig viel Traffic/Serverresourcen. Baut nun jemand anders diese Bilddateien auf seiner Seite direkt über den Link auf seiner Seite ein, so wird dein Traffic und Server mehr ausgelastet. Dies könnte zu unerwünscht hohem Traffic führen – ohne dass man selbst davon was hat. Über die .htaccess ist es nun nicht nur möglich, das Hot-Linking zu verbieten, sondern dem „Dieb“ eine andere Datei anzeigen zu lassen (Je nach Lust und Laune können dies witzige Bilder sein, oder Bilder, die er lieber nicht auf seiner Seite hätte)

Hier ein Image Hotlinking Generator: http://www.htaccesstools.com/hotlink-protection/

.html Files als PhP-Dateien ausführen

Ein Eintrag in der .htaccess Datei ermöglich die Ausführung von php, auch wenn die Files .html heißen. Sehr praktisch, wenn man seine Seiten nicht umbenennen möchte – auch für Suchmaschinen.

RewriteEngine on
RewriteRule ^(.*).html$ $1.php

Passwortgeschützte Webseiten

Mit der .htaccess Datei lassen sich Webseiten mit einem Passwort versehen. Dies ist auch für verschiedene User oder Usergruppen möglich.

  • Hier ein Generator, mit dem man die verschlüsselten Paßwörter für die notwendige .htpasswd Datei erzeugen kann.
  • Mit diesem Generator erzeugt man dann die notwendige Direktive für die .htaccess Datei

User oder Bots via IP oder Referrer blocken

Möchte man einzelne oder mehrere Users, Bots oder Angriffe blocken, so kann in der .htaccess der Zugriff auf die Seite von IPs oder anderen Seiten geblockt werden.

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} Slurp
RewriteRule ^.* - [F]

Ich hoffe ich konnte euch einen guten Überblick über die Einsatzmöglichkeiten der .htaccess geben.

Für weitere Infos, Meinungen und Feedback bin ich sehr dankbar!

Quellen:

Mehr Online Marketing Wissen?

Du willst mehr über Online Marketing und Suchmaschinenoptimierung lernen? Dann besuche am 17. November 2016 die Online Marketing Konferenz OMX und am 18. November 2016 die Konferenz für Suchmaschinenoptimierung SEOkomm in Salzburg.
Mit unserem Rabattcode WMBLOG16 kannst du auf jedes der beiden Konferenztickets 60 EUR sparen!
Thomas Rafelsberger
Thomas Rafelsberger war Projektmanager eines Internetplattform-Relaunchs, e-Business Manager eines Webshops, hat sein Masterstudium abgeschlossen und arbeitet nun als Head of SEO bei getontop.at. Thomas betreibt auch eigene kleinere Webseiten & SEO-Test-Spielwiesen wie bruttonetto-rechner.at und festival.co.at .
Thomas Rafelsberger
Thomas Rafelsberger
Thomas Rafelsberger

Latest posts by Thomas Rafelsberger (see all)

6 Kommentare

  1. Ich bin die Erste welche hier kommentiert? Bei so einem wichtigen Thema echt schade!
    Super Zusammenfassung mit kurzen knackigen Infos. Thomas, du hast den Blick fürs Wesentliche… weiter so!

  2. Thomas Rafelsberger

    Danke, gerne 😉

  3. Hallo Thomas,
    erstmal vielen herzlichen Dank für deine verdammt gute Anleitung.
    Für mich als Vollpfosten was das Thema .htaccess angeht ist es eine Bereicherung.
    Kannst du mir bitte noch zwei Fragen beantworten?:
    Meine WordPress-Installation liegt nicht auf dem root, sondern in einem Unterordner. Wenn ich mit dem SEO-Plugin arbeite kann ich wie du beschrieben hast die .htaccess und die robots.txt bearbeiten. Allerdings liegt die dann in dem besagten Unterordner und nicht auf dem root-Verzeichnis.
    Ich muss vermutlich die .htaccess aus dem Unterordner raus und in das root-Verzeichnis reinkopieren, damit diese dann ihre Arbeit ordentlich aufnehmen kann richtig?

    Zweite Frage: Ich habe zwei Domains die auf einem Webspace enden. Kann ich mit der 301-Weiterleitung beide Domains automatisch steuern?

    Vielen Dank nochmals für deinen guten Artikel.

    Danny

  4. Thomas Rafelsberger

    Hi Danny, danke für das große Lob.

    Zu Frage 1: Ja. Du kannst aber theoretisch auch mit 2 htaccess arbeiten, falls du für den Unterordner spezielle Einstellungen machen möchtest.

    Zu Frage 2: Ja. Z.B. mit RewriteCond
    RewriteCond %{HTTP_HOST} ^(www\.)?meinedomain\.at$ [NC]
    RewriteRule .?$ http://www.meinedomain.com%{REQUEST_URI} [R=301,L]