SEO-Stolperfallen in TYPO3 – und wie Sie sie finden

Wo TYPO3 bei Sitemap, Weiterleitungen und Sprachen anders arbeitet, als man erwartet – mit einem Prüfschritt für jede Stelle.

Kurz: Mit der Systemextension EXT:seo bringt TYPO3 XML-Sitemap, hreflang-Angaben und Canonical-Tags von Haus aus mit. Die typischen Probleme entstehen an den Übergängen: eine Sitemap, die fertig ist, aber keine Adresse hat; eine eigene Sitemap-Bedingung, die die Voreinstellung verdrängt; Weiterleitungen, die TYPO3 nach einer Slug-Änderung als vorübergehend anlegt; und eine Sprachweiterleitung auf der Startseite, die Browser dauerhaft speichern. Jede dieser Stellen lässt sich in wenigen Minuten prüfen.

Die Sitemap hat keine Adresse

EXT:seo erzeugt die Sitemap von Anfang an – erreichbar ist sie aber zunächst nur über einen Parameter, ?type=1533906435. Die Adresse /sitemap.xml gibt es erst, wenn die Site-Konfiguration den Seitentyp auf diesen Namen abbildet. In einem unserer Projekte lieferte /sitemap.xml deshalb eine 404, obwohl die Sitemap die ganze Zeit fertig war. Für Ihre Entwickler, in der config.yaml der Site:

routeEnhancers:
  PageTypeSuffix:
    type: PageType
    default: ''
    index: ''
    map:
      sitemap.xml: 1533906435

Zwei Dinge gehören dazu:

  • Jede Sprache hat ihre eigene Sitemap, unter ihrer Basis-URL: /de/sitemap.xml, /en/sitemap.xml. Steht jede Sprache unter einem Präfix, gibt es unter /sitemap.xml keine. Reichen Sie dann jede Sprach-Sitemap einzeln in der Search Console ein.
  • Die Unter-Sitemaps tragen einen cHash, etwa /de/sitemap.xml?sitemap=pages&cHash=…. Wer gleichbleibende Adressen braucht, zum Beispiel für den Cache-Warmup nach dem Deploy, bildet auch den Parameter sitemap im Routing ab (Enhancer vom Typ Simple mit einem StaticValueMapper, siehe TYPO3-Dokumentation).

Prüfen: https://www.ihre-domain.de/de/sitemap.xml im Browser öffnen – es muss XML kommen, keine 404-Seite.

Eine eigene Sitemap-Bedingung verdrängt die Voreinstellung

Welche Seiten in die Sitemap kommen, regelt unter anderem die Einstellung additionalWhere. Ihre Voreinstellung lautet:

{#no_index} = 0 AND {#canonical_link} = ''

Seiten mit „noindex“ und Seiten, deren Canonical auf eine andere Seite zeigt, bleiben damit draußen. Wer additionalWhere setzt, um etwas anderes auszuschließen, ersetzt diese Bedingung vollständig. Dann stehen Seiten in der Sitemap, die Google gar nicht aufnehmen soll, und in der Search Console tauchen eingereichte URLs auf, die wegen „noindex“ ausgeschlossen sind. Eine eigene Bedingung deshalb immer an die Voreinstellung anhängen:

{#no_index} = 0 AND {#canonical_link} = '' AND …

Einzelne Seitenbäume schließen Sie einfacher mit excludePagesRecursive aus, dann bleibt additionalWhere unberührt.

Prüfen: Stichproben aus der Sitemap im Quelltext auf noindex untersuchen – oder in der Search Console unter „Seiten“ nach eingereichten URLs filtern, die ausgeschlossen sind.

Automatische Weiterleitungen sind nur vorübergehend

Ändert ein Redakteur den URL-Pfad einer Seite (Slug), legt TYPO3 automatisch eine Weiterleitung von der alten Adresse an. Das ist gut – nur verwendet TYPO3 dafür per Voreinstellung den Status 307, eine vorübergehende Weiterleitung. Google wertet vorübergehende Weiterleitungen nur als schwaches Signal dafür, dass die neue Adresse die richtige ist; die alte URL kann länger im Index bleiben. Für eine dauerhaft umgezogene Seite ist 301 der passende Status. Einstellen lässt er sich je Site, in der settings.yaml:

redirects:
  httpStatusCode: 301

Zwei weitere Einstellungen im Umfeld:

  • Nutzung zählen. Mit dem Feature-Schalter redirects.hitCount zeigt das Modul „Redirects“, wie oft eine Weiterleitung aufgerufen wurde und wann zuletzt. Erst dann lässt sich entscheiden, welche alten Weiterleitungen weg können, auf Wunsch automatisch mit vendor/bin/typo3 redirects:cleanup.
  • Widersprüche finden. vendor/bin/typo3 redirects:checkintegrity meldet Weiterleitungen, deren Quelladresse inzwischen wieder eine echte Seite ist – die Weiterleitung würde die Seite verdecken.

Prüfen: Auf der Staging-Umgebung den Slug einer Testseite ändern und im Modul „Redirects“ den Status der neuen Weiterleitung ansehen.

Sprachweiterleitung auf der Startseite: 302, nicht 301

Leitet die Startseite / Besucher je nach Browsersprache auf /de/ oder /en/ weiter, gehört dafür ein 302 her, kein 301 – egal, ob die Regel im Webserver oder in einer Extension steckt:

  • Einen 301 speichern Browser dauerhaft. Wer einmal auf /en/ gelandet ist, kommt nie wieder bei / an, auch nicht nach einem Wechsel der Browsersprache. Ein gemeinsamer Cache kann die Sprache eines Besuchers sogar an alle weitergeben.
  • Suchmaschinen verstehen einen 301 als „diese Adresse gibt es nicht mehr“ und ordnen die Startseite einer einzigen Sprache zu. Google nennt für solche Startseiten ausdrücklich die serverseitige 302-Weiterleitung und empfiehlt dazu die Angabe hreflang="x-default".
  • Die Antwort sollte Vary: Accept-Language tragen, damit auch Zwischenspeicher wissen, dass sie von der Sprache abhängt.

Die Weiterleitung auf den richtigen Hostnamen, etwa von der Adresse ohne auf die mit www, bleibt ein 301: Sie hängt nicht davon ab, wer fragt.

Prüfen: curl -I https://www.ihre-domain.de/ zeigt Status und Header der Weiterleitung.

Der Website-Titel hängt an jedem Seitentitel

TYPO3 hängt den Website-Titel aus der Site-Konfiguration (websiteTitle) an den <title> jeder Seite an. Auffällig wird das oft erst nach dem Upgrade auf TYPO3 13: Der alte Weg, den Titel per TypoScript über TSFE:tmpl auszulesen, funktioniert dort nicht mehr, also zieht er nach websiteTitle um – und steht danach in jedem Seitentitel. Ist das nicht gewollt, schaltet config.showWebsiteTitle = 0 im TypoScript es ab. Mehr zum Umzug des Titels auf der Seite Upgrade von TYPO3 12 auf 13.

Prüfen: Den Quelltext einer Unterseite öffnen und den <title> lesen.

Alles auf einen Blick

StellePrüfenRichtig ist
Sitemap/de/sitemap.xml im BrowserXML, keine 404 – je Sprache eine
Sitemap-InhaltStichproben, Search Consolekeine Seiten mit noindex oder fremdem Canonical
Weiterleitung nach Slug-ÄnderungModul „Redirects“ auf StagingStatus 301
Sprachweiterleitung auf /curl -I302 mit Vary: Accept-Language
Hostnamecurl -I auf die Adresse ohne www301
SeitentitelQuelltext einer UnterseiteTitel wie gewollt, mit oder ohne Website-Titel

Besonders viele dieser Stellen ändern sich bei einem Relaunch, wenn sich Adressen verschieben. Dann gehören Weiterleitungen und Sitemap zur Abnahme – mehr dazu auf unserer Seite zum TYPO3 Relaunch. Oder schreiben Sie uns über das Formular unten.

Stand: 24.9.2026 · Quellen: TYPO3 Explained: XML-Sitemap, EXT:redirects, TYPO3 Changelog: showWebsiteTitle, Google: Weiterleitungen und die Google-Suche, Google: Startseiten für internationale Nutzer

Erstgespräch vereinbaren

Gerne beraten wir Sie in einem kostenlosen Erstgespräch.

Was passiert nach dem Absenden?

  • Wir melden uns in der Regel innerhalb eines Werktages.
  • Wir klären kurz Ihr Anliegen und schlagen die nächsten Schritte vor.
  • Auf Wunsch vereinbaren wir ein kostenloses Erstgespräch (ca. 60 Min.).

Bitte Name angeben.

Bitte gültige E-Mail angeben.

Bitte eine Nachricht eingeben.

Danke!

Wir haben Ihre Nachricht erhalten und melden uns umgehend.