Beheben von Duplicate Content

Canonical Tag für Joomla 1.5.x und 2.5.x – Beheben von Duplicate Content schnell und einfach – Anleitung

Der Canonical (Meta) Tag ist ein im Jahre 2009 von Google selbst eingeführter Tag, um Probleme durch eine doppelte Indexierung des gleichen Inhalts (Duplicate Content) in den Griff zu bekommen.

Die grundsätzliche Problemstellung – Duplicate Content

Häufiges Beispiel für eine solche Problemstellung ist das nachträgliche Aktivieren der „Suchmaschinenfreundliche URLs“ in Joomla. So groß deine Freude über die neuen schönen Links auch ist, so schnell produzierst du dadurch Duplicate Content.
Auch deine Startseite kann schnell doppelt bei Google vertreten sein, da z.B. „www.deine-domain.de“ und „www.deine-domain.de/index.html“ in der Regel identisch abgerufen werden können. Häufig führt auch der Parallelbetrieb von HTTP und HTTPS (SSL) zum identischen Problem.
Es gibt noch zahlreiche weitere Gründe warum neben „www.deine-domain.de/ein-super-inhalt“ auch Seiten wie „http://www.deine-domain.de/index.php?option=com_content&view=article&id=2&Itemid=102“ im Index landen.

Das Canonical Tag als Retter, wenn es eigentlich schon zu spät ist

Ist ein Inhalt bereits mehrfach im Google Index vertreten oder schlimmer: bereits unter verschiedenen URLs von Dritten verlinkt, kann das Canonical Tag helfen! Es dient genau in diesen Fällen dazu, die ursprüngliche Quelle des Inhalts anzugeben und damit etwaige Umleitungsorgien und dergleichen zu vermeiden.
Konkretes Beispiel: Findet Google einen Inhalt über eine anderen Adresse als die gewünschte – z.B. „http://www.deine-domain.de/index.php?option=com_content&vie…“ und der Canonical Tag ist auf „www.deine-domain.de/ein-super-inhalt“ gesetzt, so kann man Google damit mitteilen, dass dieser Text kein neuer Inhalt ist, sondern nur einen Verweis auf einen bestehenden Inhalt unter „/ein-super-inhalt“ darstellt.
Dadurch spaltet sich die Power deines Inhalts nicht mehr auf, sondern bleibt da wo sie hin gehört. Dies klappt sogar bei PDFs, jedoch dazu in einem späteren Beitrag mehr.

Wie das Canonical Tag in Joomla korrekt setzen?

Joomla besitzt leider ab Werk keine Funktion für das setzen des Canonical Tag’s. Hier muss man selber ran. Ziel ist es den zum Inhalt passenden Menüpunkt zu finden und dessen SEO-URL (Alias-Wert des Menü-Eintrages) als Tag-Wert zu setzen.
Soweit so gut, die Frage der Umsetzung war ein Grund zur Diskussion. Letztlich entschieden wir uns, das Setzen des Canonical Tags direkt im Template vorzunehmen. Eine Umsetzung als Joomla-Erweiterung wäre jedoch ebenfalls denkbar, ist aus unserer Sicht aber nicht nötig.

Wir programmierten eine kleinen PHP-Script-Block, der die SEO-URL zum aktuell angezeigten Beitrags mit Hilfe der Joomla-API abruft. Um diesen Code zu nutzen, benötigt man nur vier einfache Schritte:

  1. canonical-tag.zip“ herunterladen und „canonical_tag.php“ in dein Template-Verzeichnis (z.B. „/htdocs/deine-seite/templates/beez5/„) entpacken
  2. index.php“ deines Templates öffnen und die Zeile mit dem Inhalt „“ suchen
  3. Direkt unter dieser Zeile anschließend folgende neue Zeile einfügen „„. Das Ganze sollte dann wie folgt aussehen:
  4. index.php“ speichern und deine Seite neuladen. In deinem erzeugten HTML-Quellcode ist nun ein neuer Tag eingefügt worden:

Das war’s schon. Prüfe die korrekte Funktion durch die Eingabe eines nicht SEO Links, der zuvor als Duplicate Content lokalsiert wurde. Der Wert des Canonical Links sollte deinem SEO-Link für diesen Beitrag entsprechen.

Wichtige Hinweise:

  • Natürlich müssen in Joomla die „Suchmaschinenfreundliche URLs“ aktiviert sein, damit die Lösung a) funktioniert und b) überhaupt Sinn macht.
  • Sollte deine Seite unter HTTP und HTTPS erreichbar sein, kannst du die Variable $force_http_base auf true setzen. Dies bewirkt, dass der canonical-Wert immer mit „http://“ beginnt, egal ob über https oder http aufgerufen.
  • Sollte dein Inhalt über mehrere Domains inkl. Subdomains erreichbar sein, wird nur je Domain ein Canonical Tag gesetzt. Aus SEO-Sicht ist diese Voraussetzung in jedem Fall elementar und sollte durch entsprechende Umleitungen am Webserver oder per .htaccess sichergestellt werden! Beachte dabei, dass bereits www.deine-domain.de und deine-domain.de zwei unterschiedliche Domains darstellen, die per HTTP 301-Umleitung auf eine einzige Stammdomain zeigen sollten!
  • Der Code wurde mit Joomla 1.5.x und 2.5.x getestet.
  • Wenn das Skript den Artikel nicht ermitteln kann, z.B. weil kein Artikel angezeigt wird, sondern der Inhalt einer Joomla-Erweiterung (Kontakt-Formular etc.), dann setzt das Skript auch kein Conanical Tag. Nur Artikel bzw. Beiträge führen zu einem setzen des Tags.

Sollte dir ein Bug auffallen, so freuen wir uns über eine kurze Mail mit Fehlerbeschreibung an: info@concept-br.de.

In späteren Beiträgen erfahrt ihr, wie man das Canconcial Tag einsetzt, um die Druckansicht und die PDF-Erzeugung von Joomla gegen die doppelte Indexierung zu schützen und die Linkpower eines verlinkten PDFs voll mitnimmt.

UPDATE 02/2013:
Christoph hat mich auf einen Bug in Zusammenhang mit der Kategorieverarbeitung hingewiesen. Es kann hier zu falschen canoncial tags kommen da der ID Wert falsch verarbeitet wird. Christoph war so nett und bot gleich eine Lösung, die ich direkt übernommen habe. Ihr findet das aktualisierte Skript unter dem alten Link (v0.2.3). Danke nochmal an Christoph an dieser Stelle!