Seit neuestem haben sich ja einige der großen Suchmaschinen auf die Veröffentlichung des sog. CANONICAL Tags geeinigt. Der Canonical-Tag soll grob gesprochen die Indizierung eines Inhalts unter mehreren Seiten-URLS verhindern (Bsp.: Wenn ein externer Link z.B. Affiliate-Parameter enthält). Hierzu kann im HEAD-Bereich der Website ein Tag mit der Original-Referenz eingefügt werden, welche dann auch als einzige indiziert wird und in den Ergebnisseiten auftaucht:
Link vom Affiliate-Partner: http://www.marit.ag/leistungen/typo3/index.html?xy_3=7893aF
Link aus einer Extension: http://www.marit.ag/index.php?id=87
Canonical Referenz und zu indizerende URL: <link rel=”canonical” href=”http://www.marit.ag/leistungen/typo3/index.html” />
Um das in TYPO3 clever zu lösen, hat Sven ein TypoScript gebaut, welches die ganze Thematik recht treffend löst. Das TypoScript baut den aktuellen Link mit Berücksichtigung aller erlaubter URL-Parameter mithilfe des cHash auf. Alle von TYPO3 nicht explizit erlaubten URL-Parameter fliegen dann raus. Das klappt soweit mit allen Extensions, die sich der cHash-Logik bedienen, z.B. tt_news, cal :
lib.canonical = TEXT lib.canonical { typolink { parameter = {page:uid} parameter.insertData = 1 useCacheHash = 1 # add all get parameters from the current URL addQueryString = 1 addQueryString.method = GET # remove the page id from the parameters so it is not inserted twice addQueryString.exclude = id returnLast = url } #Eckige Klammern mit spitzen Tag-Klammern ersetzten: wrap = [link rel="canonical" href="http://www.marit.ag/|" /] } page.headerData.930 < lib.canonical
PS: das haben die Amigos von fladi.de und COMSOLIT Blog nicht hinbekommen 😉
klingt vielversprechend,
allerdings fehlt wird der wrap nicht angezeigt.
Danke, die spitzen Klammern hats bei der Eingabe zerschossen.
Danke für das script
reinkopieren, Klammern anpassen, baseUrl und fertig
:))
Es gibt nun auch eine Extension von Georg Ringer, welche scheinbar interne Duplikate (Mountpoints) erkennt und mit dem Canonical Tag ausweist:
http://typo3.org/extensions/repository/view/canonical/1.0.0/info/
Das funktioniert zwar, leider wird der cHash bei mir auch in allen Seiten eingefügt, die ihn gar nicht brauchen.
Gibt es dafur eine gute Lösung? Mit fällt nur ein, jeweils für die Seiten das typoscript einmal mit und einmal ohne addQueryString zu kopieren.
Schickes TS-Script.
Alternativ bietet sich noch die Extension von Georg Ringer an:
http://typo3.org/extensions/repository/view/canonical/1.0.0/info/
ich habe ein problem. ich möchte gerne einen parameter ausschließen bei der erzeugung des canonical tags.
hier mein code:
lib.canonical = COA
lib.canonical.10 = TEXT
lib.canonical.10 {
typolink {
parameter = {page:uid}
parameter.insertData = 1
useCacheHash = 1
addQueryString = 1
addQueryString.method = GET
addQueryString.exclude = id,region
returnLast = url
}
wrap =
if.isFalse.field = canonical
}
lib.canonical.20 = TEXT
lib.canonical.20 {
wrap =
data = page : canonical
insertData = 1
if.isTrue.field = canonical
}
page.headerData.930 < lib.canonical
addQueryString.exclude = id,region sollte dafür sorgen, dass id und region nicht bei der generierung beachtet werden, oder habe ich da etwas falsch verstanden?
gibt es eine möglichkeit einen parameter auszuschließen?
jemand eine idee?
Das ganze funktioniert gut, hat aber einen wesentlichen Hacken.
coole_seite.html und coole_seite.html?L=0 (bzw. gehached) sind 2 identische Seiten. Dieses Skript erkennt die Seiten aber nicht als identisch an.
Noch ein Nachtrag zu meinem Kommentar. Das Problem mit L=0 konnte ich wie folgt lösen:
lib.canonical.typolink.addQueryString.exclude = id,L
Damit wird L ignoriert. Damit es bei L=1 nicht ignoriert werden soll, sollte man noch das hier hinzufügen:
[globalVar = GP:L = 1]
lib.canonical.typolink.addQueryString.exclude = id
[global]
Das ganze habe ich allerdings nur mir simulateStaticDocuments getestet.
Vielen Dank für dieses hilfreiche Skript! Ich habe vergeblich versucht, das TS des Kollegen Fladi einzubinden und bin mit meinem tt_news gescheitert. 🙂
Cheers – Peter
Die Lösung hier funktioniert zwar was das Generieren des kanonischen Link-Tags angeht, allerdings bleibt bei der Verwendung von tt_news das Problem bestehen, dass wenn man eine News in mehreren Kategorien hat für jede dieser Kategorien ein kanonischer Link erzeugt wird zur Detailansichtseite der News. Damit hat man wieder mehrere verschiedene Links, die auf den exakt gleichen Content linken und das ist genau das, was man nicht machen soll. Wie lässt sich das vermeiden?