Blog

Ein Vorschlag zur Crawlbarkeit von AJAX

Mittwoch, 7. Oktober 2009

Heute freuen wir uns, einen neuen Standard vorzuschlagen, um AJAX-basierte Websites crawlbar zu machen. Dies kommt Webmastern und Nutzern zugute, indem Inhalte von reichhaltigen und interaktiven AJAX-basierten Websites über Suchergebnisse auf jeder Suchmaschine, die sich daran beteiligt, universell zugänglich gemacht werden. Wir glauben, dass die Bereitstellung dieser Inhalte zum Crawlen und Indexieren das Web erheblich verbessern kann.

Ein Vorschlag zur Crawlbarkeit von AJAX

Obwohl AJAX-basierte Websites bei Nutzern beliebt sind, können Suchmaschinen traditionell nicht auf die Inhalte darauf zugreifen. Als wir das letzte Mal nachgesehen haben, verwenden fast 70 % der uns bekannten Websites JavaScript in der einen oder anderen Form. Natürlich ist das meiste dieses JavaScript kein AJAX, aber je besser Suchmaschinen AJAX crawlen und indexieren können, desto mehr können Entwickler reichhaltigere Funktionen zu ihren Websites hinzufügen und trotzdem in den Suchmaschinen erscheinen.

Einige der Ziele, die wir mit diesem Vorschlag erreichen wollten, waren:

  • Minimaler Änderungsaufwand beim Wachstum der Website
  • Nutzer und Suchmaschinen sehen denselben Inhalt (kein Cloaking)
  • Suchmaschinen können Nutzer direkt zur AJAX-URL leiten (nicht zu einer statischen Kopie)
  • Website-Besitzer haben eine Möglichkeit zu überprüfen, ob ihre AJAX-Website korrekt gerendert wird und der Crawler somit Zugriff auf alle Inhalte hat

So würden Suchmaschinen AJAX in unserem ersten Vorschlag crawlen und indexieren:

  • Modifizieren Sie die URL-Fragmente für zustandsbehaftete AJAX-Seiten leicht
    Zustandsbehaftete AJAX-Seiten zeigen beim direkten Aufruf denselben Inhalt an. Dies sind Seiten, auf die in Suchergebnissen verwiesen werden kann. Anstelle einer URL wie
    https://example.com/page?query#state
    möchten wir vorschlagen, ein Token hinzuzufügen, um diese URLs erkennbar zu machen:
    https://example.com/page?query#[FRAGMENTTOKEN]state. Basierend auf einer Überprüfung aktueller URLs im Web schlagen wir vor, „!“ (Ausrufezeichen) als Token hierfür zu verwenden. Die vorgeschlagene URL, die in den Suchergebnissen angezeigt werden könnte, wäre dann:
    https://example.com/page?query#!state.
  • Verwenden Sie einen Headless-Browser, der einen HTML-Snapshot auf Ihrem Webserver ausgibt
    Der Headless-Browser wird verwendet, um auf die AJAX-Seite zuzugreifen, und generiert HTML-Code basierend auf dem finalen Zustand im Browser. Nur speziell getaggte URLs werden zur Verarbeitung an den Headless-Browser übergeben. Durch diesen Vorgang auf der Servergegenseite hat der Website-Besitzer die Kontrolle über den generierten HTML-Code und kann leicht überprüfen, ob das gesamte JavaScript korrekt ausgeführt wird. Ein Beispiel für einen solchen Browser ist
    HtmlUnit, ein Open-Source-„GUI-loser Browser für Java-Programme“.
  • Ermöglichen Sie Suchmaschinen-Crawlern den Zugriff auf diese URLs durch Escaping des Status
    Da URL-Fragmente niemals bei Anfragen an Server gesendet werden, ist es notwendig, die für den Zugriff auf die Seite verwendete URL leicht zu modifizieren. Gleichzeitig wird dem Server dadurch mitgeteilt, anstelle einer Seite mit JavaScript den Headless-Browser zum Generieren von HTML-Code zu verwenden. Andere, bestehende URLs – wie die vom Nutzer verwendeten – würden normal verarbeitet, wobei der Headless-Browser umgangen wird. Wir schlagen vor, die Statusinformationen zu escapen und sie als Abfrageparameter mit einem Token hinzuzufügen. Unter Verwendung des vorherigen Beispiels wäre eine solche URL
    https://example.com/page?query&[QUERYTOKEN]=state. Basierend auf unserer Analyse aktueller URLs im Web schlagen wir vor, _escaped_fragment_ als Token zu verwenden. Die vorgeschlagene URL würde dann lauten:
    https://example.com/page?query&_escaped_fragment_=state.
  • Zeigen Sie Nutzern die Original-URL in den Suchergebnissen an
    Um die Nutzererfahrung zu verbessern, ist es sinnvoll, Nutzer direkt auf die AJAX-basierten Seiten zu verweisen. Dies kann erreicht werden, indem die Original-URL (wie
    https://example.com/page?query#!state aus unserem obigen Beispiel) in den Suchergebnissen angezeigt wird. Suchmaschinen können überprüfen, ob der an den Googlebot zurückgegebene indexierbare Text derselbe oder eine Teilmenge des Textes ist, der den Nutzern zurückgegeben wird.

diagram of an http request with ajax crawl setup

Zusammenfassend lässt sich sagen, dass eine zustandsbehaftete URL wie
https://example.com/dictionary.html#AJAXsowohl für Crawler als auch für Nutzer verfügbar gemacht werden könnte als https://example.com/dictionary.html#!AJAX die gecrawlt werden könnte als
https://example.com/dictionary.html?_escaped_fragment_=AJAX was wiederum den Nutzern angezeigt und aufgerufen werden könnte als https://example.com/dictionary.html#!AJAX

Präsentation ansehen

Wir arbeiten derzeit an einem Vorschlag und einer Prototyp-Implementierung. Feedback ist sehr willkommen – bitte fügen Sie Ihre Kommentare unten oder in unserem
Webmaster-Hilfeforumhinzu. Vielen Dank für Ihr Interesse daran, das AJAX-basierte Web über Suchergebnisse zugänglich und nützlich zu machen!

Blogbeitrag von
John Mueller, Webmaster Trends Analyst, Google Zürich

Alien Road

So setzen wir das um

Google announcements age. We keep this post here for the record, and we note for clients whether the behaviour it describes still applies today or has since been superseded.

Verwandte Leistungen

Teilen