SEO: Trailing Slash & Duplicate Content

Duplicate Content ist der Alptraum jedes Suchmaschinenoptimierers.

Zur Erinnerung: Wenn ein und dieselbe Seite unter zwei unterschiedlichen URLs erreichbar ist und keine besonderen Maßnahmen getroffen wurden, sieht Google zwei konkurrierende Seiten vor sich mit häufig verheerenden Auswirkungen auf das Ranking.

Kein Wunder, dass man im SEO-Umfeld zahlreiche Artikel zu Duplicate Content findet. Allerdings beschränken sich die meisten auf Hinweise auf den Aufruf mit und ohne www sowie mit und ohne https. Fast immer vergessen wird hingegen das Trailing Slash am Ende einer URL.

“Das Trailing Slash (auch bekannt als End-Slash) kann eine Rolle in Bezug auf Duplicate Content und SEO spielen. Ein Trailing Slash wird normalerweise am Ende einer URL angezeigt und gibt an, dass es sich um einen Ordnerpfad handelt, der möglicherweise weitere Seiten oder Inhalte enthält.

Wenn eine Website sowohl URLs mit als auch ohne Trailing Slash bereitstellt (z.B. „example.com/page“ und „example.com/page/“), kann dies zu Duplicate Content führen, da Suchmaschinen die beiden URLs als separate Seiten betrachten können, obwohl der Inhalt derselbe ist. Dies kann zu einer Aufspaltung der Suchmaschinen-Rankings führen, was sich negativ auf das SEO auswirken kann.

Um dies zu vermeiden, empfiehlt es sich, entweder alle URLs mit Trailing Slash oder alle URLs ohne Trailing Slash zu verwenden und sicherzustellen, dass auf allen Seiten die gleiche Schreibweise verwendet wird. Es ist auch eine gute Praxis, eine kanonische URL für jede Seite festzulegen, um sicherzustellen, dass die Suchmaschinen die bevorzugte Version der Seite indexieren und ranken.”

Ist hier alles gesagt?

Den gerade gelesenen Abschnitt hat uns ChatGPT geliefert und hat uns damit gezeigt, dass KI-generierte Antworten zwar wohlformuliert sind und auch überwiegend zutreffend – aber halt auch etwas oberflächlich, denn bei diesem Thema muss man tiefer einsteigen, um Aspekte der Usability sowie alternative Lösungsmöglichkeiten zu beleuchten. Auch scheint sich ChatGTP nicht ganz sicher zu sein: das Wort “kann” taucht etwas sehr häufig auf und zieht sich wie ein Disclaimer durch die Antwort von ChatGPT.

“Trailing Slashes matter” – oder ist das nur SEO-Geschwurbel?

Also untersuchen wir zunächst die Aussage, dass das Trailing Slash für SEO relevant ist,  auf ihren Wahrheitsgehalt, indem wir verlässliche Quellen recherchieren. Fündig wird man bei John Müller, der als “halb-offizielles” Sprachrohr von Google gilt, und der die Relevanz des Trailing Slash für SEO in einem Beitrag aus 2017 bestätigt: https://johnmu.com/trailing-slash-or-not/.

Nun zu den Maßnahmen. Bleiben wir beim Beispiel “example.com/page/”. Natürlich könnte man sich bei den URLs auf eine Variante, z.B. jene mit Slash, beschränken und bei der anderen Variante “example.com/page” ohne Slash einen 404-Code zurückgeben. Aus SEO-Sicht perfekt – aus Usability-Sicht ziemlich fragwürdig, denn der Slash wird gerne mal beim Eingeben vergessen – dennoch erwartet der User die Darstellung der gewünschten Seite.

Hier gibt es zwei Lösungsvarianten:

Variante 1: 301-Redirect

Der Browser wird mit einem 301-Redirect dazu aufgefordert, die Seite unter der anderen URL aufzurufen. Das ist sowohl für SEO als auch für den User eine sinnvolle Lösung.

Ein solcher Redirect kann mit folgendem Code in der .htaccess eingerichtet werden:

# Remove trailing slash to avoid duplicate content
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
Oder in der anderen Richtung:
# Enforce trailing slash to avoid duplicate content
RewriteCond %{REQUEST_URI} !(/$|.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]

(Welche Richtung man wählen sollte, erörtere ich am Ende dieses Artikels.)

Variante 2: Canonical Tag

Der Browser liefert zwar beide Varianten mit einem 200er-Code aus, versieht aber auch beide mit einem Canonical Tag, das dann bei beiden URLs auf die gewünschte Variante (also beide Male mit oder beide Male ohne Slash) verweist. Vorteil: Die Weiterleitung entfällt, was durch die Einsparung eines http-Requests einen kleinen Performance-Gewinn bedeutet. Nachteil: In der Umsetzung kann die richtige Generierung des Canonical Tags etwas schwieriger sein als ein genereller 301-Redirect, den man in der .htaccess anlegen kann.

So würde z.B. ein Canonical Tag aussehen, der Google mitteilt, dass die Variante mit Trailing Slash zu indexieren ist:

<link rel=“canonical“ href= „https://www.example.com/page/“

Die verbotene Variante

Was definitiv nicht sein darf: beide URLs werden mit einem 200er-Code zurückgeliefert, ohne dass es einen Canonical Tag gibt – denn genau das führt zu der Duplicate-Content-Problematik, die hier beschrieben ist. Leider gibt es diese Konstellation immer wieder, und sie fällt häufig nicht auf, weil ja aus User-Sicht alles perfekt funktioniert.

Wer misst, misst Mist…oder greift besser zu Curl

Beim Testen gibt es tatsächlich einen Fallstrick: Manche Browser entfernen den Trailing Slash in der Adressleiste der Optik wegen und suggerieren dadurch, man habe die Seite ohne Trailing Slash aufgerufen (so wie Browser auch gerne das www in der Adressleiste unterdrücken). Wer verlässliche Infos über aufgerufene URL und Return-Codes haben möchte, sollte daher die URL direkt per Curl in der Kommandozeile aufrufen – Marketeers, die nicht über ein funktionierendes Curl in der Kommandozeile verfügen, dürfen auch einen Blick in die Netzwerk-Ausgabe der Developer-Tools des Browsers werfen.

Bei einem Curl-Aufruf genügt es, sich den Header ausgegeben zu lassen, der zugehörige Befehl lautet z.B.

curl -–head https://example.com/page
Und die zugehörige Antwort könnte lauten:
HTTP/2 200
content-language: de
x-typo3-debug-cache: Cached page generated 09-03-23 12:04. Expires 10-03-23 12:04
x-typo3-parsetime: 0ms

Hier steht die entscheidende Info in der ersten Zeile: HTTP/2 200 bedeutet, dass die Seite direkt mit dieser URL ausgeliefert wurde.

Wenn hingegen ein Redirect von der Variante ohne Slash zu jender mit Slash erfolgt, sieht die Antwort auf den Curl-Befehl wie folgt aus:

HTTP/2 301
location: https://example.com/page/
cache-control: max-age=0

Sollte aber in beiden Fällen der Code 200 zurückgeliefert werden, ohne dass es ein Canonical Tag gibt, besteht dringender Handlungsbedarf.

Für die bloße Domain gibt es eine Ausnahme für den Trailing Slash

Zu guter Letzt ein Detail, das ChatGPT auch unterschlagen hat, das man aber dem oben genannten Beitrag von John Müller entnehmen kann: Wird nur die Domain aufgerufen, führt das Trailing Slash nicht zu Duplicate Content: “example.com” und “example.com/” sind also für Google nur eine einzige Seite, hier ist weder ein Redirect noch ein Canonical Tag erforderlich (sie schaden aber auch nicht).

Slash oder nicht Slash – das ist hier die Frage!

Bleibt die Gretchenfrage, welche Variante man als Standard wählen sollte: die mit oder die ohne Trailing Slash? Es ist tatsächlich Geschmackssache, Google ist das völlig egal. Der aktuelle Trend scheint in die Richtung zu gehen, dass Browser den Trailing Slash in der Anzeige unterdrücken. Insofern bietet es sich an, die URL ohne Trailing Slash als Standard zu nehmen. Dafür spricht auch, dass der Trailing Slash traditionell auf ein Verzeichnis hinweist, während wir ja aber eine – wenn auch häufig physikalisch gar nicht vorhandene – HTML-Datei aufrufen möchten.

Geschrieben von Stefan Schütt, Pagemachine AG



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert