SEO

.htaccess-Datei: Ein kleines, aber wirkungsvolles Werkzeug für Eure SEO

Tim Fischer 22.11.2022

In diesem Artikel gehen wir näher auf die .htaccess-Datei ein und zeigen Euch, wie Ihr sie zur Optimierung der SEO Eurer Website nutzen könnt.

Was ist eine .htaccess-Datei? 

Die .htaccess-Datei (kurz für Hypertext Access) ist eine Webdatei, die auf Apache-Webservern verwendet wird. Sie konfiguriert den Server pro Verzeichnis, um Website-Funktionen zu aktivieren oder zu deaktivieren. Das bedeutet, dass die in der Datei vorgenommenen Änderungen sowohl für das betreffende Verzeichnis als auch für dessen Unterverzeichnisse gelten. 

Zu den gängigsten Anwendungen einer .htaccess-Datei zählen: 

  • Weiterleitungen 
  • Passwortschutz
  • Zugangsbeschränkung für bestimmte IP-Adressen
  • Erweiterung Eurer Server-Ressourcen

Wie funktioniert die .htaccess-Datei?

Die .htaccess-Datei wird in einem Verzeichnis auf dem Webserver abgelegt. Die Befehle in der Datei werden vom Apache-Webserver beim Zugriff auf dieses bestimmte Verzeichnis ausgeführt. Aus diesem Grund ist es auch üblich, die .htaccess-Datei im Stammverzeichnis einer Website abzulegen. Dies setzt die Standardeinstellungen außer Kraft und konfiguriert den Server für die gesamte Website. Wie jede andere Apache-Konfigurationsdatei wird auch die .htaccess-Datei von oben nach unten gelesen. Das bedeutet, dass die oben stehenden Befehle vor den Syntaxen am Ende der Datei ausgeführt werden.

Wo befindet sich die .htaccess-Datei? 

Da die .htaccess-Datei den Server pro Verzeichnis konfiguriert, könnt Ihr sie in fast allen Ordnern Eures Webverzeichnisses finden. Wenn Ihr ein einzelnes Webverzeichnis mit mehreren Unterverzeichnissen habt, könnt Ihr die Datei sowohl im Stammverzeichnis als auch in jedem Unterverzeichnis platzieren.

Wenn Eure Website mit WordPress betrieben wird, findet Ihr die .htaccess-Datei im WordPress-Installationsverzeichnis. Hier ist die Standardkonfiguration der Datei für die meisten WordPress-Websites:

# BEGIN WordPress

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

# END WordPress

Bei verschiedenen Hosting-Plattformen, die cPanel verwenden, könnt Ihr die .htaccess-Datei über den Dateimanager finden. Navigiert hierzu einfach in das Stammverzeichnis und aktiviert dort „Versteckte Dateien anzeigen“. Wenn Ihr die Datei immer noch nicht seht, müsst Ihr sie möglicherweise manuell erstellen und auf Euren Server hochladen. Dazu führt Ihr die folgenden Schritte aus: 

  1. Zunächst öffnet Ihr Notepad.
  2. Gebt dort die Konfiguration ein oder verwendet die oben angegebene Standardsyntax.
  3. Speichert die Datei im ASCII-Format mit dem Dateinamen „.htaccess“ ab.
  4. Stellt sicher, dass die Datei nicht im .txt-Format gespeichert wird.
  5. Verwendet eine FTP-Anwendung wie Filezilla, um die .htaccess-Datei in Euer Webverzeichnis hochzuladen.

Warum ist die richtige Syntax in einer .htaccess-Datei so wichtig? 

Die .htaccess-Datei ist eine hochsensible Konfigurationsdatei. Jeder Fehler in der Syntax kann Eurer Website erheblichen Schaden zufügen. Aus diesem Grund wird die Datei von Webservern immer versteckt. Wenn Ihr keine Erfahrung mit .htaccess-Dateien habt, solltet Ihr am besten einen Webentwickler mit dieser Aufgabe betrauen. Wenn Ihr dennoch damit experimentieren wollt, solltet Ihr zunächst eine Sicherungskopie der Originaldatei erstellen. Auf diese Weise könnt Ihr leicht zur alten Version Eurer Website zurückkehren, falls sich Fehler in den Syntaxen der .htaccess-Datei eingeschlichen haben.

6 Einsatzgebiete der .htaccess-Datei in der Suchmaschinenoptimierung

Die .htaccess-Datei ist ein mächtiges Werkzeug für die technische SEO. Im Folgenden findet Ihr einige Möglichkeiten, wie Ihr die Datei zur Steigerung Eurer Website-Performance nutzen könnt:

1. Benutzerfreundliche URLs mit der .htaccess-Datei erstellen

Laut Matt Cutts (einem Google-Ingenieur) spielen URLs eine entscheidende Rolle für die Platzierung in Suchmaschinen. Eure URL sollte nicht ausschließlich Keywords enthalten, um mehr Besucher*innen anzuziehen. Sie sollte insbesondere auch kurz und einprägsam sein. 

Um klare und prägnante SEO-freundliche URLs zu erstellen, könnt Ihr Eure .htaccess-Datei optimieren. Zum Beispiel könnt Ihr abc.com/seo-seite.html in abc.com/seo-seite umwandeln, indem Ihr diesen Code verwendet:

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}\.html -f

RewriteCond %{REQUEST_URI} ^(.+)\.html$

RewriteRule (.*)\.html$ /$1 [R=301,L]

Ihr könnt dasselbe mit abc.com/seo-seite.php machen, indem Ihr im obigen Code .html in .php ändert.

2. Zugriff auf Eure Website zulassen oder verweigern

Ihr könnt IP-Adressen auch mittels einer .htaccess-Datei am Zugriff auf Eure Website hindern. Wenn Ihr beispielsweise möchtet, dass Eure Website nur für eine einzige IP-Adresse zugänglich ist (z. B. IP 1.2.3.4), könnt Ihr den folgenden Code eingeben: 

# Order Allow, Deny

Deny from All

Allow from 1.2.3.4

Das Wort „Order" wird verwendet, um den Ausführungsprozess zu definieren. Im obigen Beispiel wird der Allow-Befehl zuerst verarbeitet, bevor der Deny-Befehl ausgeführt wird. 

In ähnlicher Weise könnt Ihr mit folgendem Code den Zugriff auf dieselbe IP-Adresse verweigern:

# Order Allow, Deny

Deny from 1.2.3.4

Deny from 1.2.3.5

Allow from All

Wenn Ihr den Zugriff auf versteckte Dateien oder Verzeichnisse mit .htaccess unterbinden wollt, könnt Ihr auch diese Syntax verwenden:

RewriteCond %{SCRIPT_FILENAME} -d [OR]

RewriteCond %{SCRIPT_FILENAME} -f

RewriteRule “(^|/)\.” – [F]

3. Verzeichnisse mit Passwort schützen 

Die .htaccess-Datei kann Euch zudem dabei helfen, wichtige Seiten, Dateien, Ordner oder Verzeichnisse Eurer Website mit einem Passwort zu schützen. Dazu benötigt Ihr die folgenden Syntaxen:

AuthType Basic

AuthName "Passwortgeschützter Bereich"

AuthUserFile /PfadZurDatei/.htpasswd

Require valid-user

Dieser Befehl teilt dem Apache-Server mit, dass Euer „Passwortgeschützter Bereich“ gesichert werden soll. Der erste Befehl legt die grundlegende Authentifizierung fest, während die dritte Zeile den Passwort-Speicherort angibt. Der letzte Befehl fordert dann die Benutzer*innen auf, ihre Anmeldedaten einzugeben.

Tipp 3.png

Um die Kennwörter und Benutzernamen der User*innen zu speichern, müsst Ihr auch eine .htpasswd-Datei erstellen. Hier ist ein Beispiel: 

# .htpasswd-Datei für Benutzernamen und Passwörter

tom_müller:oCF9Pam/MXJg2

tina_schmidt:vfavgfkndjaZGH

jürgen_meyer:bhsgcanjFG5vdh 

Hinweis: Prüft, ob der Server, auf dem Ihr arbeitet, verlangt, dass die Passwortdatei im selben Verzeichnis liegt, in dem sich auch die .htaccess-Datei befindet.

4. Verbesserung der Indizierung und des Crawlings

Damit Eure Website in den Suchmaschinen auftaucht, muss sie indiziert werden. Um dies zu erreichen, müssen Bots in der Lage sein, Eure Website effektiv und regelmäßig zu crawlen. Auch hier kann die .htaccess-Datei helfen. 

Die .htaccess-Datei bietet Euch zwei Möglichkeiten, die Crawlbarkeit und Indexierbarkeit Eurer Website zu verbessern:

Indem sie den Googlebot zu den wichtigen Teilen Eurer Website lenkt

Normalerweise verwendet man die Datei robots.txt, um den Bots mitzuteilen, welche Seiten, Dateien, Ordner und Subdomains gecrawlt werden sollen. Das Problem dabei ist jedoch, dass sie nur Crawler-Directives, aber keine Indexer-Directives enthält. Crawler-Directives wie Allow, Disallow, Sitemap und User-agent teilen den Suchmaschinen-Bots mit, wohin sie sich begeben können.

Indexer-Directives hingegen sagen den Bots, was sie indizieren sollen. Im Gegensatz zu den Crawler-Directives, die normalerweise in der robots.txt-Datei stehen, befinden sich die Indexer-Directives im HTML-Kopf einer bestimmten Seite.

Hier besteht jedoch die Problematik, dass PDF-Dateien oder Bilder keine HTML-Köpfe haben. Das bedeutet, dass sie, sobald sie indiziert sind, in den Suchergebnissen erscheinen werden. Sobald sie auf der SERP erscheinen, klicken Besucher*innen möglicherweise direkt darauf und nicht auf Eure Website – was sich negativ auf Eure Conversion Rate auswirkt. Um zu verhindern, dass diese Dateien indiziert werden und um den von Euch ausgehenden Datenverkehr zu minimieren, müsst Ihr einen benutzerdefinierten Header mit der Bezeichnung „X-robots-Tag“ erstellen. Die Einrichtung ist die gleiche wie bei jedem anderen benutzerdefinierten HTTP-Header.

Für eine einzelne Datei könnt Ihr diesen Code in Eure .htaccess-Datei einfügen:

<Files white-paper.pdf>

    Header add X-robots-tag "noindex, noarchive, nosnippet"

</Files>

Um ein X-robots-Tag für alle .docx- und .pdf-Dateien zu setzen, könnt Ihr stattdessen den folgenden Code verwenden:

<FilesMatch ".(docx|pdf)$">

    Header add X-robots-tag "noindex, noarchive, nosnippet"

</FilesMatch> Indem sie rel="canonical"-Tags auf Nicht-HTML-Ressourcen setzt

Das Erstellen von rel="canonical"-Tags für PDFs und Bilder kann ebenfalls verhindern, dass sie von Bots indiziert werden. Ihr könnt diese Tags zwar nicht in den HTML-Kopf einfügen. Ihr könnt sie aber verwenden, um einen eigenen HTTP-Header zu erstellen.

Der folgende Code erstellt ein kanonisches Tag für die Datei white-paper.pdf, das auf die gewünschte HTML-Seite verweist:

<Files white-paper.pdf>

    Header add Link '<http://www.example.com/white-paper-download.html>; rel="canonical"'

</Files>

5. Erstellen von Weiterleitungen

URL-Weiterleitungen sind aus mehreren Gründen wichtig. Aus Sicht der Nutzer*innen verbessern sie die UX (User Experience). Anstatt den User*innen beispielsweise eine 404-Fehlerseite anzuzeigen, könnt Ihr sie zu einer neuen URL mit dem gesuchten Inhalt weiterleiten. Dies verringert die Absprungrate und erhöht die Verweildauer auf Eurer Website.

Aus Sicht der Crawler können Weiterleitungen dazu beitragen, dass sie sich auf einer Website leichter zurechtfinden. Sie können dann die wichtigen Seiten Eurer Website crawlen und indexieren, was sich positiv auf Eure SEO und Euer Ranking auswirkt.

Tipp 5.png

Die Erstellung von Weiterleitungen mit der .htaccess-Datei ist ziemlich einfach. Für die Fehlerseiten 400 (bad request), 401 (unauthorized), 403 (forbidden) und 500 (internal error) müsst Ihr nur die folgende Syntax verwenden:

ErrorDocument 402 /temp/page-unavailable-temporarily402

Der obige Code funktioniert für jede Fehlerseite. Alles, was Ihr tun müsst, ist den Fehlercode zu bearbeiten und die damit verbundene Umleitungsseite anzupassen.

Um einzelne Seiten mittels 301-Redirect auf eine neue URL weiterzuleiten, könnt Ihr die nachstehende Syntax nutzen: 

Redirect 301 /alte-seite.html neue-seite.html

Ihr könnt auch eine komplette Website auf eine neue URL umleiten, indem Ihr .htaccess mit dem folgenden Code verwendet:

Redirect 301 / http://beispiel.com

Um Besucher*innen und Crawler auf die neueste Version Eurer Website zu leiten, ist diese Syntax hilfreich:

RewriteCond %{HTTP_Host} ^beispiel.com$ [NC]

RewriteCond ^(.*)$ http://www.beispiel.com/$1[R+301,L]

RewriteCond %{THE_REQUEST} ^.*/index

Rewriter ^(.*)index$ http://www.site.com/$1 [R=301, L]

6. Schnellere Page Speed

Die Page Speed misst, wie lange eine Seite zum Laden braucht. Sie ist einer der direkten Ranking-Faktoren von Google und kann Eure Suchmaschinenoptimierung erheblich beeinflussen. Als Faustregel gilt: Je länger es dauert, bis Eure Seite geladen wird, desto eher verlassen die Besucher*innen Eure Seite. Dies führt zu einer höheren Absprungrate, einer geringeren Verweildauer und natürlich zu weniger Conversions. 

Es gibt diverse Möglichkeiten, die Geschwindigkeit einer Seite mithilfe der .htaccess-Datei zu verbessern:

Browser-Caching

Beim Browser-Caching werden die Ressourcen Eurer Website auf dem Computer der Besucher*innen gespeichert. Dadurch wird die zwischengespeicherte Kopie des Bildes oder einer anderen Art von Datei vom lokalen Laufwerk der Nutzer*innen abgerufen – was wiederum Bandbreite und Serverlast spart, wenn die Besucher*innen später zu Eurer Website zurückkehren.

Um das Browser-Caching über die .htaccess-Datei zu aktivieren, könnt Ihr dieses Syntaxbeispiel verwenden:

# turns cache on for 1 month

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType text/css „access plus 1 month“

ExpiresByType text/javascript „access plus 1 month“

ExpiresByType text/html „access plus 1 month“

ExpiresByType application/javascript „access plus 1 month“

ExpiresByType image/gif „access plus 1 month“

ExpiresByType image/jpeg „access plus 1 month“

ExpiresByType image/png „access plus 1 month“

ExpiresByType image/x-icon „access plus 1 month“

</IfModule>

Der Zeitrahmen teilt dem Browser der Besucher*innen mit, wie lange er die lokal zwischengespeicherte Kopie der Ressource verwenden kann. Ihr könnt ihn auf die von Euch bevorzugte Zeit einstellen. Die häufigsten Zeitrahmen sind „Access plus 1 Day", „Access plus 1 Week", „Access plus 1 Month" und „Access plus 1 Year". 

Cache-Control

Die zweite Methode besteht darin, einen Cache-Control-HTTP-Header für Eure Website-Dateien zu erstellen. Dieser legt fest, wie und wo eine Ressource zwischengespeichert wird und wie lange sie maximal gespeichert werden darf, bevor sie abläuft. Um einen Cache-Control HTTP-Header mit der .htaccess-Datei zu setzen, könnt Ihr diese Syntax verwenden: 

##### 1 Month for most static resources

<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">

    Header set Cache-Control "max-age=2592000, public"

</filesMatch>

Komprimierung Eurer Website

Eine weitere Methode, Eure Website zu beschleunigen, besteht darin, sie zu verkleinern. Zu diesem Zweck könnt Ihr die Bildgröße, die Dateigröße und die Anzahl der Dateien reduzieren. Ihr könnt zudem die Dateien komprimieren, die Ihr an den Client-Browser sendet. Dadurch kann Eure Website Daten schneller übertragen.

Um Eure Website mit der .htaccess-Datei zu komprimieren, müsst Ihr gzip (Dateiformat und Softwareanwendung zur Dateikomprimierung) mit diesem Code aktivieren: 

##### Enable gzip compression for resources

<ifModule mod_gzip.c>

    mod_gzip_on Yes

    mod_gzip_dechunk Yes

    mod_gzip_item_include file .(html?|txt|css|js|php)$

    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>

Da nicht alle Server gzip unterstützen, könnt Ihr stattdessen den Deflate-Algorithmus mit diesem Code verwenden:

##### Compress resources

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

Warum erhaltet Ihr eine Fehlermeldung, nachdem Ihr die .htaccess-Datei aktualisiert habt?

Es gibt einige gängige Probleme, auf die Marketeers und Webentwickler*innen beim Aktualisieren der .htaccess-Datei stoßen. Hier ist eine Liste der häufigsten .htaccess-Probleme:

  1. Fehlendes AllowOverride: Damit die .htaccess-Datei funktioniert, müsst Ihr zunächst die Option „AllowOverride“ aktivieren. Wenn diese Option auf „None“ gesetzt ist, werden alle in der .htaccess-Datei festgelegten Konfigurationen deaktiviert.
  2. Falsch geschriebener Dateiname: Da es sich bei der .htaccess-Datei um eine Unix-basierte Konfigurationsdatei handelt, die im ASCII-Format gespeichert wird, führt jede falsche Schreibweise im Dateinamen zu einem Fehler. Dies geschieht zum Beispiel, wenn der Dateiname nicht mit einem „." beginnt oder wenn er in einem anderen Format wie .txt hochgeladen wird. In diesem Fall ignoriert der Apache-Server die .htaccess-Datei und die von Euch vorgenommenen Konfigurationen.
  3. Hierarchie von .htaccess: .htaccess-Dateien werden auf der Grundlage ihrer Hierarchie ausgeführt. Das bedeutet, dass die oben genannten Befehle die Syntaxen im späteren Teil der Datei außer Kraft setzen können.
  4. Mehrere .htaccess-Dateien: Da .htaccess-Dateien für einzelne Verzeichnisse genutzt werden können, besteht die Möglichkeit, dass Eure Website über mehrere .htaccess-Dateien verfügt. In solchen Fällen kann eine Datei den Konfigurationseinstellungen einer anderen widersprechen, was zu Fehlern führt.
  5. Syntax-Fehler: Die .htaccess-Dateien funktionieren vollständig auf der Grundlage der Syntax, die Ihr bei der Konfiguration Eurer Website verwendet habt. So kann ein Syntax-Fehler oder ein Tippfehler innerhalb der Befehle Probleme verursachen oder Eure Website gar offline nehmen.

Tim Fischer
Autor*In
Tim Fischer
Autor*In
Tim Fischer

Tim ist ein freiberuflicher Journalist / Content Writer, der OMR-Reviews in den Bereichen Marketing und Softwares unterstützt. Seit seinem Onlinejournalismus-Studium schreibt er unter anderem für Computer Bild, XING und Finanzcheck.de. Wenn er nicht gerade am Texten ist, spielt er auf seiner Stratocaster die Klänge von Hendrix, Frusciante und Gilmour nach.

Alle Artikel von Tim Fischer

Im Artikel erwähnte Software-Kategorien