.htaccess-Datei: Ein kleines, aber wirkungsvolles Werkzeug für Eure SEO
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?
- Wie funktioniert die .htaccess-Datei?
- Wo befindet sich die .htaccess-Datei?
- Warum ist die richtige Syntax in einer .htaccess-Datei so wichtig?
- 6 Einsatzgebiete der .htaccess-Datei in der Suchmaschinenoptimierung
- Warum erhaltet Ihr eine Fehlermeldung, nachdem Ihr die .htaccess-Datei aktualisiert habt?
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:
- Zunächst öffnet Ihr Notepad.
- Gebt dort die Konfiguration ein oder verwendet die oben angegebene Standardsyntax.
- Speichert die Datei im ASCII-Format mit dem Dateinamen „.htaccess“ ab.
- Stellt sicher, dass die Datei nicht im .txt-Format gespeichert wird.
- 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.
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.
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:
- 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.
- 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.
- 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.
- 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.
- 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.
Empfehlenswerte SEO Tools
Weitere empfehlenswerte SEO-Tools kannst du auf OMR Reviews finden und vergleichen. Insgesamt haben wir dort über 150 SEO-Tools (Stand: Dezember 2023) gelistet, die dir dabei helfen können, deinen organischen Traffic langfristig zu steigern. Also schau vorbei und vergleiche die Softwares mithilfe der verifizierten Nutzerbewertungen: