Violetter Marker markiert einen Knoten auf einem ausgedruckten Sitemap-Diagramm
SEO & Technik

SEO in TYPO3: URLs, Schema.org und Mehrsprachigkeit richtig aufsetzen

Erschienen
Patrick Schatzschneider
Lesezeit 3 Min

Technisches SEO in TYPO3 scheitert selten an fehlendem Wissen, sondern an drei konkreten Stellen: URLs, die aus Extbase-Plugins kommen und wie Datenbankabfragen aussehen; Schema.org-Markup, das im falschen Kontext landet; und hreflang-Angaben, die zwar gesetzt sind, aber die falschen Sprachcodes tragen. Dieser Artikel zeigt die Konfiguration für alle drei — mit Beispielen, die in genau dieser Form produktiv laufen. Für Entwickler und Integratoren, die eine TYPO3-Installation SEO-seitig sauber aufsetzen wollen.

Eine Checkliste, die niemand prüft, ist auch nur eine Liste.
Wo SEO in TYPO3 technisch entsteht

Ist Ihr SEO-Setup vollständig?

Ihre Prüfliste 0 von 0 bearbeitet
abgedeckt — einmal klicken zum Abhaken

Ihre Auswertung

0 markiert

    Technical SEO

    Technical SEO umfasst alle technischen Maßnahmen, die dafür sorgen, dass Suchmaschinen eine Website effizient crawlen, indexieren und verstehen können. Dazu gehören URL-Struktur, Ladezeit, strukturierte Daten, XML-Sitemaps und die korrekte Auszeichnung von Sprachvarianten.

    Abgrenzung

    Im Gegensatz zu Content-SEO (Keyword-Recherche, Texterstellung) und Off-Page-SEO (Backlinks) betrifft Technical SEO ausschließlich die infrastrukturelle Basis. Es macht schwache Inhalte nicht stark — aber es sorgt dafür, dass starke Inhalte überhaupt ankommen.

    Ohne RouteEnhancer hängt an jeder Blog-URL noch das Extbase-Parameter-Fragment.

    Clean URLs für Extbase-Plugins

    Statische Seiten bekommen ihre sprechende URL in TYPO3 automatisch über das Slug-Feld. Das Problem beginnt bei Plugins: Ein Blog-Artikel, der über ein Extbase-Plugin ausgeliefert wird, landet ohne Konfiguration bei einer URL mit Parameter-Anhang.

    Die Lösung ist ein RouteEnhancer in der Site-Konfiguration. Der PersistedAliasMapper verbindet dabei das Slug-Feld des Datensatzes mit dem URL-Pfad — die Adresse bleibt also stabil, solange der Slug stabil bleibt.

    yaml
    routeEnhancers:
      BlogArticle:
        type: Extbase
        limitToPages:
          - 42
        extension: Blog
        plugin: Pi1
        routes:
          - routePath: '/{article-slug}'
            _controller: 'Article::detail'
            _arguments:
              article-slug: article
        defaultController: 'Article::list'
        aspects:
          article-slug:
            type: PersistedAliasMapper
            tableName: tx_blog_domain_model_article
            routeFieldName: slug
    Aus der Site-Konfiguration eines produktiven Blogs — `limitToPages` zeigt auf den Ordner mit den Artikeln

    Slugs, die stabil bleiben

    TYPO3 erzeugt Slugs automatisch aus dem Titel. Über generatorOptions im TCA steuern Sie, welche Felder einfließen und wie zusammengesetzt wird. Umlaute werden dabei korrekt transkribiert (ä → ae, ü → ue) — hier müssen Sie nichts nachbessern.

    Wichtiger ist, was bei Änderungen passiert: Sobald sich ein Slug ändert, legt EXT:redirects automatisch eine 301-Weiterleitung an. Das ist genau das Verhalten, das Sie wollen — vorausgesetzt, die Extension ist installiert und die alten Weiterleitungen werden nicht regelmäßig aufgeräumt. Prüfen Sie das, bevor Sie eine Seitenstruktur umbauen. Was beim größeren Umbau zu beachten ist, steht in der Redirect-Strategie.

    Strukturierte Daten ohne Widersprüche
    Schema.org

    Schema.org ist ein gemeinsames Vokabular von Google, Microsoft, Yahoo und Yandex zur strukturierten Auszeichnung von Webinhalten. Als JSON-LD im Head einer Seite eingebettet, hilft es Suchmaschinen, Inhalte einzuordnen und als angereichertes Suchergebnis darzustellen.

    Abgrenzung

    Open-Graph-Tags steuern die Darstellung in sozialen Netzwerken, Schema.org die Interpretation durch Suchmaschinen. Beides schließt sich nicht aus und sollte parallel gesetzt werden.

    Organization-Markup gehört einmal auf die Seite — nicht auf jede Unterseite. Mehrfach ausgeliefert wird daraus ein Widerspruch, keine bessere Sichtbarkeit.

    Schema.org einbinden — und wo es schiefgeht

    Für Organisationsdaten genügt ein TypoScript-Block im headerData. Der häufigste Fehler dabei ist nicht die Syntax, sondern der Geltungsbereich: Das Organization-Markup gehört einmal auf die Website, typischerweise auf die Startseite — nicht auf jede Unterseite. Mehrfach ausgeliefert erzeugt es keine bessere Sichtbarkeit, sondern widersprüchliche Signale.

    Für Artikel- und Breadcrumb-Markup nutzen Sie besser die Schema-API des Cores (EXT:seo), weil sie den Seitenkontext kennt und Duplikate vermeidet.

    typoscript
    page.headerData.100 = TEXT
    page.headerData.100 {
        value (
    <script type="application/ld+json">
    {
        "@context": "https://schema.org",
        "@type": "Organization",
        "name": "Mein Unternehmen",
        "url": "https://www.beispiel.de",
        "logo": "https://www.beispiel.de/logo.png",
        "sameAs": [
            "https://www.linkedin.com/company/beispiel"
        ]
    }
    </script>
        )
    }
    Gehört auf die Startseite, nicht in jedes Template
    Mehrsprachigkeit, sauber ausgezeichnet
    de statt de-DE reicht nur, solange es nur eine deutsche Variante gibt.

    Mehrsprachigkeit: hreflang korrekt setzen

    Bei mehrsprachigen Installationen entstehen die meisten SEO-Probleme nicht durch fehlende, sondern durch falsche hreflang-Angaben. Drei Fehler sehen wir regelmäßig:

    Fehlende Fallback-Konfiguration. Ohne definierten Fallback liefert TYPO3 für nicht übersetzte Seiten einen 404 statt einer sinnvollen Alternative.

    Duplicate Content ohne Auszeichnung. Identische oder sehr ähnliche Inhalte in mehreren Sprachvarianten ohne hreflang-Verknüpfung konkurrieren miteinander.

    Zu grobe Sprachcodes. de statt de-DE funktioniert, solange es nur eine deutschsprachige Variante gibt. Sobald de-AT oder de-CH dazukommen, ordnet Google nicht mehr zuverlässig zu.

    Wichtig ist außerdem der x-default-Eintrag: Er sagt Google, welche Version ausgeliefert werden soll, wenn keine Sprachvariante passt.

    html
    <f:for each="{languageMenu}" as="item">
        <link
            rel="alternate"
            hreflang="{item.hreflang}"
            href="{item.link}"
        />
    </f:for>
    <link
        rel="alternate"
        hreflang="x-default"
        href="{f:uri.page(pageUid: currentPageUid, language: 0, absolute: 1)}"
    />
    Der x-default-Eintrag am Ende wird am häufigsten vergessen

    If you have multiple versions of a page for different languages or regions, tell Google about these different variations. Doing so will help Google Search point users to the most appropriate version of your page by language or region.

    Nächste Schritte

    Häufig gestellte Fragen

    Beides erfüllt unterschiedliche Aufgaben. Die Site-Konfiguration steuert URLs und Sprachen, EXT:seo liefert Meta-Felder, XML-Sitemap, Canonical-Handling und die Schema-API. Für eine produktive Website brauchen Sie beides — EXT:seo ist Teil des Cores und muss nur aktiviert werden.

    Weil für das ausliefernde Plugin kein RouteEnhancer konfiguriert ist. Ohne ihn erzeugt Extbase eine Parameter-URL. Mit PersistedAliasMapper verwenden Sie stattdessen das Slug-Feld des Datensatzes. Achtung beim Nachrüsten: Die alten Parameter-URLs sind unter Umständen bereits indexiert und brauchen Weiterleitungen.

    Über den Rich Results Test und den Schema Markup Validator. Beide zeigen Syntaxfehler und fehlende Pflichtfelder. Was sie nicht prüfen, ist der Geltungsbereich — dass Organization-Markup nur einmal ausgeliefert wird, müssen Sie selbst kontrollieren.

    Nein, strukturierte Daten sind kein Ranking-Faktor. Sie erhöhen die Chance auf angereicherte Suchergebnisse und helfen Suchmaschinen beim Einordnen von Inhalten — was sich indirekt auf die Klickrate auswirkt.

    Teilen

    Nächster Schritt

    Technisches SEO in Ihrer TYPO3-Installation. Erst messen, dann anfassen.

    Wir sehen uns Site-Konfiguration, Routing, strukturierte Daten und Sprachsetup an — und sagen, was tatsächlich Wirkung hat.

    Lieber anrufen? 09075 5923957 Mo–Fr, 8–18 Uhr

    Patrick Schatzschneider Patrick Schatzschneider Geschäftsführer
    Die meisten SEO-Probleme in TYPO3 sind Konfigurationsfehler, keine Content-Probleme. Das ist die gute Nachricht.

    Vibe Digital GmbH · gegründet 2020 · Raum Ulm

    1. Sie schreiben mit URL und TYPO3-Version
    2. Wir antworten in unter 3 Stunden ein Mensch, kein Ticketsystem
    3. 30 Minuten Gespräch mit konkreten Prüfpunkten
    Über uns