JavaScript-Websites: Ist das Spiel die Kerze wert? Meinung der Experten
Möchtest du persönliche Serpstat-Demonstration, die Testversion oder erfolgreiche Use-Cases bekommen? Sende eine Demo-Anfrage und unser Support-Team kontaktiert dich ;)
Können JS-Websites überhaupt erfolgreich optimiert werden?
Google nutzt laut eigenen Aussagen den Web Rendering Service (WRS), welcher auf dem Stand des Google Chrome Browsers in der Version 41 basiert, um JavaScript zu rendern. Technologien und Features aus dem Jahr 2015. Wer gerne den Unterschied zwischen dem Chrome 41 und der aktuellen Version vergleichen möchte, kann sich caniuse.com anschauen.
Abgesehen davon, ist Google aktuell die einzige Suchmaschine, die überhaupt versucht, JavaScript zu rendern. Andere Crawler von Unternehmen wie z. B. Bing, Facebook, Twitter usw. versuchen es gar nicht. Ist es sinnvoll, Content bereitzustellen, den nur Google sieht?
Allgemein beschäftigen sich Technical-SEOs damit, Websites und deren Inhalte in einem bestmöglichen Zustand schnell und einfach an die Suchmaschinen auszuliefern. Wer sich dessen bewusst ist, wird sich wohl die Frage selbst beantworten können, ob es sinnvoll ist, eine Website und deren Content der Suchmaschinen Client-Side bereitzustellen.
Grundsätzlich unterscheidet sich die Auslieferung von JavaScript-basierten Seiten von der von den konventionellen folgendermaßen: Normalerweise wird das HTML-Dokument auf dem Server gerendert und fertig, also mit allen relevanten Inhalten im DOM (Document Object Model) an den Client (z. B. dem Browser) geschickt.
Reine JavaScript-Seiten werden prinzipiell als leeres Dokument an den Client geschickt und erst dort gerendert. Für Maschinen, insbesondere Crawler, Spider und Bots bedeutet das Auslesen der Inhalte somit wesentlich mehr Aufwand, denn das JavaScript muss von ihnen ausgeführt und die Seite gerendert werden.
Ja, auch JavaScript-basierte Webseiten können optimiert werden. Dabei gilt folgende Faustregel: Je leichter Inhalte zu erreichen sind, desto zuverlässiger und schneller können sie indexiert werden.
Neben der Grundausstattung wie den Meta-Tags sind wichtige Faktoren die Lade-Performance (Dateigrößen, Code-Reduzierung, serverseitiges Rendering), Rendering-Performance (Code-Qualität und Optimierung, Pre-Compiling bei Frameworks) und, wie auch bei statischen Seiten, Zugänglichkeit (Accessibility) sowie Semantik (Kontext).
Wer auch auf andere Suchmaschinen, wie beispielsweise Yandex angewiesen ist, sollte hier grundsätzlich vorsichtig sein, da andere Suchdienste beim Interpretieren von JavaScript Schwächen haben.
Es ist aber durchaus möglich Seiten, die auf Frameworks wie Angular, React, Vue & Co basieren, für Google und auch andere Suchmaschinen zu optimieren. Jedoch ist eine Optimierung solcher Seiten meist deutlich aufwendiger und setzt ein tieferes technisches Verständnis voraus. Dazu kommt sich das auch das Auditing solcher Websites schwieriger gestaltet, nachdem bei weitem noch nicht alle SEO-Tools mit JavaScript umgehen können.
Welche Aspekte sollte man unbedingt bei der Optimierung von JS-Websites beachten?
Google selbst empfiehlt in einigen Fällen Server-Side-Rendering. Google nennt es lediglich anders: „Dynamic Rendering". Interessant ist es auch, dass Google für die hauseigene Videoplattform YouTube Server-Side-Rendering einsetzt. Wenn das nicht schon genug Gründe gegen Client-Side-Rendering und für Server-Side-Rendering in Bezug auf SEO wären
Lade-Performance
Eine Seite sollte möglichst schnell an den Client ausgeliefert werden. Gerade in Zeiten der mobilen Devices spielt dieser Aspekt eine fundamentale Rolle und wirkt sich auf die Platzierung in den SERPs aus. Im Optimalfall sollte die Seite in einer Sekunde im Browser angezeigt werden und zumindest ansatzweise bedienbar sein.
Viele populäre JavaScript-Frameworks wie z. B. Angular, React oder Vue bieten SSR (Server-Side-Rendering) an. Dabei werden dedizierte Seiten auf dem Server vorgerendert, als fertiges HTML an den Client gesendet und die eigentliche Applikation dann im Hintergrund nachgeladen. Dadurch befinden sich initiale Inhalte bereits im DOM, wenn sie beim Client ankommen und können direkt konsumiert werden.
Genau wie bei konventionellen Seiten spielen Code-Optimierung und Architektur eine ebenso wichtige Rolle. In Zeiten von HTTP/2 wird z. B. eine große JavaScript-Datei gerne in mehrere sogenannte Chunks aufgeteilt, die dann parallel in einem Stream geladen und somit schneller ausgeliefert werden können.
Rendering-Performance
Wie bei herkömmlichen Seiten sollte der Code natürlich schlank und performant gehalten werden. Werden Frameworks benutzt, sollte der Code pre-compiled, also bereits vorkompiliert ausgeliefert werden. Angular nutzt dafür z. B. das AOT (Ahead Of Time) Compiling, welches die Kompilierung von Angular und Typescript bereits im Build-Prozess ausführt und natives JavaScript erzeugt. Durch eine Vorkompilierung wird dem Client-Device (also auch dem Bot) Rechenleistung abgenommen.
Zugänglichkeit und Semantik
Auch wenn das HTML über JavaScript generiert wird, gelten die gleichen Regeln für Zugänglichkeit und Barrierefreiheit wie bei den konventionellen Websites.
Z. B. sollten im Umfeld einer SPA (Single Page Application) die einzelnen Unterseiten über Deeplinks mittels eines Routings erreichbar gemacht werden (Anm.: wichtig ist dabei die Unterscheidung zwischen einem tatsächlichen Anchor-Tag mit sichtbarem Link und einem Button, der eigentlich nur als Schaltfläche für Interaktionen auf derselben Page dient). Auf diesem Wege kann die Suchmaschine die Seiten verfolgen und die Links können letztlich auch in die obligatorische Sitemap aufgenommen werden.
Es empfiehlt sich, wenn es das Budget zulässt, Microdata zu implementieren. Um die Einbindung in Javascript-basierte Seiten und SPAs (Single Page Applications), also dynamisch generierte Seiten zu erleichtern, wurde das JSON-LD-Format (JSON für Linked Data) für schema.org entwickelt. Der Vorteil an einem JSON-LD-Template im Gegensatz zu den schema.org-Annotationen ist die Unabhängigkeit vom HTML-Markup, denn es kann mit einem Script-Tag an entsprechender Stelle in das DOM injiziert und dynamisch befüllt werden. Viele Informationen, die über JSON-LD an die Suchmaschinen geliefert werden, generieren in den SERPs die begehrten Rich Snippets.
Auf Anfragen muss der Server den Status-Code 200 liefern, vom Umschreiben der URL mit pushState sollte man daher Abstand nehmen. Für JS-Seiten gilt das Gleiche, wie für HTML. Der Bot wertet Meta-Daten aus und sollte diese auch bekommen. Ähnliches gilt für vorhandene Hyperlinks und Bilder. Hier werden immer wieder die beschreibenden Attribute vergessen.
Bisher ist Google leider die einzige Suchmaschine, von der wir wissen, dass sie eine Rendering Engine einsetzt, um JavaScript auszuführen und die Website ebenso zu „sehen" wie sie auch der User in seinem Browser sieht. Dass man JS- und CSS-Ressourcen nicht für den Googlebot blockiert, sollte selbstverständlich sein.
Dieses Rendern von Webseiten ist aber enorm ressourcenaufwendig – selbst für den Branchenriesen Google. Dazu kommt, dass Crawler anderer Suchmaschinen (sowie auch Crawler von Facebook, Twitter, LinkedIn usw., die Seiten beispielsweise für die Generierung einer Preview Box besuchen) noch überhaupt kein JavaScript rendern.
Das Zauberwort, um JavaScript Frameworks SEO-tauglich zu machen ist daher: Server-Side-Rendering. Statt den HMTL-Code erst auf Client-Seite errechnen zu lassen, wird die Seite schon serverseitig „vorgerendert" (pre-rendering) und fertig ausgeliefert. Dabei gibt es verschiedene Modelle, an welche User-Agents was ausgeliefert werden soll. So kann die bereits auf dem Server vorgerenderte Seite einfach an alle – sowohl Browser als auch Bots – ausgeliefert werden oder man setzt eine Middleware ein, um ausschließlich Bots die vorgerenderte Version zu zeigen, während die normalen User die JS-basierte Seite bekommen.
Google empfiehlt einen Mittelweg zu wählen, bei dem zunächst sowohl normale User als auch Suchmaschinen eine vorgerenderte Version der Seite ausgeliefert bekommen. Erst wenn der User beginnt, mit der Seite zu interagieren, beginnt das JavaScript über das DOM, den Quellcode zu verändern.
Dazu dürfen „klassische" technische SEO-Basics nicht vergessen werden. Zum Beispiel braucht natürlich jede Seite, die indexiert werden soll, eine eigene, einzigartige und dauerhafte URL. Denn URLs sind schließlich die Entitäten, die Suchmaschinen in den Suchergebnissen listen. Da man per JavaScript Inhalte dynamisch laden kann, ohne dass sich dabei die URL ändert, scheint das bei JS-Frameworks aber nicht immer selbstverständlich (Stichwort „Single Page App"). Als SEO muss man daher sichergehen, dass alle relevanten Seiten auf eigenen URLs liegen und dass diese auch immer direkt aufrufbar sind.
Auch das Handling von Meta-Tags, die korrekte Verwendung von Server Status Codes oder simple Verlinkungen können zu Stolpersteinen werden.
Welche Vor- bzw. Nachteile haben diese Websites in Bezug auf SEO
Direkte, messbare und verwertbare Vorteile für SEO habe ich bei rein JavaScript-basierten Ansätzen noch nicht feststellen können. Denkbar wäre ein Konkurrenzvorteil durch verbesserte Bedienbarkeit, erhöhte Conversion und dadurch gesteigerte CTR.
Die größte Aufgabe ist oft die Entwickler der Seiten für das Thema SEO zu sensibilisieren, um gemeinsam potenzielle Probleme bezüglich der Crawlbarkeit und Indexierung von vorneherein mitzudenken. Denn oft scheint die Umsetzung relevanter Punkte in solchen Seiten aufwendiger als gewöhnlich.
Das Thema SEO ist bei den Entwickler-Teams der großen Frameworks angekommen, die zunehmend entsprechende Lösungen für gängige Probleme bereitstellen. Soweit, dass JS-Seiten „out of the box" SEO-freundlich sind, sind wir aber noch lange nicht.
In welchen Fällen lohnt es sich, eine JS-basierte Website zu erstellen?
Interessant wird es erst, wenn viele Interaktionen im User-Interface gefragt sind und die Inhalte dynamisch generiert werden. Klassische Beispiele dafür sind Dashboards jeglicher Art und datengetriebene Ansätze mit Suchfunktionen und Filtermöglichkeiten.
Bei Shops wird es schon komplizierter, denn die Vorteile eines JS-basierten User-Interfaces mit asynchronen Filterungen und Suchmechanismen sind schon sehr verlockend, aber die Produkte sollten in jedem Fall leicht und schnell zu indexieren sein.
Die Verwendung eines reinen JS-basierten Ansatzes muss immer genau mit den Bedürfnissen der Plattform abgestimmt werden und ist von daher nicht in jedem Fall empfehlenswert.
Man sollte daher immer abwägen, welche Features und Funktionen die geplante Website bieten soll und welcher Weg hier sinnvoll ist.
Zusammenfassung
- Obwohl die JS-Websites mehrere Vorteile bringen (Benutzerfreundlichkeit und erweiterte Funktionalitäten), ist die JS-Seitenindexierung komplizierter als die der gewöhnlichen Websites.
- Die meisten Suchmaschinen nehmen JS-Inhalte nicht auf. Auch Google verfügt über eingeschränkte technische Möglichkeiten in Bezug auf die JS-Indexierung.
- JavaScript ist nicht geeignet für Websites von Unternehmen, News-Portalen und Blogs, die sich auf Inhalte konzentrieren. JS-Websites machen sich bezahlt, wenn du ein großes Projekt optimierst, das über vielfältige interaktive Dashboard-Funktionen verfügt.
- Es lohnt sich nicht, JavaScript anzuwenden, wenn du auf den organische Traffic und SEO setzt. JS-Inhalte können angewendet werden, wenn die meisten Besucher durch Refer-Links oder die Kontextwerbung kommen.
- Die Ladezeit der JS-Inhalte spielt eine bedeutsame Rolle, da die Suchmaschine sie einfach nicht „sieht", wenn die Website langsam geladen wird. Hier könnte Server Side Rendering hilfreich sein.
blog_main_page_trial_form_header
article_trial_block_first_line
article_trial_block_second_line
discover_more_seo_tools
seo_seo_block_title_1
seo_seo_block_text_1
seo_seo_block_title_2
seo_seo_block_text_2
seo_seo_block_title_3
seo_seo_block_text_3
seo_seo_block_title_4
seo_seo_block_text_4
Empfehlungen
Cases, Lifechaks, Studien und nützliche Artikel
Hast du keine Zeit, um auf dem Laufenden zu bleiben? Kein Problem! Unsere Lieblingsredakteurin Stacy sammelt für dich die besten Artikel, die dir unbedingt bei der Arbeit helfen. Trete unserer Community bei :)
Wenn du auf die Schaltfläche zum Absenden klickst, stimmst du den Nutzungsbedingungen und der Datenschutz-Policy von Serpstat zu.