Routing und Weiterleitungen: sprechende Links für SEO in TYPO3

Strategien zur Suchmaschinenoptimierung für Links in TYPO3

Ein integraler Bestandteil des Internet sind Links. Bei der Erzeugung eines Links zeigen sich deutlich die Auswirkungen von Strategien zur SEO. Denn um Suchmaschinenoptimierung zu betreiben, sollte man sprechende Links aufbauen, die sowohl von Menschen als auch von Suchmaschinen gut zu verstehen ist. Und man sollte die Verlinkung in einer Webseite so aufbauen, dass man die Links nicht einfach maschinell durchzählen kann. Im Content Management System TYPO3 ist diese SEO Strategie mit Hilfe eines Routing und von Weiterleitungen umgesetzt. 

Sprechende Links statt dynamischer Parameter

Früher hat man in seiner Webseite, wenn man sie mit einem Content Management System aufgebaut hat, eine Verlinkung in solcher Form aufgebaut: 

/index.php?id=51

Mit dynamischen Parametern in einem Link kann unser System natürlich sofort auslesen, dass es die Seite mit der ID 51 darstellen soll. Für Menschen aber, und ebenso für Suchmaschinen, ist es besser, sprechende Links in folgender Form zu erzeugen: 

/produkte/schrauben/metallschrauben

Es gibt mehrere Gründe, warum Google dynamische Parameter in einem Link nicht unbedingt bevorzugt. Gründe dazu gibt es in einem schon etwas älteren Blog von Google, den wir unten verlinkt haben. Einer der Gründe im täglichen Betrieb ist jedoch, dass diese Links recht lang werden können, vor allem wenn sie eine ganze Reihe von Daten übergeben. Zudem kann man mit sprechenden Links mit recht geringem Aufwand eine große Zahl von Suchbegriffen in seiner Webseite in den Quelltext bekommen und damit die Keyword Density, die Dichte der Suchwörter, vergrößern. Alles Gründe, über ein Routing in TYPO3 nachzudenken. 

Routing in TYPO3 Extension: statische Links statt dynamischer Parameter

Oft hat man in TYPO3 Inhalte in Extensions gespeichert und diese bereits mit einer Vielzahl von Datensätzen gefüllt. Ein solcher Link kann dann aussehen wie folgt: 

/blog?tx_ibk_blog[action]=show&tx_ibk_blog[blog]=40&tx_ibk_blog[controller]=Blog

Solch einen Link möchten wir dann vielleicht abkürzen in einen Link, der aussieht wie dieser hier: 

/blog/beitrag/40

Nun können wir aber noch weiter fortsetzen und uns überlegen, ob wir aus der Not nicht eine Tugend machen und gleich den gesamten Link lesbar machen: 

/blog/typo3-routing-code-snippets

In diesem sprechenden Link haben wir nun lesbare Informationen über den Inhalt, der uns im verlinkten Artikel erwartet. Wir können dieses Spiel noch weiter treiben. Angenommen, wir haben eine Listenansicht für bestimmte Daten. Diese könnten wir in einer lesbaren Form in der folgenden Art abkürzen: 

/blog/listenansicht/seite-3/anzahl-10

Hier brauchen wir also ein Routing, dass uns für die Listenansicht ausliest, dass die dritte Seite und auf dieser Seite 10 Beiträge angezeigt werden sollen. 

TYPO3 Routing mit PHP Framework Symfony

TYPO3 setzt für das Routing einer Webseite des CMS ein Konzept des Routing des PHP Frameworks Symfony um. Dieses in vielen Tausend Webseiten erprobte Framework erlaubt es uns, Links auseinander zu nehmen, auszulesen, zu verarbeiten, Weiterleitungen einzurichten und Umleitungen zu konfigurieren. 

Der Rückgriff auf Symfony ist von daher ein Glücksfall, denn wie bei anderen Technologien zum Aufbau von Webseiten können wir damit ein praxiserprobtes Modul für unsere TYPO3 Webseite einsetzen, bei dem wir uns einen gewaltigen Testaufwand sparen und damit den Aufwand eines Projektes erheblich reduzieren können.

Beispiele für Routing in TYPO3

Wie können wir ein Routing in einer TYPO3 Webseite nun umsetzen? Eine Möglichkeit ist, einen sprechenden Link in der Datenbank zu hinterlegen, so dass wir diesen auflösen und mit den ausgelesenen Daten arbeiten können. Genau dieses Konzept setzt TYPO3 bereits selbst um! Denn seit der Version 9.5 von TYPO3 haben wir in den Seiteneigenschaften das Feld URL-Segment, mit dem für jede Seite und damit, über mehrere Ebenen der Hierarchie einer Webseite hinweg, ganze Seitenbäume mit sprechenden Links editieren können.

Blog Agentur IBK als Beispiel im Wiki

Dieses Konzept können wir aber auch für unsere eigene Webseite nutzen, und hier vor allem dann, wenn wir die Ebene der einzelnen Seiten verlassen und Inhalte in einer Extension speichern. Dies können Nachrichten, Produkte, FAQ oder auch ein Blog sein. Als Beispiel dazu haben wir den Blog der Agentur IBK auf dieser Webseite einmal analysiert. 
Der Blog hat folgende Ansichten: 

  • Listenansicht aller Blogbeiträge 
  • Einzelansicht eines Blogbeitrags 
  • Kategorien und Schlagworte als Listenansichten 

Für alle diese Ansichten gibt es Links, die zu ihnen hinführen. Hier greifen also zwei Bausteine zum Aufbau des Routing ineinander: 

  • In der Extension definieren wir Links, die nicht den Standard der Viewhelper mit PageUID, Controller, Action und ID ansprechen, sondern bei denen wir die Parameter in einer von uns definierten Syntax übergeben 
  • Das Routing löst diese Syntax auf und verwandelt die übergebenen Variablen für das System zurück in Daten, mit denen die Extension arbeiten kann 

Das klingt etwas umständlich, und natürlich ist es das auch. Der gewaltige Vorteil für erfolgreiche SEO ist jedoch, dass wir keine Zahlen und anderen Werte mehr über dynamische Links übergeben, sondern unseren menschlichen Besuchern und Suchmaschinen eine statische Struktur unserer Webseite vorspielen. 
Haben Sie Appetit auf den Source Code in TypoScript und Fluid Templates dazu? Dann lesen Sie Details im Wiki der Agentur IBK: 

Blog Routing Configuration - Wiki Agentur IBK

Canonical Link mit Routing für TYPO3 SEO nutzen

Wenn wir die Suchmaschinenoptimierung unserer TYPO3 Webseite fast bis zum Ende treiben wollen, sollten wir auch den Canonical Link nutzen, mit dem wir einer Suchmaschine die Information mitgeben, unter welchem Link sie bitte die gerade gefundene Seite speichern möge. Denn auch wenn die Suchmaschine die Seite mit allen dynamischen Parametern im Link gefunden hat, zum Beispiel über die in der Google Search Console eingereichte XML-Sitemap, können wir Google für eine erfolgreiche SEO mit TYPO3 sagen, dass der Link etwas anders lautet. Google übernimmt dann diesen statisch erscheinenden Link und nicht den Link mit dynamischen Parametern. 

Um den Canonical Link nun nach unserem Konzept zu erzeugen, können wir das TypoScript unserer Extension nutzen. Ein Beispiel für den Source Code in TypoScript finden Sie hier im Wiki unserer Agentur: 

Agentur IBK Wiki: Canonical Link in TYPO3 Extension erzeugen

Damit haben wir unser SEO mit Canonical Links in unserer Webseite fast bis zum Ende gebracht. Fast. Denn wenn wir in den Quellcode einer Einzelansicht unserer Extension blicken, werden wir feststellen, dass dort zwei Canonical Links stehen: Unseren selbst generierten und den von TYPO3 automatisch erzeugten. 

Um dies zu verhindern und unseren Canonical Code als einzigen in der Ansicht zu belassen, können wir TYPO3 in unserer Extension dazu bringen, die standardisierte Generierung des Canonical Link zu unterbinden. Eine Vorlage dazu finden Sie ebenfalls im Wiki der Agentur IBK: 

 Agentur IBK Wiki: TYPO3 Canonical Link abschalten 

Damit haben wir die Möglichkeiten von TYPO3 zur SEO weitgehend ausgenutzt. Wie wir nun mit statischen Links und Routing in unserer Extension arbeiten, welche Links wir in welcher Form generieren, welche Views wir erstellen und wie wir unsere Besucher durch die Inhalte führen, dass entscheidet sich beim Programmieren der Erweiterung selber. 

Das Modul Weiterleitungen in TYPO3

In den TYPO3 Versionen 9.5 und 10.4 haben wir ein Hausmittel an Bord, mit dem wir ohne Installation einer Extension Weiterleitungen in unserer Webseite definieren können. Wenn wir einen Link haben, von dem wir z. B. über die Google Search Console erfahren haben, dass er nicht mehr funktioniert, können wir diesen Link auf ein neues Ziel weiterleiten. Für eine erfolgreiche SEO ist dies sehr wichtig, denn damit geben wir Google die Information, was es mit alten Links in seinem Index anfangen soll. 

Dies kann man unabhängig von der Suchmaschinenoptimierung auch für andere Weiterleitungen in der TYPO3 Webseite konfigurieren. Wenn wir beispielsweise die Aufgabe haben, einen Kurzlink für ein Sonderangebot zu generieren, dann können wir dieses mit dem Modul Weiterleitungen einrichten. 

TYPO3 10.4: URL-Segment und automatische Weiterleitungen

Wie oben bereits beschrieben, ist das Modul zur Weiterleitung einzelner Links in TYPO3 seit der LTS Version 9.5 fest in den System Kernel integriert. Mit der Version 10.4 von TYPO3 ist die automatische Generierung von Weiterleitungen hinzugekommen. Dies ist ein weiterer Fortschritt im Content Management System! Denn wir müssen nun nicht mehr warten, bis uns die Google Search Console auf kaputte Links zu unserer Webseite hinweist, wir können diese bereits bei der SEO Bearbeitung unserer Webseite abfangen. 
Das URL-Segment in den Seiteneigenschaften im TYPO3 Backend nutzen wir in erster Linie, um für unsere Webseite sprechende Links zu erzeugen. Ähnlich wie bei den Permalinks in Wordpress ist es aus SEO Sicht eine Todsünde, bestehende und vielleicht schon bei Google indexierte Links zu ändern. Um dennoch Links neu optimieren und gleichzeitig alte Links weiter nutzen zu können, legt TYPO3 bei der Änderung eines URL-Segments automatisch eine neue Weiterleitung an, worüber man auch automatisch über ein blaues PopUp oben rechts informiert wird. Man hat dann drei Optionen: 

  • Man tut nichts und klickt die Meldung weg, weil man die automatische Weiterleitung bewusst erstellt haben wollte 
  • Man hat etwas falsch gemacht und macht die Änderung des URL-Segments und der Weiterleitung wieder rückgängig 
  • Man ist noch im Testbetrieb und übernimmt das neue URL-Segment, braucht aber die Weiterleitung noch nicht und lässt sie löschen (revert) 

Dies ist ein großer Vorteil von TYPO3 bei der Suchmaschinenoptimierung. Denn man muss nicht erst nachforschen, ob man tote Links hat, man kann diese bereits bei der Generierung neuer Links abfangen. 
Natürlich geht es auch noch einen Schritt brutaler: Man kann die .htaccess Datei nutzen.

Weiterleitung Hardcore: die .htaccess nutzen

Wenn man einen Webserver betreibt, liegt meist eine Datei mit dem Namen .htaccess im Stammverzeichnis der Installation eines Systems. Nicht nur TYPO3 nutzt die .htaccess für die Steuerung der Zugriffe, auch viele andere Systeme nutzen sie. Diese Datei kann man als wichtigste Datei des gesamten Webservers betrachten. 

 WARNUNG: Eine kleine Änderung an der .htaccess kann den gesamten Webserver zum Absturz bringen! Lassen Sie diese Datei also nur von jemandem bearbeiten, der wirklich Ahnung davon hat! Und legen Sie immer ein Backup der letzten funktionierenden Version der .htaccess Datei an! 

Die .htaccess wird als erstes von einem Webserver aufgerufen, wenn es einen Zugriff auf die dort gehostete Webseite gibt. In dieser Datei finden sich Informationen darüber, wie Links verarbeitet werden sollen, was mit bestimmten Typen von Dateien geschehen soll, wie sich die Webseite beim Aufruf einer nicht verschlüsselten Verbindung verhalten und was bei Weiterleitungen geschehen soll. Deshalb ist diese Datei für den Webserver so enorm wichtig! 

Der große Vorteil der .htaccess ist, dass man in dieser Datei nicht nur einzelne Zugriffe, sondern auch die Weiterleitung ganzer Verzeichnisbäume mit Hunderten oder Tausenden von Links und mit dynamischen Parametern in einer einzigen Zeile regeln kann. Dies kann sehr viel Arbeit und sparen und reduziert damit auch die Fehleranfälligkeit des Systems erheblich. 

Im Wiki unserer Agentur finden Sie Source Code zur .htaccess nicht nur für TYPO3:

Wiki Agentur IBK: .htaccess Konfiguration Cource Code

Links zu Routing und dynamischen Parametern

Google Webmaster Blog: Alles über dynamische URLs