T3SEO

TYPO3 and SEO since 2011

Canonical Tag und TYPO3

Die wohl am meisten unterschätzte SEO-Maßnahme ist das Setzen eines Canonical-Tags, dabei sollte das auf keiner Website fehlen. Warum die Canonical-Angabe so wichtig ist, wie man sie einsetzt und was TYPO3-spezifisch zu beachten ist, zeigt dieser Artikel.

Aufgaben des Canonical-Tags

Das Canonical-Tag gibt an welches die eindeutige URL für den Inhalt der angezeigten Seite ist. Klingt banal - die Seite wurde vom Client ja schon mit Ihrer URL abgerufen, oder? Leider nicht immer. Auf auf fast allen Websites können die selben Inhalte unter verschiedenen URLs abgerufen werden, was zu Duplicate Content führt. Hier einige Beispiele wie es zu so einer Situation kommen kann:

Generierung unsauberer Links

Dieser Fall lässt sich häufig beobachten: Eine Seite wird innerhalb der Website über eine unsaubere URL verlinkt. Im Zusammenhang mit TYPO3 kann das z.B. passieren wenn Links nicht durch typolink() geparst werden, realurl fehlerhaft konfiguriert ist oder bei bestimmten Shortcuts im Seitenbaum.
Dieser Fehler lässt sich normalerweise durch sauberes Arbeiten vermeiden. Ist man trotzdem in dieser Situation kann das Canonical Tag Schlimmeres verhindern.

Paginierung, Sortierung, Kategorisierung

Wenn Datensätze präsentiert werden, sind häufig Paginierung, Sortierung, Kategorisierung oder andere Mechanismen im Spiel, bei denen über verschiedene URLs gleiche oder ähnliche Inhalte angezeigt werden.
Ein klassisches Problem ist eine Produktdetailseite, bei der auch die Kategorie in der URL steckt. Wenn das Produkt aber in zwei verschiedenen Kategorien ist, gibt es hier zwei unterschiedliche URLs zum selben Inhalt.

Unsaubere Links von außen

Hat man Plugins wie eine Umfrage auf der Website, hängen diese nach Benutzung gerne Parameter wie ?voted=1 oder Ähnliches an die URL an. Nimmt der Besucher diese URL und verlinkt, twittert oder bookmarkt sie, kann es leicht passieren, dass sie es in den Index von Google schafft - natürlich wieder ein Fall von Duplicate Content.
Auch denkbar sind Tracking- oder Affiliateparameter, das böswillige Anhängen von Parametern (ob das effektiv ist, sei mal dahingestellt) oder eine auf sonstige Weise kaputte Verlinkung aus einem anderen System.
Logischerweise lassen sich solche Links nicht verhindern, aber das Canonical-Tag kann sie trotzdem unschädlich machen.

Es gibt sicherlich noch viel zu Duplicate Content zu sagen, aber das haben auch schon andere getan. Jedenfalls zeigt sich, dass sich jeder, der Websites baut, Gedanken über das Thema machen sollte.

Einsatz des Canonical-Tags mit TYPO3

Bei einer simplen TYPO3-Website ohne Plugins ist die Konfiguration des Canonical-Tags sehr einfach:

page.headerData.1422 = TEXT
page.headerData.1422 {
    stdWrap.typolink.parameter.data = TSFE:id
    stdWrap.typolink.forceAbsoluteUrl = 1
    stdWrap.typolink.returnLast = url
    htmlSpecialChars = 1
    wrap = <link href="|" rel="canonical" />
}

Hier wird das Canonical-Tag mit einem Link auf die aktuelle TYPO3-Seite gesetzt. Bei mehrsprachigen Seiten, die config.linkVars = L gesetzt haben, klappt dann auch gleich die Ausgabe der richtigen URL für die aktuelle Sprache.

URLs für Detailseiten

Hat man tt_news oder eine ähnliche Extension mit Datensätzen im Einsatz und verwendet das obige Snippet, weisen alle Detailseiten die gleiche unsinnige URL (z.B. example.com/news/detail/) aus, da wichtige GET-Parameter abgeschnitten wurden. Um diese anzuhängen darf aber auf keinen Fall die bequem erscheinende Option typolink.addQueryString = 1 benutzt werden, da sie alle evtl. vorhandenen GET-Parameter wieder aufnimmt, also auch solche die dort nicht hingehören. Stattdessen müssen die benötigten Parameter einzeln angegeben werden:

page.headerData.1422 = TEXT
page.headerData.1422 {
    typolink.parameter.data = TSFE:id
    typolink.forceAbsoluteUrl = 1
    typolink.returnLast = url
    typolink.additionalParams.cObject = COA
    typolink.additionalParams.cObject {
        10 = TEXT
        10.dataWrap = &tx_ttnews[tt_news]={GP:tx_ttnews|tt_news}
        10.if.isTrue.data = GP:tx_ttnews|tt_news
        20 = TEXT
        20.dataWrap = &tx_ttnews[cat]={GP:tx_ttnews|cat}
        20.if.isTrue.data = GP:tx_ttnews|cat
    }
    wrap = <link href="|" rel="canonical">
}

Hier werden beispielsweise die GET-Parameter tx_ttnews[tt_news] und tx_ttnews[cat] angehängt, wenn sie vorhanden sind. Welche Parameter genau in den Canonical-Tag gehören, hängt von den verwendeten Plugins und deren Konfiguration ab. Die produzierten Tags sind unbedingt gründlich zu testen, da hier Fehler dazu führen können, dass viele Seiten einfach nicht in den Index gelangen.

Mount Points und "Zeige Inhalt von Seite"

Wenn Duplicate Content auf Grund von Mount Points oder dem "Zeige Inhalt von Seite"-Feature entsteht, kann die Extension canonical von Georg Ringer weiterhelfen.
Leider erzeugt die Extension das Canonical-Tag aber nur in diesen speziellen Fällen. Wenn also das obige TS dazugenommen wird, werden evtl. zwei Canonical-Tags generiert, bzw. lässt man es weg hat man das Tag nur in diesen speziellen Fällen und ist vor vielen Arten von Duplicate Content nicht geschützt. Vielleicht kann die Extension irgendwann noch mehr, so dass sie immer sinnvolle Canonical-Tags ausgibt.

Schlussbemerkung

Ich hoffe, dass deutlich geworden ist, dass bei der Erstellung jeder Website an den Einsatz von Canonical-Tags gedacht werden sollte. Ein für alle TYPO3-Installationen gültiges Patentrezept um immer die richtigen Tags auszugeben gibt es leider nicht, aber ich hoffe, dass ich hier die Wege aufzeigen konnte.

Außerdem bleibt zu sagen, dass zur Vermeidung von Duplicate Content natürlich auch 301-Redirects gehören, die viele vorhersehbare Fälle (Slash am Ende der URL, URL-Anfang mit oder ohne www., etc.) abdecken sollten.

Nehmt euch das Canonical-Thema als guten Vorsatz mit in's neue Jahr ;)

Bildnachweis: juice von (matt) (CC BY-ND 2.0)

Canonical Tag und TYPO3