Ankündigung

Einklappen
Keine Ankündigung bisher.

Ajax content und google serps

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ajax content und google serps

    Servus liebe freunde der gepflegten programmierung

    Ich habe mir etwas geschrieben und bin selbst der Meinung dass ich es zu kompliziert gemacht habe und google es auch nicht so recht auffinden kann.
    Es geht um einen Produktfilter (nach Farben, Marken usw.).
    hier mal eine vereinfachte Form der programmierung.


    artikel.php:
    --------------------
    Code:
        $("#produkte input").change(function() {
                $.ajax({
                type: "POST",
                url: "ajax.php",
                dataType: 'html',
                data: $('#produkte').serialize(),
                success: function(data){
                    $('#list').html(data)
                }
            });
          return false;      
        });
    HTML-Code:
        <form  method="post" id="produkte">
    		<input type="radio" name="id" value="25" id="25"><label for="25"><a href="Kategorie_1">Kategorie_1</a></label>
    		<input type="radio" name="id" value="21" id="21"><label for="21"><a href="Kategorie_2">Kategorie_2</a></label>
    		<input type="radio" name="id" value="23" id="23"><label for="23"><a href="Kategorie_3">Kategorie_3</a></label>
    		<input type="radio" name="id" value="27" id="27"><label for="27"><a href="Kategorie_4">Kategorie_4</a></label>
    		<input type="radio" name="id" value="28" id="28"><label for="28"><a href="Kategorie_5">Kategorie_5</a></label>
    		<input type="radio" name="id" value="26" id="26"><label for="26"><a href="Kategorie_6">Kategorie_6</a></label>
        </form>
    	<div id="list"></div>
    PHP-Code:
    if($_GET['id'])
    {
        echo
    '
        <script>$(document).ready(function() {
            $("#'
    .$_GET['id'].'").trigger(\'click\');
            });
        </script>
        '
    ;

    ajax.php:
    --------------------
    "Artikel-Listen aus der obigen Kategorie"


    --------------------
    Da ich nun keinen direkten Link zu den Kategorien habe, habe ich per RewriteRule die Url so verändert:
    Code:
    RewriteRule ^Kategorie_1$ artikel.php?id=25 [NC,L]
    RewriteRule ^Kategorie_2$ artikel.php?id=21 [NC,L]
    RewriteRule ^Kategorie_3$ artikel.php?id=23 [NC,L]
    RewriteRule ^Kategorie_4$ artikel.php?id=27 [NC,L]
    RewriteRule ^Kategorie_5$ artikel.php?id=28 [NC,L]
    RewriteRule ^Kategorie_6$ artikel.php?id=26 [NC,L]
    --------------------
    gebe ich nun in die Url-Leiste
    http://www.meinedomain.de/Kategorie_1
    ein, wird artikel.php?id=25 gesendet un per $("#'.$_GET['id'].'").trigger(\'click\'); getriggert
    jedoch google sieht natürlich diesen nicht und liefert jede Kategorie im unverändertem Link (www.meinedomain.de) aus.
    habt ihr zufällig eine elegantere Idee? Ansätze würden mir weiterhelfen, da ich mich festgefressen habe und der Meinung bin dass es auch anders gehen sollte.
    Gruß
    Xaver


  • #2
    Ich weiß ja nicht warum du die Inhalte überhaupt unbedingt per Ajax holen willst, aber der GoogleBot führt nunmal keine JavaScripte aus (bzw nur ganz wenige, z.B. Redirects etc funktionieren wohl), also funktioniert Ajax in dem Fall nicht, Google sieht die Inhalte nicht => die Seiten landen nicht entsprechend in den serps.

    Wenn die Datenmengen nicht allzu groß sind würde ich da einfach auf Ajax verzichten und direkt alles laden, nur das, was nicht sofort angezeigt werden soll halt per CSS auf hidden setzen und eben bei Bedarf anzeigen / ausblenden.

    Früher soll so ein Vorgehen zwar mal schnell zu einem "Ban" seitens Google geführt haben (weil damit halt Keyword Spam betrieben wurde) aber mittlerweile soll Google das wohl ganz gut hinbekommen solchen sinnvoll "versteckten" Content von Keyword Spam zu unterscheiden. So lange es also "normale" Inhalte sind, die per Klick oder wie auch immer auch für normale User sichtbar werden, sollte das eigtl kein Problem sein.

    Kommentar


    • #3
      Wenn die Ajaxinhalte gecach'd werden können, dann schau dir mal varnish#esi an.
      Standards - Best Practices - AwesomePHP - Guideline für WebApps

      Kommentar


      • #4
        Zitat von WTB Beitrag anzeigen
        Ich weiß ja nicht warum du die Inhalte überhaupt unbedingt per Ajax holen willst, aber der GoogleBot führt nunmal keine JavaScripte aus (bzw nur ganz wenige, z.B. Redirects etc funktionieren wohl), also funktioniert Ajax in dem Fall nicht, Google sieht die Inhalte nicht => die Seiten landen nicht entsprechend in den serps.
        Die Seite hat etwas mehr wie 300kb und per Ajax lade ich lediglich ca. 60kb. Je nach Auswahl habe ich ca. 600 Artikel und da das Blättern mühsam wäre und wenn man die Ladezeit noch hinzurechnet steigt ca. 90% der Kunden (nach Testauswertungen) nach der 2ten Seite aus (je Seite 40 Artikel). darum habe ich auch noch lazyload und Infinite Scroll mit drin. Quasi 20 Artikel werden geladen und die Bilder werden nachgeladen beim scrollen. Erreicht der Kunde den 20ten Artikel werden weitere 20 nachgeladen und das geht fast nahtlos. die Kunden scrollen nun mindestens 80% der ausgewählten Artikel (Tests erfolgte anhand nachgeladenen Ihnhalt wurde Info in DB abgelegt). daher musste Kunden-Benutzerfreundlichkeit der serps voranstellen aber es scheint ein teufelskreis zu sein..
        Zitat von WTB Beitrag anzeigen
        Wenn die Datenmengen nicht allzu groß sind würde ich da einfach auf Ajax verzichten und direkt alles laden, nur das, was nicht sofort angezeigt werden soll halt per CSS auf hidden setzen und eben bei Bedarf anzeigen / ausblenden.
        Diese Option hatte ich wie oben erwähnt bereits und sehr hohe Ausstiege.
        Zitat von WTB Beitrag anzeigen
        Früher soll so ein Vorgehen zwar mal schnell zu einem "Ban" seitens Google geführt haben (weil damit halt Keyword Spam betrieben wurde) aber mittlerweile soll Google das wohl ganz gut hinbekommen solchen sinnvoll "versteckten" Content von Keyword Spam zu unterscheiden. So lange es also "normale" Inhalte sind, die per Klick oder wie auch immer auch für normale User sichtbar werden, sollte das eigtl kein Problem sein.
        danke! habe vorübergehend bis ich eine neue Idee habe den Besuch von google gefiltert und gebe dem Bot die nur Daten raus die auch ein normaler Kunde sehen würde quasi fast nur text ohne funktionen und navigation bis auf Artikel-Links

        falls das Google filtern jemand interresiert :
        PHP-Code:
        $isBot false;
        $ua strtolower(gethostbyaddr($_SERVER['REMOTE_ADDR']));
        $isBot strpos($ua'googlebot') !== false || strpos($ua'googlebot-mobile') !== false
        if($isBot) {$ZeigeEs}else{$ZeigEsNicht

        Kommentar

        Lädt...
        X