Kategorien
SEO

AJAX Crawling Scheme

Eine zunehmende Anzahl von Websites nutzt Javascript-Frameworks wie React, AngularJS, Vue.js, Polymer und Ember. Das Crawlen von Javascript-lastigen Websites stellt eine Herausforderung dar, da der Inhalt für diese Websites dynamisch generiert wird und Crawler nur Inhalte von statischen Websites erfassen können.

Websites, die den Datentransfer vom Server und das asynchrone Rendern des Inhalts mit Javascript nutzen, werden als AJAX-Websites bezeichnet und der Vorgang des Crawlings dieser Sites als dynamisches oder AJAX-Crawling.

AddSearch unterstützt AJAX-Crawling, aber wenn Sie nach Möglichkeiten suchen, Ihre Javascript-lastige Website crawlerfreundlich für andere Suchmaschinen zu machen, gehen Sie zu den nächsten Abschnitten dieses Artikels und erfahren Sie mehr.

Was ist Crawling?
Crawling bezieht sich auf den Prozess des Sammelns von Inhalten einer Website in einem Index, auf den die Suchmaschine zugreifen kann. Crawling wird von einem Crawler durchgeführt, der eine Anwendung ist, die eine Website besucht, nach Links zu den Webseiten der Website sucht und diese sammelt.

In der Regel fungiert die Start- oder Startseite als so genannte Seed-Seite. Hier beginnt der Crawler mit der Suche nach Links zu den Seiten der Website. Wenn der Crawler Links von einer Seite findet, folgt er ihnen zu den anderen Seiten, auf die die Links verweisen. Dann folgt er den gefundenen Links von den anderen Seiten und wiederholt diesen Vorgang, bis es keine neuen Links mehr gibt, denen er folgen kann. Während dieses Prozesses werden alle Links zu den Seiten gesammelt. Zusätzlich zur Seed-Seite kann der Crawler auch die Links nutzen, die er in einer Sitemap gefunden hat.

Wenn der Crawler durch die Links iteriert hat, werden die Webseiten oder ein Satz ausgewählter Inhalte von den Webseiten angefordert. Das Anfordern ausgewählter Inhalte von Webseiten wird als Scraping bezeichnet, das eine Untermenge des Crawling ist. In diesem Artikel wird im Zusammenhang mit der Abfrage ausgewählter Inhalte von Webseiten von Crawling im Allgemeinen und nicht von Scraping gesprochen.

Die angeforderten Inhalte werden in einer Datenbank gespeichert, die als Index strukturiert ist, was auch als Indizierung bezeichnet wird. Das bedeutet, dass die ausgewählten Inhalte, die von jeder Webseite gecrawlt werden, ein Referenzdokument haben, das die ausgewählten Inhalte im Index hält.

Wenn also ein Besucher die Suchmaschine benutzt, um Inhalte zu finden, enthält das Suchergebnis sowohl den gecrawlten Inhalt als auch den Link zu der Webseite, auf der der Inhalt gecrawlt wurde.

Ajax Crawling, Rendering vor Crawling
AJAX-Websites bieten Besuchern ein reichhaltiges interaktives Benutzererlebnis, ohne dass jedes Mal die gesamte Webseite geladen werden muss, wenn neue Inhalte konsumiert werden. Während das Benutzererlebnis großartig sein mag, bringt das Abrufen von Inhalten aus AJAX-Webseiten einige Herausforderungen mit sich.

Bei statischen Webseiten kann der Inhalt der Webseite aus der Seitenquelle ermittelt werden. Auf AJAX-Webseiten wird der Inhalt jedoch größtenteils dynamisch generiert, indem AJAX-Technologien für die Übertragung und das Rendering des Inhalts verwendet werden, nachdem die Seite geladen und die Skripte ausgeführt wurden.

Crawler sind in der Lage, statische Webseiten zu crawlen, aber das Crawlen von dynamisch generierten Inhalten ist nicht möglich. Das liegt daran, dass Crawler nicht in der Lage sind, die Skripte auszuführen, die den Inhalt für den Besucher sichtbar und in den Speicher des Webbrowsers übertragen.

Wenn Crawler keine AJAX-Anfragen ausführen können, wie funktioniert dann das AJAX-Crawling? Kurz gesagt, die Webseite muss mit einem Browser geladen werden, in dem die AJAX-Anfragen und das Javascript, das die Seitenelemente sichtbar macht, ausgeführt werden.

Erst danach kann die AJAX-Seite als statische HTML-Seite exportiert werden, die dann abgefragt und indiziert werden kann. Dieser Vorgang wird als Prerendering bezeichnet.

Zwei Arten des Prerenderings von AJAX-Webseiten
Die Idee des Prerendering ist es, Webseiten crawler-freundlich für jede Suchmaschine zu machen, die Webseiten crawlt und indiziert. Dies wird ermöglicht, indem statische HTML-Schnappschüsse der Webseiten der Website durch Prerendering erstellt werden. Somit ist das Prerendering einer AJAX-Site auch eine Form der Suchmaschinenoptimierung (SEO).

Prerendering kann mit Bibliotheken und Frameworks eingerichtet werden, die mit verschiedenen Programmiersprachen verwendet werden können. Es gibt auch Dienstleister, die Prerendering über eine Middleware anbieten, die separate Antworten auf Crawler- und Benutzeranfragen gibt.

Automatisierungs-Frameworks und Headless-Browser
Einige der Programmiersprachen, die für das Crawling von Webseiten verwendet werden, sind Python und Javascript (mit Node.js-Laufzeit). Beim Crawling von AJAX-Webseiten werden die Programmiersprachen in Verbindung mit Automatisierungsframeworks, wie Selenium, und mit sogenannten Headless Browsern verwendet.

Selenium ist ein Browser-Automatisierungsframework, mit dem die Automatisierung der Interaktion mit dem Browser recht einfach einzurichten ist. Selenium ist für AJAX-Crawling zwar nicht zwingend erforderlich, aber praktisch, wenn die Interaktionen des Besuchers – zum Beispiel das Iterieren durch paginierte AJAX-Inhalte, die eine Benutzerinteraktion erfordern – für das Crawling der Inhalte benötigt werden.

Ein Headless Browser ist ein Webbrowser, der keine grafische Oberfläche hat. Dadurch kann er von einer Kommandozeile aus verwendet werden – zum Beispiel von einem Webserver. Die gängigsten Headless-Browser, die für das Prerendering verwendet werden können, sind PhantomJS, Headless Chrome und Firefox Headless Mode.

Headless-Browser sind die wichtigsten Komponenten für das Prerendering von dynamisch generierten AJAX-Webseiten in crawlbare statische HTML-Seiten. Wie bereits in diesem Artikel erwähnt, werden Browser als Werkzeug verwendet, um AJAX-Inhalte anzufordern und das Javascript auszuführen, das den Inhalt in den Speicher des Browsers rendert.

Prerendering als Dienstleistung
Prerendering kann auch als Service bezogen werden. Der Dienst beinhaltet Prerendering, das AJAX-Seiten in statische HTML-Seiten umwandelt. Er unterstützt auch eine Middleware, die separate Antworten auf Crawler- und Benutzeranfragen hat.

Die Benutzeranfrage leitet den Besucher ganz normal auf die dynamisch generierte Seite, die der Browser durch AJAX-Anfragen und Ausführen des Javascript sichtbar machen kann. Da Crawler nur statische HTML-Inhalte crawlen können, leitet die Middleware die Crawler-Anfrage an die statische HTML-Seite weiter, die vom Prerendering-Dienstanbieter vorgerendert wurde. Die Anfrage des Crawlers wird von der Middleware anhand des User-Agents des Crawlers erkannt.

Die Idee des Prerendering-Dienstes ist es, AJAX-Webseiten crawlerfreundlich zu machen und damit auch die Möglichkeit für SEO zu bieten. Einer der kommerziellen Dienste ist das Open-Source-basierte Prerender.io, das auch auf einem Webserver installiert werden kann.

Fazit
Crawling ist ein Prozess, durch den die Seiten einer Website für die Nutzung durch eine Suchmaschine indiziert werden. Beim AJAX-Crawling sind jedoch einige zusätzliche Schritte erforderlich, um den dynamischen Inhalt in ein statisches Format umzuwandeln, das gecrawlt werden kann.

Dies kann durch das Einrichten einer Umgebung mit programmierbaren Frameworks in Verbindung mit Headless Browsern erfolgen. Es gibt auch Dienste, die es einfacher machen, statische Inhalte für Crawler bereitzustellen.

Wenn Sie einen Service bevorzugen, der sich sowohl um das AJAX-Crawling kümmert als auch Ihnen eine Suchmaschine zur Verfügung stellt, die einfach auf Ihrer Seite einzurichten ist, kontaktieren Sie unseren Vertrieb und bestellen Sie eine Demo.