GET- vs. POST-Methode und die Erfassung von mehr Inhalten im Web

Donnerstag, 10. November 2011

Google muss seine Crawling- und Indexierungsmethoden an die ständige Weiterentwicklung des Webs anpassen. Wir haben die Indexierung von Flash verbessert , eine robustere Infrastruktur namens Caffeine aufgebaut und in bestimmten Fällen sogar damit angefangen, Formulare zu crawlen . Da sich JavaScript und AJAX im Web immer größerer Beliebtheit erfreuen, stoßen wir zunehmend auf Webseiten, für die POST-Anforderungen eingesetzt werden müssen. Das gilt entweder für den gesamten Seiteninhalt oder ist erforderlich, weil auf den Seiten Informationen fehlen bzw. diese Seiten ohne die über eine POST-Anforderung ausgegebenen Ressourcen unbrauchbar dargestellt werden. Bei der Google-Suche entstehen dadurch natürlich Nachteile. Wenn wir Schwierigkeiten haben, Inhalte zu finden und zu indexieren, können wir Nutzern nicht die umfassendsten und relevantesten Ergebnisse präsentieren.

Grundsätzlich empfehlen wir die GET-Methode , um die für eine Seite erforderlichen Ressourcen abzurufen. Sie ist unsere bevorzugte Crawling-Methode. Wir haben Versuche unternommen, POST-Anforderungen in GET-Anforderungen umzuschreiben. Das funktioniert in manchen Fällen, häufig sind die vom Webserver ausgegebenen Inhalte für GET und POST allerdings vollkommen unterschiedlich. Es gibt natürlich gute Gründe, die POST-Methode zu verwenden. Beispielsweise könnt ihr zu einer POST-Anforderung mehr Daten hinzufügen als zu einer GET-Anforderung. GET-Anforderungen werden zwar häufiger verwendet. Um mehr Inhalte im Web zu erfassen, kann der Googlebot jedoch nun POST-Anforderungen verarbeiten, wenn wir davon überzeugt sind, dass dieser Vorgang sicher abläuft und angebracht ist.

Wir vermeiden bei einer Website sämtliche Schritte, die zu einer ungewollten Aktion seitens der Nutzer führen könnten. Unsere POST-Anforderungen setzen wir vor allem dazu ein, Ressourcen zu crawlen, die eine Seite automatisch anfordert. Im Prinzip wird dabei die Anzeige nachgeahmt, die auch Nutzer in ihrem Browser sehen. Mit einer besseren Heuristik wird sich dieser Prozess im Laufe der Zeit weiterentwickeln, aber das ist unsere aktuelle Vorgehensweise.

Wir möchten euch an einigen Szenarien für POST-Anforderungen zeigen, wie wir unsere Crawling- und Indexierungsmethoden an die Weiterentwicklung des Web anpassen.

Beispiele für POST-Anforderungen vom Googlebot
  • Crawlen einer Seite über eine POST-Weiterleitung

  • <html>
    <body onload="document.foo.submit();">
    <form name="foo" action="request.php" method= "post" >
    <input type="hidden" name="bar" value="234"/>
    </form>
    </body>
    </html>


  • Crawlen einer Ressource über eine POST-XMLHttpRequest-Anforderung
  • Für dieses Beispiel gehen wir Schritt für Schritt vor. Wir verbessern sowohl die Indexierung einer Seite als auch ihre Vorschau, indem wir der automatischen XMLHttpRequest-Anforderung folgen, die bei der Darstellung der Seite erstellt wird.

    1. Google crawlt die URL leckerer-eisbecher.html.
    2. Google beginnt mit der Indexierung von leckerer-eisbecher.html. Dabei versuchen wir, die Seite darzustellen, damit wir ihre Inhalte voll erfassen bzw. die Vorschau erstellen können.
    3. Während der Darstellung der Seite sendet leckerer-eisbecher.html über die POST-Methode automatisch eine XMLHttpRequest-Anforderung für die Ressource karamellsosse-info.html.
    <html>
    <head>
    <title>Leckerer Eisbecher</title>
    <script src="jquery.js"></script>
    </head>
    <body>
    Auf dieser Seite geht es um einen leckeren Eisbecher.
    <div id="content"></div>
    <script type="text/javascript">
    $(document).ready(function() {
    $. post ('karamellsosse-info.html', function(data)
    {$('#content').html(data);});
    });
    </script>
    </body>
    </html>


    4. Die über die POST-Methode angeforderte URL karamellsosse-info.html wird zusammen mit ihrer Datennutzlast zur Warteschlange der vom Googlebot zu crawlenden URLs hinzugefügt.
    5. Googlebot führt eine POST-Anforderung durch, um karamellsosse-info.html zu crawlen.
    6. Google verfügt jetzt über eine genaue Darstellung von leckerer-eisbecher.html für die Vorschau. In einigen Fällen nehmen wir die Inhalte von karamellsosse-info.html auch in leckerer-eisbecher.html mit auf.
    7. Google schließt die Indexierung von leckerer-eisbecher.html ab.
    8. Nutzer suchen nach [karamellsosse eisbecher].
    9. Mit unseren Algorithmen können wir jetzt besser einschätzen, wie relevant leckerer-eisbecher.html für diese Suchanfrage ist, und außerdem einen Auszug der Seite in der Vorschau anzeigen.

    So kann eure Website besser gecrawlt und indexiert werden
    Allgemeine Tipps zum Erstellen von Websites, die gecrawlt werden können, findet ihr in unserer Hilfe . Wenn ihr als Webmaster Google beim Crawlen und Indexieren eurer Inhalte bzw. beim Erstellen der Vorschau unterstützen möchtet, haben wir hier einige einfache Faustregeln:

  • Verwendet die GET-Methode für den Abruf von Ressourcen, es sei denn, ihr müsst aus einem bestimmten Grund zur POST-Methode greifen.

  • Bestätigt, dass wir die Ressourcen crawlen dürfen, die zur Darstellung eurer Seite erforderlich sind. Wenn im oben stehenden Beispiel karamellsosse-info.html durch eine robots.txt-Datei blockiert wird, wird sie vom Googlebot nicht abgerufen. Genauer gesagt: Wenn der JavaScript-Code, der die XMLHttpRequest-Anforderung sendet, in einer externen JS-Datei hinterlegt ist und diese Datei von einer robots.txt-Datei blockiert wird, können wir nicht erkennen, dass zwischen leckerer-eisbecher.html und karamellsosse-info.html ein Zusammenhang besteht. In diesem Fall haben wir also Schwierigkeiten, selbst wenn karamellsosse-info.html nicht direkt blockiert ist. Im Web sind uns sogar schon viel kompliziertere Verkettungen von Abhängigkeiten untergekommen. Google kann eure Website besser erfassen, wenn ihr dem Googlebot erlaubt, alle Ressourcen zu crawlen.

  • Ob Ressourcen blockiert sind, könnt ihr über Webmaster-Tools Labs -> Vorschau herausfinden.

  • Stellt sicher, dass an den Googlebot der gleiche Inhalt ausgegeben wird, den Nutzer auch in ihrem Webbrowser sehen. Beim Cloaking werden unterschiedliche Inhalte an den Googlebot und an die Nutzer gesendet. Diese Methode verstößt gegen unsere Richtlinien für Webmaster , da sie unter anderem dazu führen kann, dass wir nicht relevante Ergebnisse an Nutzer der Google-Suche ausgeben. In diesem Fall werden Nutzern in ihrem Browser vollkommen andere Inhalte angezeigt als die, die wir gecrawlt und indexiert haben. Wir haben bei zahlreichen POST-Anforderungen festgestellt, dass Webmaster unabsichtlich Cloaking eingesetzt haben. Doch auch dann handelt es sich um einen Verstoß. Das Cloaking führte selbst bei minimalen Abweichungen zu JavaScript-Fehlern, die eine präzise Indexierung unmöglich machten, und das Cloaking somit seinen Zweck vollkommen verfehlte. Zusammengefasst heißt das also, dass ihr einen großen Bogen um Cloaking machen solltet, wenn ihr eure Website für die Google-Suche optimieren möchtet.

  • Mit der Vorschau in den Webmaster-Tools könnt ihr überprüfen, ob ihr unabsichtlich Cloaking einsetzt. Ihr könnt aber auch den User-Agent-String in eurem Browser beispielsweise so einrichten:

    Mozilla/5.0 (compatible; Googlebot/2.1;
    +https://www.google.com/bot.html)


    Nach einem solchen Eingriff sollte sich an der Darstellung eurer Website nichts verändert haben. Wenn euch eine leere Seite oder ein JavaScript-Fehler angezeigt wird, Teile der Seite fehlen oder anders dargestellt werden, ist etwas schiefgelaufen.

  • Denkt daran, wichtige Inhalte, also Inhalte, die indexiert werden sollen, als Text einzufügen, der direkt auf der Seite zu sehen ist und angezeigt wird, ohne dass Schritte seitens der Nutzer erforderlich sind. Die meisten Suchmaschinen basieren auf Texten und funktionieren deshalb am besten mit textbasierten Inhalten. Wir arbeiten ständig daran, unsere Crawling- und Indexierungsmethoden auf verschiedenste Art und Weise zu verbessern. Trotzdem bleibt es eine verlässliche Strategie, wichtige Informationen als Text einzufügen.

    So kontrolliert ihr eure Inhalte
    Wenn ihr verhindern möchtet, dass eure Inhalte für die Google Websuche gecrawlt oder indexiert werden, stellt eine robots.txt-Datei immer noch die beste Methode dar. Wie ihr die Vorschau eurer Seiten deaktiviert, könnt ihr in unseren Vorschau-FAQ nachlesen. Dort werden der User-Agent "Google Web Preview" und das Meta-Tag "nosnippet" beschrieben.
    Es geht voran
    Wir arbeiten ständig daran, unseren Index so umfangreich wie möglich zu gestalten, damit Nutzer der Google-Suche mehr relevante Informationen finden können. Unsere Crawling- und Indexierungsmethoden werden sich weiterentwickeln und verbessern, genau wie das Web. Bei weiteren Anliegen oder Fragen stehen wir euch jederzeit gern in unserem Hilfe-Forum zur Verfügung.