2 Anregungen bezgl. SEO: Noindex/DC

Begonnen von Webfan, 19 Mai 2008, 10:55:55

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Webfan

Hallo,
möchte hier mal 2 Modifikationen shären  ;)  und Fragen dazu stellen.

1. Noindex
2. DC vermeiden
3. Fragen



1. In einigen Modulen (Beispiel Web_Links und Kleinanzeigen(Fremdmodul)) ist mir aufgefallen, daß immer auf den Index geleitet wird, wenn ein Eintrag nicht vorhanden ist, siehe: http://www.pragmamx.org/Web_Links-op-view-lid-999.html
Theoretisch könnte ein Angreifer (mit wirklich viel böshaftem Intusiasmus) jede beliebige Url mit immer der gleichen Seite (dem Web_Links Index) verlinken und so aus dem PragmaMx eine wahre Dublicate Content Schleuder machen.
Mein Lösungsvorschlag:
Es wird eine Meldung ausgegeben und die Seite mit dem NOINDEX Tag versehen:
http://www.webfan.de/Web_Links-lid-Outshop-de-WebDirectory-Shopverzeichnis-Webkatalog-999.html
Der Anfang der Funktion viewdetails in modules/Web_Links/details.php sieht nun bei mir so aus:

function viewdetails($lid)
{
    global $prefix, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $module_name, $pagetitle;
    if (!modCheckAndCleanSubdata($lid)) {

          define('_META_ROBOTS_NOINDEX_',TRUE);
    include("header.php");
     //  (ID: ".$lid.")
OpenTable();
echo "<span style=\"color: rgb(255, 0, 0);\">Der angeforderte Weblink ist nicht in unserem Webkatalog vorhanden. </span><br>[ <a href=\"modules.php?name=Web_Links\">Zum Webkatalog...</a> ]";
CloseTable();
include('footer.php');
die();

       // mxRedirect('modules.php?name=' . $module_name);
    }

Die Konstante _META_ROBOTS_NOINDEX_wird in header.php benötigt, dort habe ich meine Erweiterung installiert ( http://www.startforum.de/pragmamx_019/dynamische_keywords_metatags-t394.0.html ) und um die Abfrage der neuen Konstante erweitert:

       || defined('_META_ROBOTS_NOINDEX_')
   )
{echo '<meta name="robots" content="noindex, FOLLOW">
';}
else{echo '<meta name="robots" content="INDEX, FOLLOW">
';}



Äquivalent dazu im Kleinanzeigenmodul (Fremdmodul von md-party) in modules/Kleinanzeigen/visit.php:

$module_name = basename(dirname(__FILE__));

$result32=sql_query("select cid, title from ".$prefix."_add_adds where lid=$lid",$dbi);
list($cid,$class_title)=sql_fetch_row($result32, $dbi);
$totalrows_ = sql_num_rows($result32);

if($totalrows_ < 1)
     {
     define('_META_ROBOTS_NOINDEX_',TRUE);
    include("header.php");

menu(1);
     //  (ID: ".$lid.")
OpenTable();
echo "<span style=\"color: rgb(255, 0, 0);\">Die angeforderte Anzeige ist nicht in unserer Datenbank vorhanden. </span><br>";
CloseTable();
include('footer.php');
die();
}
//eof anzeige nicht gefunden




2. Der gleiche (oder ähnliche) dublicate content Unfug läßt sich nach der mod_rewrite Erweiterung mit den sprechenden Links ( http://www.pragmamx.org/Downloads-op-view-lid-657.html von m-t  :thumbup: ) treiben:
Originallink: http://www.webfan.de/Downloads-lid-Modul-Social-Seek-fuer-PragmaMx-22.html
DC: http://www.webfan.de/Downloads-lid-doppetltundnochmal-Modul-Social-Seek-fuer-PragmaMx-22.html

Bei unseren Beispielmodulen Web_Links und Kleinanzeigen könnte eine Lösung so aussehen:
modules/Web_Links/details.php (nach $title=$row['title']):
(webfan.de muß angepasst werden!!!)

    // Daten fuer header aufbereiten
    $title = $row['title'];

    //uricheck modrewrite redirect
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss");
                        $u_title = $title;
$u_title = str_replace($umlaute, $ersetzung, $u_title);
$u_title = preg_replace('#\W#', "-", $u_title);
$u_title = preg_replace('#---#', "-", $u_title);
$u_title = preg_replace('#--#', "-", $u_title);
$u_title_fert = "/Web_Links-lid-";
$u_title_fert.= $u_title."-";
$u_title_fert.= $lid.'.html';

                           if($u_title_fert != $_SERVER['REQUEST_URI'])
                           {
                           if(isset($_SERVER['HTTPS'])){
                           $p_ = 'https://';
}else{
     $p_ = 'http://';
     }
     header('Location: '.$p_.'www.webfan.de'.$u_title_fert,TRUE,301);
}
//eof umleiten

                           //eof uri check modrewrite redirect


In modules/Kleinanzeigen/visit.php (genau nach dem obigen Code: die(); } )
(webfan.de muß angepasst werden!!!)

//uricheck modrewrite redirect
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss");
                        $u_title = $class_title;
$u_title = str_replace($umlaute, $ersetzung, $u_title);
$u_title = preg_replace('#\W#', "-", $u_title);
$u_title = preg_replace('#---#', "-", $u_title);
$u_title = preg_replace('#--#', "-", $u_title);
$u_title_fert = "/Kleinanzeigen-lid-";
$u_title_fert.= $u_title."-";
$u_title_fert.= $lid.'.html';

                           if($u_title_fert != $_SERVER['REQUEST_URI'])
                           {
                           if(isset($_SERVER['HTTPS'])){
                           $p_ = 'https://';
}else{
     $p_ = 'http://';
     }
     header('Location: '.$p_.'www.webfan.de'.$u_title_fert,TRUE,301);
}
//eof umleiten

                                            //eof uri check modrewrite redirect

Demo:
http://www.webfan.de/Kleinanzeigen-lid-DOPPELTE-URL-Reseller-Webspace-DNS-Domainverwaltung-149.html
http://www.webfan.de/Web_Links-lid-DOPPELTE-URL-Outshop-de-WebDirectory-Shopverzeichnis-Webkatalog-252.html



3. Fragen:
- Was ist überhaupt von der Problematik zu halten? (Übertreib ich vielleicht oder so?)
- Bei Kategorien (nicht Detailansicht), wenn Seiten mit Blätterfunktionen in den Modulen vorkommen, ist die ganze Sache mitunter etwas vertrackter (mit den Urls und dem Weiterleiten), wer Lust und Zeit hat darf sich gerne beteiligen.
- Ich habe lange gegrübelt ob es nicht eine modulübergreifende Lösung geben könnte für das Umleiten auf die neuen Link, irgendwie scheiter ich aber schon theoretisch irgendwie. Wenn jemand vielleicht doch eine Lösung hat...?
- Und dann sind da ja noch die anderen Modul, wenn jemand Lust hat kann er ja mit sharen und den Kram auf die anderen Module anwenden und hier posten,
ich fang gleich mit dem ersten an, dem News Modul:
in modules/News/article.php
(nach:
$result = sql_query($qry);
$story = sql_fetch_assoc($result);
)

//uricheck modrewrite redirect
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss");
                        $u_title = $story['title'];
$u_title = str_replace($umlaute, $ersetzung, $u_title);
$u_title = preg_replace('#\W#', "-", $u_title);
$u_title = preg_replace('#---#', "-", $u_title);
$u_title = preg_replace('#--#', "-", $u_title);
$u_title_fert = "/News-sid-";
$u_title_fert.= $u_title."-";
$u_title_fert.= $sid.'.html';

                           if($u_title_fert != $_SERVER['REQUEST_URI'])
                           {
                           if(isset($_SERVER['HTTPS'])){
                           $p_ = 'https://';
}else{
     $p_ = 'http://';
     }
     header('Location: '.$p_.'www.webfan.de'.$u_title_fert,TRUE,301);
}
//eof umleiten

                           //eof uri check modrewrite redirect


mfg
:)

Webfan

Ok. Das ganze für Downloads:
Anfang der Funktion viewdetails in modules/Downloads/details.php (bis vor $pagetitle = ...):

function viewdetails($lid)
{
    global $prefix, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $module_name, $pagetitle;
    if (!modCheckAndCleanSubdata($lid)) {
              define('_META_ROBOTS_NOINDEX_',TRUE);
    include("header.php");


     //  (ID: ".$lid.")
OpenTable();
echo "<span style=\"color: rgb(255, 0, 0);\">Der angeforderte Download ist nicht in unserer Datenbank vorhanden. </span><br>[ <a href=\"modules.php?name=Downloads\">Zum Downloadindex...</a> ]";
CloseTable();
include('footer.php');
die();

       // mxRedirect('modules.php?name=' . $module_name);
    }
    $qry = "SELECT dd.*, dd.name as auth_name, dd.date as updated, dc.title AS ctitle, dc.parentid AS cparentid, dc.captcha, de.downloadid AS editorialid,  de.adminid AS editorialauthor, de.editorialtimestamp, de.editorialtext, de.editorialtitle
        FROM " . $prefix . "_downloads_downloads AS dd
        LEFT JOIN " . $prefix . "_downloads_categories AS dc ON dd.cid = dc.cid
        LEFT JOIN " . $prefix . "_downloads_editorials AS de ON dd.lid = de.downloadid
        WHERE dd.lid = " . intval($lid) . "
        LIMIT 1";
    $result = sql_query($qry);
    $row = sql_fetch_assoc($result);
    // Daten fuer header aufbereiten
    $title = $row['title'];
   
   
        //uricheck modrewrite redirect
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss");
                        $u_title = $title;
$u_title = str_replace($umlaute, $ersetzung, $u_title);
$u_title = preg_replace('#\W#', "-", $u_title);
$u_title = preg_replace('#---#', "-", $u_title);
$u_title = preg_replace('#--#', "-", $u_title);
$u_title_fert = "/Downloads-lid-";
$u_title_fert.= $u_title."-";
$u_title_fert.= strip_tags($lid).'.html';

                           if($u_title_fert != $_SERVER['REQUEST_URI'])
                           {
                           if(isset($_SERVER['HTTPS'])){
                           $p_ = 'https://';
}else{
     $p_ = 'http://';
     }
     header('Location: '.$p_.'www.webfan.de'.$u_title_fert,TRUE,301);
}
//eof umleiten

                           //eof uri check modrewrite redirect

Webfan.de muß angepasst werden beim redirect, ich hab mal ein strip_tags für lid hinzugefügt.

- Natürlich heißt es Enthusiasmus und nicht wie oben beschrieben  :morning:

mfg


Webfan

ZitatIch verstehe nur Bahnhof 
Das Downloadmodul ist bereits angepasst, deshalb sieht man den Effekt bei dem Beispiellink nicht mehr.

Zitatschau dir mal die Großen an
Die sind oft kein Vorbild: http://www.google.de/ 57 Html Fehler.
"Die Großen" betreiben meistens gar keine Suchmaschinenoptimierung, die großen Seiten scheinen gar eigentlich damit anzugeben das sie so groß sind und keine Suchmaschinenoptimierung mehr nötig haben, wenn man sich mal umguckt...

ZitatDiese Erweiterung sollte eigentlich bei PragmaMX Standard Standard sein ... siehe dir unsere Nachbarn an
Ok. Ich würde mich jedenfalls über eine Option "Inhalt nur über Permalink erreichbar" oder so in einer nächsten PragmaMX Version freuen.
Ich denke gerade für "die Kleinen", wäre das vielleicht auch eine ästhetische Frage, wenn man auch das ganze SEO-Gelaber mal außen vorläßt, oder  :gruebel:
(Vielleicht böte sich da auch eine Gelegenheit, das System zu überdenken, insofern man sowas dann Modulübergreifend managen könnte... ich geh mal davon aus das tut das Team sowieso :police: )

mfg