HowTo: Einbinden von canonical in den Header mit TYPO3

Das „canonical“-Tag ist in aller Munde. Es dient dazu duplicate content für die Suchmaschinen identifizierbar zu machen.

Unter TYPO3 hat man automatisch schon doppelte Inhalte, da eine Seite z.B. unter: www.domain.de/index.php?id=1 oder unter www.domain.de/?id=1 erreichbar ist. Die Beispiele lassen sich natürlich beliebig fortsetzen.

Da TYPO3 das (noch) nicht von Haus aus als headerData mitbringt, müssen wir das halt händisch basteln.

Um einen enstprechenden Tag in der Form

<link href=“http://www.domain.de/seite.html“ rel=“canonical“/>

zu bekommen, bemühen wir mal ein bisschen TypoScript und basteln uns etwas zusammen:

# baseURL setzen (falls nicht schon vorher geschehen) WICHTIG den / am Ende nicht vergessen
config.baseURL = http://www.domain.de/

# holen des URL-Teil hinter dem ersten /
temp.activepage = TEXT
temp.activepage.typolink {
parameter.data = TSFE:id
returnLast = url   
}

# Erstellung des Header-Link-Tag in mehreren Teilen
page.headerData = COA
page.headerData.10 = TEXT
page.headerData.10 {
value = <link rel=“canonical“ href=“

page.headerData.20 = TEXT
page.headerData.20 {
value < config.baseURL
}  
page.headerData.30 < temp.activepage
page.headerData.40 = TEXT
page.headerData.40 {
value = “ />  
}

Bei meinem kleinen Test hat das ganze sowohl auf einer Seite mit index.php?id=XY als auch mit RealURL funktioniert. Besonders schön ist, das durch die Nutzung der TYPO3 Linkerzeugung auch bei Aufruf einer Seite via index.php-Parameter die RealURL-Seite als canonical angegeben wird.

Ebenso wird durch die Einbindung von baseURL die Variante abgefangen, dass der Webauftritt unter verschiedenen URL (z.B. www.domain.de und www.domain.com) erreichbar ist.

Wäre noch interessant, ob die Lösung auch bei anderen klappt. Wie sieht es mit CoolURI aus? Über Feedback hier als Kommentar würde ich mich freuen.