Canonical-Tag

Alles rund um Module und Plugins in CONTENIDO 4.10.
Antworten
McHubi
Beiträge: 1075
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Canonical-Tag

Beitrag von McHubi » Fr 22. Mär 2019, 23:54

Um duplicate content crawlergerecht zu kennzeichnen, kann mit diesem Modul ein canonical-tag gesetzt werden. Dazu muss lediglich die idart des "eigentlichen Artikels" (der, der in den SERPs gerankt werden soll) angegeben werden.

Das Modul prüft dabei, ob der als canonical hinterlegte Webartikel ggf. offline ist, gar nicht existiert oder auf sich selbst verweist. Trifft eine der Bedingungen zu, wird im Frontend kein canonical-tag ausgespielt. Im Backend wird entsprechend darauf hingewiesen. Ist die idart okay, kann aus dem Backend heraus der angegebene Artikel direkt aufgerufen werden.

Wichtig: Das Modul muss innerhalb des <head> platziert werden.

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     canonical_sd
* Author(s)   :     Seamless-Design Markus Hübner
* Copyright   :     Markus Hübner
* Created     :     03/2019
************************************************/
$cms_value="CMS_VALUE[100]";
$cms_value_canonical_idart=intval($cms_value);
$canonical_existing="false";
if($cms_value_canonical_idart=="0") $cms_value_canonical_idart="";
else
  {
  $search = "SELECT idart,idlang,online FROM con_art_lang WHERE idart='$cms_value_canonical_idart' AND idlang='$lang'";
  $result = cRegistry::getDb();
  $result->query($search);
  while($result->nextRecord())
    {
    $array_canonical=$result->toArray();
    $canonical_existing="true";
    }
  if($canonical_existing!="true") echo '<p>canonical-idart existiert nicht und wird nicht ausgespielt!</p>';
    elseif($array_canonical["online"]!="1") echo '<p>canonical-idart ist offline und wird nicht ausgespielt!</p>';
  }
if($cms_value_canonical_idart==$idart) echo '<p>canonical-idart ist identisch mit diesem Webartikel und wird nicht ausgespielt!</p>';
echo 'canonical-idart: <input type="int" name="CMS_VAR[100]" value="'.$cms_value_canonical_idart.'"/>';
if($cms_value_canonical_idart!="" AND $canonical_existing=="true" AND $array_canonical["online"]=="1" AND $cms_value_canonical_idart!=$idart) echo '<br/><a href="http://'.$_SERVER['HTTP_HOST'].'/cms/front_content.php?idart='.$cms_value_canonical_idart.'&amp;lang='.$lang.'" target="_blank">Webartikel aufrufen</a>';

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     canonical_sd
* Author(s)   :     Seamless-Design Markus Hübner
* Copyright   :     Markus Hübner
* Created     :     03/2019
************************************************/
$canonical_idart="CMS_VALUE[100]";
if(!empty($canonical_idart) AND is_int(intval($canonical_idart)) AND $canonical_idart!=$idart)
  {
  $search = "SELECT idart,idlang,online FROM con_art_lang WHERE idart='$canonical_idart' AND idlang='$lang'";
  $result = cRegistry::getDb();
  $result->query($search);
  while($result->nextRecord()) $array_canonical=$result->toArray();
  if($array_canonical["online"]=="1")
    {
    $params = array('idart'=>$canonical_idart,'lang'=>$lang);
    $canonical_url = cUri::getInstance()->build($params, true);
    echo '<link rel="canonical" href="'.$canonical_url.'"/>';
    }
  }
  ?>
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

(NEU!) Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Antworten