Das Crawlen von JavaScript-Seiten und progressiven Web Apps ist für Google inzwischen kein Problem mehr. Damit das fehlerfrei funktioniert, muss man als Webseitenbetreiber jedoch einiges beachten. Dazu gibt es jetzt ein Update.
Johannes Müller hat auf Google+ eine Reihe von Neuerungen gepostet, die im Zusammenhang mit dem Crawlen von JavaScript-Seiten und von progressiven Web Apps wichtig sind. Progressive Web-Apps sind Webseiten, die sich wie Apps bedienen lassen. Sie funktionieren für jeden Nutzer und in jedem modernen Browser, sind responsiv und arbeiten manchmal sogar offline. Der Vorteil: Es ist keine vorherige Installation notwendig.
Folgende Punkte sind laut Müller besonders wichtig, wenn es um das Crawlen solcher Webseiten geht:
- Kein Cloaking verwenden (das bedeutet, keine unterschiedlichen Inhalte für Nutzer oder Googlebot ausspielen). Es wird die Verwendung der "feature detection & progressive enhancement" empfohlen, um die Inhalte für alle Nutzer zugängig zu machen. Keine Weiterleitungen zu einer "Browser wird nicht unterstützt"-Seite verwenden. Stattdessen Polyfill-Funktionen nutzen (das sind meist in JavaScript geschriebene Funktionen, die in älteren Browsern als Ersatz für von diesen nicht unterstützte Funktionen dienen). Zu den Funktionen, die der Googlebot derzeit nicht unterstützt, gehören Service Workers, die Fetch API, Promises und requestAnimationFrame.
- Rel=canonical verwenden, wenn Inhalte von verschiedenen URLs ausgeliefert werden müssen.
- Man sollte das AJAX Crawling-Schema auf neuen Webseiten vermeiden. Ältere Seiten sollten bald migriert werden. Dabei darf man nicht vergessen, die "meta fragment"-Tags zu entfernen. Kein "meta fragment"-Tag verwenden, wenn die "escaped fragment"-URL keine vollständig gerenderten Inhalte liefert.
- Vermeiden sollte man auch das "#" in URLs (außerhalb von "#!"). Der Googlebot crawlt URLs, die ein "#" enthalten, nur selten.
- Die Verwendung von "Abruf wie durch Google" wird empfohlen, um zu sehen, wie sich die Seiten für Google darstellen. Achtung: Das Tool unterstützt weder "#"- noch "#!"-URLs.
- Es muss sichergestellt werden, dass keine der benötigten Ressourcen durch die robots.txt blockiert sind. Dazu gehören JavaScript-Dateien und -Frameworks, Server-Antworten, APIs von Drittseiten etc. Das Tool "Abruf wie durch Google" zeigt blockierte Ressourcen an. Falls Ressourcen blockiert sind, deren Freigabe nicht ohne Weiteres möglich ist (zum Beispiel bei externen APIs), muss sichergestellt sein, dass der Client-Code in geordneter Weise einen Fehler liefert.
- Die Zahl der eingebetteten Ressourcen sollte begrenzt sein. Das bezieht sich vor allem auf die Anzahl der JavaScript-Dateien und die Menge der vom Server benötigten Antworten zum Rendern der Webseite. Eine große Anzahl an benötigten URLs kann in Timeouts resultieren und zu einem Rendern der Seite ohne bestimmte Ressourcen führen, etwa wenn bestimmte JavaScript-Dateien nicht geladen werden. Sinnvoll ist der Einsatz von HTTP-Caching-Direktiven.
- Google unterstützt die Verwendung von JavaScript, um Titel, Description, Robots-Meta-Tags, strukturierte Daten und andere Metadaten bereitzustellen. Falls das Accelerated Mobile Pages-Framework (AMP) verwendet wird, müssen die entsprechenden Seiten statisch sein, die damit verbundenen HTML-Seoten dürfen jedoch JavaScript und Pogressive Web-App-Technologien verwenden.
- Es darf nicht vergessen werden, dass andere Suchmaschinen und Webservices, die auf die eigene Webseite zugreifen, möglicherweise keine JavaScript-Unterstützung bieten. Auch für diese sollten geeignete Inhalte angeboten werden.
Die Liste zeigt, dass es im Zuge der technischen Weiterentwicklung von Webtechnologien immer schwieriger wird, für eine bestmögliche Indexierbarleit der Inhalte zu sorgen. Die Dynamisierung von Webseiten und das Angleichen der Webseiten an Apps erfordern entsprechendes Wissen auch bei der Umsetzung der technischen SEO.
Titelbild © maciek905 - Fotolia.com