Startseite Joomla Canonical URL Modul
Joomla: Canonical URL Modul
Geschrieben von: Andreas Berger   
Freitag, den 13. Februar 2009 um 22:55 Uhr

Das bretteleben.de "Canonical URL" Modul für Joomla 1.5 erlaubt es selektiv die von Google seit Februar 2009 unterstützten Canonischen URLs (canonical url) im HEAD von Seiten zu setzen. Dies dient der Vermeidung von DuplicateContent und dem Konzentieren des PageRank auf eine Seite, wenn diese unter mehreren URLs erreichbar ist.

bretteleben.de "Canonical URL" Modul für Joomla 1.5

Das bretteleben.de Canonical URL Modul ist mit Joomla 1.5 einsetzbar.

Das Modul bietet 10 Parameter-Paare, mit denen die tatsächliche URL modifiziert und für das Setzen des TAGs <link rel="canonical" href="/gewünschter Link"> aufbereitet werden kann. Beginnend mit Version 1.1 können mehrere Instanzen des Moduls die URL einer Seite bearbeiten. Dies erfolgt in der Reihenfolge, in der die Module im Backend angegeben sind.

Neu in Version 1.1:

-mehrere Instanzen kumulierend möglich

Features:

- ersetzen einzelner Teile des Pfades
- entfernen unerwünschter GET-Parameter

- setzen einer fixen canonischen URL

Installation und Verwendung

1.) Das Modul über das Backend hochladen.
2.) Das Modul für alle oder einzelne Menüpunkte aktivieren.
3.) Parameter:
Es stehen zehn Parameter-Paare zur Verfügung.
Jedes Paar besteht aus dem text, der gesucht und dem Text, mit dem er ersetzt werden soll.

Beispiel: Joomfish wird verwendet, es sind aber noch nicht alle Seiten übersetzt. Um zu verhindern, dass man von Google für DuplicateContent abgestraft wird, setzt man bei noch nicht übersetzten Seiten die Originalseite als canonische URL.

Rule01: Find part of URL: lang-en
Rule01: Set part of URL: lang-de

Damit wird auf diesen Seiten die deutsche Version als Canonical URL gesetzt.


Beispiel2: Man verwendet yvComment, möchte jedoch nicht, dass die Unterseiten mit den Artikeln 10-20, 20-30, etc. als eigene Seite indiziert werden, um den Pagerank auf die jeweilige Hauptseite zu konzentrieren.

Rule02: Find part of URL: start=
Rule02: Set part of URL:

Der Text im ersten Abschnitt endet mit einem Istgleichzeichen. Das Modul erkennt das als zu ersetzenden Parameter und ersetzt den Parameter samt den jeweiligen Werten (0,10,20, was auch immer) gegen den im zweiten Teil eingegebenen Text - in diesem Fall gegen nichts.
Hinweis: Das ? vor beziehungsweise das & (oder & amp;) nach einem Parameter wird NICHT angegeben, darum kümmert sich das Modul selbst.

Beispiel3: Man möchte für eine bestimmte Seite ungeachtet aller möglichen und unmöglichen auftretenden URLs eine bestzimmte URL festsetzen, unter der die Seite indiziert werden soll.

Rule03: Find part of URL:
Rule03: Set part of URL: /meine-gewuenschte-url.html

In diesem Fall bleibt der erste Teil der Regel frei. Das sagt dem Modul: ersetze die gesamte (relative) URL.

Das Modul arbeitet die gesetzten Regeln der Reihe nach ab und fügt dann den Link rel="canonical" mit der generierten URL in den Head der Seite ein.
Der Domain-Teil der URL bleibt von diesem Plugin unberücksichtigt. Alle Änderungen in diesem Bereich sollten nach wie vor per Redirect geregelt werden.

Einschränkungen:


Verbesserungsvorschläge und Vorschläge für eine Erweiterung der Funktionalität sind hochwillkommen!
Das Modul ist mit Vorsicht zu geniessen, den ein fehlerhaftes Setzen der Parameter kann dazu führen, dass Seiten aus dem Google-Index gänzlich verschwinden! Also jede getroffene Einstellung bitte im Quelltext der betroffenen Seite auf korrektes Funktionieren testen!!!
Das Modul ist kein Ersatz für das Joomla-eigene SEF-Plugin oder eine externe SEF-Erweiterung. Es ist nur eine Ergänzung!

Eine Schritt für Schritt Anleitung zu Installation und Verwendung folgt.

Demo

Im Menüpunkt Joomla: Very Simple Image Gallery ist das Modul in Verwendung und setzt den Link zur Seite als canonische URL, auch wenn es mit den GET-Parametern von yvComment aufgerufen wird (beim Blättern in den Kommentaren).

Kompatibilität

Das Modul ist unter Joomla 1.5.6, 1.5.7 und 1.5.8 erfolgreich getestet, das Zusammenspiel mit den verschiedensten anderen Erweiterungen mag aber Probleme mit sich bringen. Ich empfehle einen Testlauf vor dem Einsatz auf einer aktiven Seite und stehe für Fragen und Anregungen immer gerne zur Verfügung.

Lizenz

Das Modul ist unter der GNU Public License (www.gnu.org/copyleft/gpl.html) lizensiert.

aktuelle Version: 1.1.0

Version 1.1.0 - 2009-03-29

- Das Modul überprüft ob von einer anderen Instanz bereits eine canonische URL gesetzt wurde und bearbeitet diese weiter.

Version 1.0.0 - 2009-02-13

Support

Für Fragen und Anregungen steht die Kommentarfunktion zur Verfügung, Erfahrungsberichte (ob positiv oder negativ) sind hochwillkommen.

Wer die Erweiterung nutzt, hat die Möglichkeit auf joomlaos.de oder extensions.joomla.org Bewertung und Erfahrungsbericht zu posten. Darüber hinaus freue ich mich über jeden, der die Möglichkeit findet, mich durch einen Link zu www.bretteleben.de auf seiner Webseite zu unterstützen. Das Plugin selbst produziert keine versteckten Links oder sonstige Nettigkeiten welcher Art auch immer.

Download

Das ZIP-Archiv enthält das Modul, mit dem Download erklären Sie sich mit den Bestimmungen der GNU Public License einverstanden. Das ZIP-Archiv kann für Update und Neuinstallation verwendet werden.

Downloads:
DateiZuletzt bearbeitet
Diese Datei herunterladen (mod_canonical_1.1.0.zip) mod_canonical_1.1.0.zip2009-03-29
Zuletzt aktualisiert am Mittwoch, den 13. Januar 2010 um 09:10 Uhr
 
Kommentare (29)
Canonical cross-domain
29 Mittwoch, den 27. April 2011 um 09:42 Uhr
timo

Hallo,

Ich habe das Problem dass meine Seite über zwei Domains abrufbar ist und ich möchte eine als Standard definieren. Soweit ich weiß funktioniert das rel = canonical auch cross Domains. Lässt sich dass mit Deinem Modul abbilden?


Danke!!

@timo
Mittwoch, den 27. April 2011 um 20:52 Uhr
A. Berger

Hallo timo!

Dafür ist dieses Modul eigentlich nicht gedacht. Ich würde das eher über einen echten 301-redirect am DNS einer der Domains oder zur Not noch über die .htaccess Datei lösen. Alles Andere ist meiner Ansicht nach Stückwerk und auf Dauer nicht zielführend.

Gruß
Andreas

Alles klar!
28 Donnerstag, den 17. März 2011 um 09:44 Uhr
Thomas

Hallo Andreas,

danke für die Info. Ich dachte, dass das Tool auch eine von außen erkennbare Umleitung bewirken würde, aber die braucht man dann ja gar nicht. Vielen Dank nochmal!

Herzliche Grüße
Thomas

@Thomas
Montag, den 04. April 2011 um 19:55 Uhr
A. Berger

Hallo Thomas!

Naja, theoretisch lassen sich die ganzen Parameter schon mit einzelnen Regeln erfassen, aber es ist ziemlich mühsam.
Wenn Deine Seite eine Zeitlang ohne SEF-URLs online war und dementsprechend viele Varianten herumgeistern, dann bist Du vermutlich mit der Erweiterung "Redirect for Joomla!1.5" am besten beraten (extensions.joomla.org/extensions/site-management/url-redirection/14676).
Das ist ein Backport der - in Joomla!1.6 im Core enthaltenen - Komponente, die es Dir erlaubt, URLs umzuleiten. Damit kannst Du die nicht-SEF URLs als kompletten String eingeben und als Ziel die entsprechende SEF-Url angeben.
Das ist ein anderer Ansatz als die Canonical URL, aber in diesem Fall ist es sicher der bessere Weg um die nicht-SEF URLs langfristig komplett wegzubekommen.

Gruß
Andreas

Noch vieleDC-Varianten
Montag, den 04. April 2011 um 08:10 Uhr
Thomas

Hallo Andreas,

ich bins nochmal. Mit der site-Abfrage bei Google site:www(dot)english-for-children(dot)com habe ich festgestellt, dass da noch etliche Varianten herumschwirren:
"index.php?option=com_content&view=frontpage&Itemid=1〈=de" und "www.english-for-children.com/?option=com_content&view=article&id=4&Itemid=3"

Ich habe versucht, das mit
index.php?option=
und
/?option=
auf ein leeres Feld umzuleiten, aber da passiert nichts. Hast Du eine Idee?

Gruß
Thomas

HomePage
27 Mittwoch, den 16. März 2011 um 12:42 Uhr
Elad

Greetings!

First of all, I would like to thank you very much for this great module.
Easy to use and effective, BRAVO!
The one thing that bothers me is that all of the examples and comments refer to the suffix of the URLs, but what about the PREFIX?
I mean, how do you turn http://mysite.com to http://www.mysite.com?

Thanks!

@Elad
Mittwoch, den 16. März 2011 um 21:39 Uhr
A. Berger

Hi Elad!

Changing the Sub-Domain is - intentionally - out of the scope of this module. To prevent duplicate content because your content is available through domain.com AND the sub-domain www.domain.com please use a permanent redirect (301) in your .htaccess-file (search Google for "redirect 301 htaccess") and - in addition - I would create an account at Google Webmaster Tools (http://www.google.com/webmasters/tools/), verify the domain and use "Site Configuration" > "Settings" > "General Settings" > "Preferred Domain" to specify if you want Google to index your pages with or without the subdomain "www". This works fine for me.

Best regards
Andreas

Nichts passiert
26 Dienstag, den 15. März 2011 um 12:04 Uhr
Thomas

Hallo Andreas,

ich versuche auf www(dot)english-for-children(dot)com mit Deinem Tool cannonical urls zu erstellen. Bisher folgende Einstellungen:

Rule01: Find part of URL start.html
Rule01: Set part of URL
Rule02: Find part of URL  en
Rule02: Set part of URL  de

Leider passiert rein gar nichts. Bitte um Hilfe. Danke
Thomas

@Thomas
Mittwoch, den 16. März 2011 um 21:46 Uhr
A. Berger

Hallo Thomas!

Also soweit ich das sehe, funktioniert das Modul einwandfrei. Im Quelltext der Seite http://www.english-for-children.com/en/start.html findet sich der TAG rel=canonical und als canonical URL ist "http://www.english-for-children.com/de/" gesetzt.
Es werden also beide Regeln korrekt angewendet. "start.html" wird entfernt und "en" wird durch "de" ersetzt.

Gruß
Andreas

Passiert leider immer noch nix
Mittwoch, den 16. März 2011 um 10:02 Uhr
Thomas

Hallo Andreas,
danke für die Antwort.

a) das Modul ist aktiviert
b) mit Seiten ausgewählt meinst Du den Punkt "Menüzuweisung"?! Dort habe ich "alle Menüs" ausgewählt.
c) Bei den Modulpositionen hatte ich tatsächlich eine nicht existierende ausgewählt. Aber auch wenn ich das ändere, passiert nicht wirklich was.

Fazit: Es klappt noch nicht so wie es soll. Bitte nochmals um Hilfe. Danke

Thomas

@Thomas
Dienstag, den 15. März 2011 um 21:03 Uhr
A. Berger

Hallo Thomas!

Hast Du das Modul (a) aktiviert und (b) die Seiten, auf denen es angewendet werden soll in den Einstellungen des Moduls ausgewählt und ist - zu guter Letzt - (c) die Modulposition, der Du das Modul zugewiesen hast, in Deinem Template auch vorhanden?

Gruß
Andreas

canonical tag
25 Freitag, den 25. Februar 2011 um 01:20 Uhr
Andriy

Mein vorhaben:

auf: http://www.burnfree.info/burnfree.html

canonical tag ersheinen lassen mit: canonical  http://www.burnfree.info

da gleiches Content (Startseite die durch Zwei Knöpfe erreicht werden kann einmall durch "burnfre" im Menü links und das andere mal über "burnfree" im Menü oben)

Meine Eingabe im Canonical Module:
Rule01: Find part of URL    http://burnfree.info/burnfree.html
Rule01: Set part of URL     http://www.burnfree.info

der Canonical Tag der danach creiert wird ist: href="http://www.burnfree.info/burnfree.html" rel="canonical" />
was mache ich falsch?

danke, Grüsse aus Hannover. Andriy.

Es funktioniert, danke !
Dienstag, den 15. März 2011 um 15:39 Uhr
Andriy

Vielen Dank , Andreas.

Ich hab es so eingestellt wie Du empfohlen hast.
Jetz funktioniert es !
Auf der seite http://www.burnfree.info/burnfree-info.html
( die in Wirklichkeit absolut gleiches Content hat, wie http://www.burnfree.info ) taucht jetz:

link  href = "http:/www.burnfree.info/" rel="canonical"

Toll :)   !

Danke schön,
Andriy.

@Andriy
Sonntag, den 27. Februar 2011 um 20:01 Uhr
A. Berger

Hallo Andriy!

Das Modul kümmert sich nicht um die Domain (dafür nutze bitet die .htaccess) sondern um Alles was danach kommt. "http://burnfree.info" sieht das Modul demzufolge nicht und kann es auch nicht ersetzen. Für das was Du möchtest sollte die Regel so aussehen:

Rule01: Find part of URL    burnfree.html
Rule01: Set part of URL    

Gruß
Andreas

Canonical URL Module - keine Ergenbisse
24 Donnerstag, den 24. Februar 2011 um 10:33 Uhr
Fred

nutze das bretteleben mod_canonical (bei anderen Projekten positive Erfahrungen gemacht)

Nutze in der .htaccess:

# mod_rewrite in use
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.versandapotheke-versandkostenfrei24\.de$
RewriteRule ^(.*)$ http://www.versandapotheke-versandkostenfrei24.de/$1 [L,R=301]

canonical plugin aktiv und Domain erfolgreich gecheckt.
leider werden keine canonical tags generiert, ich habe es schon mit einigen ,,Rules" im Modul versucht, auch nix.
Vielleicht hat jemand einen Tipp (Könnte es am Template liegen?)
Hier die addy: http://www.versandapotheke-versandkostenfrei24.de

Danke im voraus

@Fred
Donnerstag, den 24. Februar 2011 um 20:08 Uhr
A. Berger

Hallo Fred!

Nachdem mittlerweilen der TAG im HEAD vorhanden ist - was war denn das Problem?

Gruß
Andreas

Using this module with sh404sef
23 Donnerstag, den 10. Februar 2011 um 05:24 Uhr
Ian Thatcher

I have attempted to use this module with the sh404sef component enabled, the urls produced by the module are the non SEF version so not appropriate for a canonical version.
Can this module output the sh404SEF url ?
If so how can I get the module to display this form of the url ?

Thatch

@Ian Thatcher
Donnerstag, den 10. Februar 2011 um 17:48 Uhr
A. Berger

Hi Thatch!

If sh404SEF modifies the URL after the point in building a page than this module is executed, it has no chance to modify the sh404SEF-URL. As sh404SEF is a commercial extension, I have not tested against it but if the scenario is as suggested, the module will not work with it.

Best regards
Andreas

SEF und Joomla URL
22 Sonntag, den 06. Februar 2011 um 16:11 Uhr
Achmed

Hallo,

Modul installiert und funktioniert sofort! Dafür schon mal ein großes Kompliment.
Eine Frage hab ich aber doch:

Ich verwende SefAdvance, trotzdem lassen sich die Seiten auch "normal" aufrufen. Beispiel:
http://www.yuu-skydive.de/tandemsprung_hamburg/tandemspringen.html

lässt sich auch als
http://www.yuu-skydive.de/index.php?option=com_content&view=article&id=16&Itemid=16

aufrufen. Klassischer Fall von "duplicate content". Mein Lösungsansatz:
Rule01: Find part of URL = /index.php?option=com_content&view=article&id=16&Itemid=16
Rule01: Set part of URL = /tandemsprung_hamburg/tandemspringen.html


Das klappt auch soweit, nur wenn die SEF-URL selbst aufgerufen wird, fügt das Modul trotzdem den Canonical-Link ein.
Ist das nicht doppel gemoppelt, sprich, mach ich mir damit die nächste Baustelle bei Google auf?

Gruß Achmed

@Achmed
Montag, den 07. Februar 2011 um 21:02 Uhr
A. Berger

Hallo Achmed!

Ich heisse zwar nicht Peter, aber trotzdem: Gern geschehen! :)

Gruß
Andreas

AW: SEF und Joomla URL
Montag, den 07. Februar 2011 um 18:47 Uhr
Achmed

Hallo Peter,

vielen Dank für deine prompte Antwort.
Das hätte ich auch so gedacht. Witziger Weise hat Herr Google aber irgendwie fast den gesamte "statischen" Inhalt auch mit nicht SEF-URL's indexiert. Warum auch immer? Ich hab keine Ahnung!
Anyway! Dein Modul funzt prima und wenn der "DoppelMoppel" nix macht, dann bekommt Herr Google eben noch ein paar generierte Canonical-Links verpasst und gut ist!

Vielen Dank noch mal und weiter gutes Gelingen!
Gruß Achmed

@Achmed
Sonntag, den 06. Februar 2011 um 19:17 Uhr
A. Berger

Hallo Achmed!

Zu Deiner Frage: Nein, wenn die URL, die man aufruft mit der canonical URL im Quelltext übereinstimmt, dann ist das absolut kein Problem.

Zu Deiner Vorgehensweise: Die Frage ist nicht, unter welcher URL eine Seite theoretisch aufgerufen werden kann sondern unter welcher sie praktisch aufgerufen werden kann. Selbst wenn alle Seiten Deiner Webseite unter Umgehung von SefAdvance aufrufbar sind, solange sie mit dieser URL nirgends verlinkt sind - ist das absolut irrelevant: Woher sollte ein Spider denn diese URLs kennen? Tut er nicht.

Also, wenn die Verwendung von SefAdvance durchgängig ist und nirgends die nicht-modifizierten URLs aufscheinen, dann kannst Du Dir den Einsatz des Canonical URL Moduls - und eine Menge Arbeit - eigentlich sparen. :)

Gruß
Andreas

home page with JoomFish
21 Dienstag, den 01. Februar 2011 um 14:26 Uhr
Pieter

Works like a charm.. I only have got a small (or big) question...

I am using Joomfish on my site with 6 different languages.. I know how to set the module when there's no translation and english (default) should be in the canonical URL.
But how to set this... on the home page when I click another language (flag) I get the canonical URL with the extra /xx/  for the language.
www.domain.tld/xx/... then I go onward when I click home/accueill/start... in that particular language the canonical turns back into www.domain.tld ...no language in the canonical.
You can check at www.airshelter.com
Hope I did explain it a bit in a way you can understand ... sorry if I didn't... also the solution might be obvious and I didn't see.... call me stupid then :)

Regards,
Pieter


 

@Pieter
Dienstag, den 01. Februar 2011 um 21:52 Uhr
A. Berger

Hi Pieter!

The reason for this behavior is not caused by the module but by your main menu. Run a test:

a.)
- open the homepage
- change the language
- click an internal link
- click the back button in your browser
- open the source of the homepage: the canonical URL shows the set language

b.)
- open the homepage
- change the language
- click an internal link
- click the link to the homepage in the top menu
- open the source of the homepage: the canonical URL does not show the set language

The reason is, that the link goes to www.airshelter.com directly and not the link of the translated-page (e.g. www.airshelter.com/es.html). I guess you have to modify the main menu to have this link reflecting the URL of the translated page.

Best regards
Andreas

Final "?" at the end of url
20 Freitag, den 28. Januar 2011 um 02:51 Uhr
Nicolas

First of all, many thanks for this fabulous module.

I began to work with it tonight and I solved many problems. Here is however a question. I used rules to eliminate the end of url in the canonical tag, for example:
http://www.healthhappinessmag.com/free-ebooks/cat_view/16-free-best-sellers-ebooks/18-personal-growth.html?limit=5&limitstart=0&order=date&dir=ASC
Everything works, except the final "?" at the end...
Now, my canonical tag for the above url is: http://www.healthhappinessmag.com/free-ebooks/cat_view/16-free-best-sellers-ebooks/18-personal-growth.html?


There is stille the "?". Is there a way to remove it ?
I use the docman component with Joomla 1.5.20

Thanks !

@Nicolas
Sonntag, den 30. Januar 2011 um 21:53 Uhr
A. Berger

Hi Nicolas!

The rules look fine so maybe this is a bug of the module. I will run tests to check this. Meanwhile - and if you are sure that the parameters you are already removing are the only parameters on the pages you are using the module - you could add a fifth rule to remove the question mark explicitly:

Find part of URL: ?
Set part of URL:

Best regards
Andreas

The rules I use
Sonntag, den 30. Januar 2011 um 20:36 Uhr
Nicolas

To put off the bad part of url, I use those rules:

limit=
limitstart=
order=
dir=


I put this in the first part of the rule parameter and I let empty the second part of the rule because I want the first part remplaced by nothing (just to erase it).

Thanks,
Nicolas

@Nicolas
Sonntag, den 30. Januar 2011 um 19:53 Uhr
A. Berger

Hi Nicolas!

Up till now I cannot say what causes this behavior. Could you please post the rules you are using on this page?

Best regards
Andreas

Deutsch
Panoramic Image Viewer
Follow me on Google+

bretteleben.de

Add to circles

Wer ist online
Wir haben 74 Gäste online