Feeds: RSS 2.0 | RSS 0.92 | Atom

Gestatten: Die Google Cloaking-API

geschrieben am 09.12.2010 von

Seit mehr als einem Jahr bietet Google eine offizielle Cloaking-API an. Überraschenderweise hat das bisher kaum jemand bemerkt. Das könnte auch daran liegen, dass die API den komischen Namen Ajax-Crawling-Protokoll trägt und das klingt nun so gar nicht nach Cloaking.

Vermutlich hat Google das so genannt, weil der Webmaster damit seine Ajax-Seiten dem Googlebot zugänglich machen kann. Wie das geht, beschreibt Google selber recht gut. Grundsätzlich funktioniert Ajax-Crawling ziemlich einfach: Der Webmaster verlinkt auf eine Ajax-URL, die “#!” enthält und dahinter die für die Ajax-Darstellung nötigen Parameter. Also z.B. so etwas example.com/#!test. Das Protokoll besagt nun, dass der Googlebot nicht diese URL direkt abrufen soll, sondern erst #! durch ?_escaped_fragment_= ersetzt. Damit wird aus unserer URL nun example.com/?_escaped_fragment_=test und diese URL wird dann vom Googlebot gecrawlt – im Google-Index erscheinen aber nur die URLs mit #!, die _escaped_fragment_-URLs tauchen nirgendwo auf und auch andere Suchmaschinen greifen nicht darauf zu.

Damit nimmt uns Google die Hauptarbeit beim Cloaking ab. Die Schwierigkeit liegt beim Cloaking ja darin, den Googlebot sauber von menschlichen Besuchern zu unterscheiden. Mit Ajax-Crawling stellt Google einen Mechanismus bereit, der genau diese Unterscheidung selber vornimmt. Und da bislang nur Google das Ajax-Crawling unterstützt, sehen andere Suchmaschinen (Stichwort: Yahoo Site Explorer) unsere gecloakten Inhalte nicht. Eine Methode also, die sich wunderbar anbietet, um Links zu verstecken.

Natürlich sagt Google, dass sich die Inhalte von #! und ?_escaped_fragment_= nicht unterscheiden sollten. Den genauen Wortlaut des entsprechenden Google-Hinweises gebe ich hier mal als Warnung wider:

Es ist wichtig zu beachten, dass die Bereitstellung von AJAX-Anwendungen für Crawler keine Einladung dazu ist, Cloaking zu erleichtern. Aus diesem Grund muss der HTML-Snapshot den gleichen Content enthalten, den der Endnutzer in einem Browser sehen soll.

Aber die Zusammenarbeit von Javascript-basierter HTML-Erstellung (Ajax) mit der serverseitigen Erzeugung des HTML-Snapshots ist ja durchaus fehleranfällig; da kann es schon mal sein, dass in der Ajax-Version ein paar externe Links vergessen werden …

Ich bin jedenfalls gespannt, wie Google künftig damit umgehen wird. Google kennt die Problematik, das zeigt ja schon der oben zitierte FAQ-Eintrag. Aber eine automatische Überprüfung der Inhaltsgleichheit von Ajax- und gecrawlter URL ist nicht so ganz einfach; denn dazu bräuchte Google ja einen Ajax-fähigen Crawler und dann könnten sie sich den ganzen Aufwand mit dem Ajax-Crawling-Protokoll gleich sparen. Und wenn nun noch einige SEOs auf die Idee kommen, das ganze mit dem Canonical-Tag zu kombinieren, so dürfte es für Googles irisches Webspamteam einiges zu tun geben.

Natürlich lässt sich Ajax-Crawling auch für den offiziellen Zweck einsetzen, Ajax-Seiten für den Googlebot zugänglich zu machen. Wer sich dafür interessiert, dem möchte ich die nächste Ausgabe der Zeitschrift Website-Boosting ans Herz legen. Dort erscheint ein ausführlicher Artikel von mir über Ajax-Crawling. Die Ausgabe gibt es ab dem 4. Januar 2011 zu kaufen.

Bildnachweis: aberenyi – Fotolia.com

12 Kommentare

  • Horst
    9. Dezember 2010 11:11

    Selbstverständlich kann Google Ajax richtig ausführen. Das kann doch dank node.js heute jeder. Und Google hat sogar eine eigene Javascript-Engine. Es ist nur eben aufwendiger, daher wird sich die Prüfung auf Stichproben begrenzen. Wobei kleinere Unterschiede natürlich immer vorkommen. Dazu reicht ja ein Adserver mit rotierenden Bannern völlig, um wechselnde Resultate zu haben.

    Ich bin jedenfalls froh über die Möglichkeit und nächste Woche geht mein erstes Projekt mit Hashbang online. Endlich kann ich mich austoben ohne Angst um die Indizierung haben zu müssen. Endlich bremst Google nicht mehr den technischen Fortschritt. Jetzt hoffe ich mal, dass machen nicht wieder schwarzhütige Seos kaputt….

  • seoprogrammierer
    9. Dezember 2010 11:30

    Verstehe nicht warum google nicht einfach nen ajax-crawler losschickt. So schwer kann das doch nicht sein bei den Ressourcen die die haben!
    Wenn selbst ich als one man show ajax-pages spider müssen die das doch längst hinbekommen :-)
    Cooler Artikel, werds gleich twittern!

  • Kai
    9. Dezember 2010 13:42

    Hey Stefan, danke für die Aufarbeitung :)
    LOL!”da kann es schon mal sein, dass in der Ajax-Version ein paar externe Links vergessen werden”
    Na sischer dat :D

  • jens
    12. Dezember 2010 11:28

    Schöner Artikel, hatte mich bisher nicht damit beschäftigt. Wobei ich dem Thema immer noch sehr kritisch gegenüberstehe (abgesehen von Deinem Use-Case, der doch Sinn macht ;-) )
    Oft sind “Ajax-Seiten” nur sinnvoll, wenn man sich dahin navigiert hat. Und der oft beschriebene Fortschritt macht Sinn, wenn es um eine Applikation geht.
    SEO soll aber Nutzer zu mir bringen, die eine gewünschte Aktion durchführen. Das wird schwer, wenn man verajaxkte Seiten hat, die als Landingpages fungieren sollen. Bei der Ajax-Entwicklung geht man idR davon aus, dass der Nutzer sich selbst zu der Seite navigiert hat.
    Es fehlen deshalb oft wichtige Elemente hinsichtlich der Informationsarchitektur. Überschriften die mir sagen wo ich mich befinde fehlen ebenso wie explizit beschreibende Navigationen. Sprich, ich werde jetzt sicher Traffic generieren, die Conversion dieses Traffics wird aber wohl schlechter ausfallen, als man erwartet.
    Nur weil man etwas crawlen kann, kommt nicht zwingend gute Inhalte in den Index. Und wer große Seiten betreibt, kann sich so sehr schnell den Index zumüllen.
    Also immer mit Ziel und Kontrolle arbeiten. Nur weil ein Berg da ist, muss man nicht unbedingt diesesn auch erklimmen.

  • Martin
    12. Dezember 2010 16:01

    Schön, einen so inspirierenden Artikel zu lesen!

    Ich habe mir das ein wenig durch den Kopf gehen lassen und komme für mich zum Schluss, dass ein “Making AJAX Applications Crawlable”-Cloaking nicht viel bringt. Es wäre meiner Meinung nach ein “Cloaking-Light”, das dabei auch noch ziemlich riskant ist.

    1. Google-Crawler-IPs werden weiterhin nicht zuverlässig erkannt (das hattest Du natürlich aber auch nicht behauptet). Das Erkennen aller Google-Crawler-Zugriffe würde ja nur dann zuverlässig funktionieren, wenn auch alle Google-Crawler die Hashbang-Vereinbarung unterstützten. Google wird aber schlauerweise Zugriffe auf “Ugly URLs” nur von ungetarnten Crawlern losschicken. Die Stealth-Bots bleiben weiterhin getarnt.

    2. “Cloaking-Light” – Die Linkjuice-Verteilung für Ajax-Seiten ist meines Wissens noch nicht geklärt. Betrachtet Google die HTML-Snapshots der Ajax-Seiten A1 und A2 als die gleiche Seite, wie die Urspungsseite A? Oder sind die Ajax-Seiten Unterseiten und ggf. Unterseiten von Unterseiten? Ich vermute: letzteres. Wenn Google die Ajax-Seiten aber als einfachen HTML-Baum zusammenstrickt, verwässert der Linkjuice von Seite A ja bei jeder weiteren Delegation. D.h., ein Link, der nur im HTML-Snapshot auftaucht, bekommt deutlich weniger Power, als ein Link direkt auf A. Ein getarnter Link würde sich also nur bedingt lohnen.

    3. “Risiko” – Wenn im Ajax-Dokumentenbaum neue externe URLs auftauchen ist das gefühlsmäßig ja schon merkwürdig. Ich würde (ohne das untersucht zu haben) ja vermuten, dass Ajax-Funktionalitäten fast immer nur neue interne Links generieren. Eine externe URL, die erst im Ajax-Baum auftaucht, könnte damit leicht ein Warnlämpchen angehen lassen und die QRs auf den Plan rufen.

  • Stefan
    12. Dezember 2010 17:56

    @seoprogrammierer und @Martin,
    sicherlich kann Google Ajaxseiten “auch so” crawlen. Aber die haben die Ajax Crawling API schon aus einem Grund gemacht: Denn beileibe nicht alle Ajax-Urls liefern einen vernünftigen und v.a. uniquen Content. Deshalb die Vereinbarung, dass #!-URLs aussagen: “Achtung, das hier ist auch vernünftiger Content.”

    @Martin,
    ich bin fest davon überzeugt, dass der Begriff “Seite” im Crawling-Kontext irreführend ist. Es gibt IMHO keine “Seiten”, es gibt nur URLs, deren Aufruf einen bestimmten Content (und sei es nur eine Weiterleitung oder einen Fehlercode) zurückliefern. So ist das auch mit dem Ajax-Crawling: Google baut da eben überhaupt nichts am HTML-Baum rum, sondern fordert den Inhalt der _escaped_fragment_-URL an. D.h. Google sieht erst gar nicht, was im per Javascript zusammengeschusterten HTML-Dokument steht. Ich glaube, du hast da zu sehr einen speziellen (aber in der Tat sehr häufigen) Ajax-Anwendungsfall vor Augen, der immer nur kleine Änderungen an der Seite vornimmt. Aber Ajax lässt sich auch dafür einsetzen, eine Website komplett mit einer “klassischen” URL zu bauen und die “Unterseiten” nur per Ajax zu generieren. Das klingt komischer als es in Wirklichkeit ist, denn Flash-Sites werden heute häufig genau so gemacht. Und dafür Ajax-Crawling einzusetzen ist ein Anwendungsszenario, das in den Google FAQs genannt ist. (Das wäre i.Ü. ein noch überzeugenderes Link-Cloaking: Man setze den externen Link in die Flash-Datei und liefere ihn auch per _escaped_fragment_ aus. Dann ist Google glücklich, weil, Ajax (= in diesem Falle Flash) und Non-Ajax genau übereinstimmen. Alle Link-Tools aber würden daran vermutlich scheitern …

  • Horst
    15. Dezember 2010 08:24

    @jens: Es gibt sehr gute Gründe. Beispielsweise ein Forum, welches schlicht deutlich schneller und bequemer ist, wenn Ajax statt einzelne Seite geladen werden. Die Crawlbarkeit ist bei normalen Aufbau einfach schlecht, weil man viele Navigationsbuttons mit Links braucht (Antworten, Neu, etc.). Die kann man einfach ohne Hashbang bauen.
    Das ist dann kein Cloacking, aber SEO und Google tun sich leichter. Perfekt.

  • TeDi
    17. Dezember 2010 22:02

    Das ist mir tatsächlich noch nicht aufgefallen, aber danke für den Hinweis!

  • Kenny
    21. Januar 2011 21:05

    Tcha.. das ist doch recht interessant , aber leider für einen seo neuling wie ich es bin nicht so einfach umzusetzen , sollte einer von euch Seo Profis interessiert sein gegen überschaubarer bezahlung meine webseiten zu optimieren und mir etwas auf die sprünge zu helfen freue ich mich über jede mail . Vielen Dank
    kenny
    star-games@web.de

  • Jamie
    8. Februar 2011 13:50

    @Kenny: Der erste Satz von dir widerspricht sich ziemlich. Ein Seo Profi wird wohl eher nicht Webseiten gegen einen überschaubaren Betrag optimieren. Da steckt einfach zuviel Wissen dahinter. Zurück zum Beitrag: Das Ajax-Crawling-Protokoll war auch mir nicht bekannt. Ich gehe aber davon aus, dass in Zukunft aufgrund dieser Tatsache mehr und mehr Ajax Seiten ins Web kommen.

  • Moritz
    9. Februar 2011 10:24

    Der GWO bietet sich übrigens auch an zum Cloaking.
    siehe: http://bit.ly/fteurP

  • Roger M.
    15. Februar 2011 12:58

    he he das hab ich ja wirklich verpasst, danke dir

Entschuldige, das Kommentarformular ist zurzeit geschlossen.

SEOlytics
- Anzeige -

Weitere Artikel

SEO Cheat-Sheet

Termine

Suchmaschinen-Ranking

Suchmaschinen-Verzeichnis

Suchmaschineneintrag

Intern

Linktipps

Archiv: 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000