7 Min

Eines vorweg:

JavaScript kann für die Suchmaschinenoptimierung problematisch sein, da die Crawler der Suchmaschinen es nicht immer gut verarbeiten können. Wenn Du aber Best-Practices befolgst, kann JavaScript effektiv dazu beitragen, das SEO Deiner Website zu verbessern.

Die WebDev Community auf Stackoverflow ist sich darüber einig, dass Google-Crawler das Javascript deiner Website nicht “sehen”, sondern nur statische, nicht-interaktive Inhalte untersuchen.

Wenn du wissen willst, wie deine Website ohne Javascript aussieht, verwende ein No-Js Browser-Plugin. Ich verwende Toggle Javascript. Deaktiviere das Javascript auf deiner Website, und schon betrachtest du deine Website aus der Sicht eines Google-Crawlers.

Trotzdem kann JavaScript das SEO deiner Website unterstützen, wenn es richtig eingesetzt wird. Hier sind einige Tipps, wie du JavaScript verwenden kannst, um deine Website SEO-freundlicher zu machen.

Tipp1 : Server-Side Rendering (SSR)

Suchmaschinen können Schwierigkeiten haben, dynamischen JavaScript-Content zu rendern. Mit SSR wird der HTML-Code auf dem Server erzeugt und direkt an den Browser geschickt.

Wie SSR funktioniert?

Beim serverseitigen Rendering (SSR) werden Websites auf dem Server vorgerendert, und nicht erst im Browser gerendert werden.

Der Server ruft alle erforderlichen Daten ab (aus einer Datenbank oder API) und rendert den vollständigen HTML-Code für die Seite, wobei die Daten bereits eingefügt sind, und sendet diesen fertigen HTML-Code an den Client. Nachdem die Seite im Webbrowser des Users geladen wurde, wird sie durch JavaScript erweitert, so dass sie interaktiv wird, ohne dass ein vollständiges Neuladen erforderlich ist. Das nennt man Hydration.

Im Vergleich zum clientseitigen Rendering bietet SSR kürzere Ladezeiten, da der Server die schwere Arbeit des Renderings des Inhalts übernimmt, bevor er ihn an den Browser ausliefert.

Sequenzdiagram von Server Side Rendering (SSR), erstellt mit mermaid

Sequenzdiagram von Server Side Rendering (SSR), erstellt mit mermaidchart.com

Verwende Frameworks wie Next.js (für React) oder Nuxt.js (für Vue), die SSR unterstützen. Diese Frameworks rendern Inhalte auf dem Server und liefern SEO-optimierten HTML-Code an Suchmaschinen.

Tipp 2: Pre-Rendering

Wenn du eine SPA (Single Page Application) baust, die JavaScript stark verwendet, könnte Pre-Rendering helfen. Dabei wird die Website im Voraus als statisches HTML generiert und von Suchmaschinen leicht indexiert.

Tipp 3: Vermeide das Blockieren des Renderings mit JavaScript

Blockierende Skripte verzögern die Seitenanzeige und erhöhen die Ladezeiten, was sich negativ auf das SEO-Ranking auswirken kann.

Die Lösung? Verwende async oder defer Attribute in <script>-Tags, um nicht kritische JavaScript-Dateien erst nach dem Laden der Seite auszuführen.

   <script src="script.js" defer></script>

Tipp 4: Sorge für korrekte Meta-Tags bei dynamischem Content

Meta-Tags wie <title> und <meta description> sind wichtige Ranking-Faktoren. Bei dynamischen Inhalten müssen diese Informationen korrekt in die Seite integriert werden.

Mit Bibliotheken wie React Helmet oder Vue Meta kannst du dynamische Meta-Tags auf jeder Seite verwalten, damit Suchmaschinen die relevanten Informationen erfassen.

Tipp 5: Verwende Structured Data mit JSON-LD

Durch strukturierte Daten (Schema.org) können Suchmaschinen den Inhalt deiner Website besser verstehen, was zu Rich Snippets in den Suchergebnissen führen kann.

Nutze JavaScript, um JSON-LD-Daten dynamisch in den <head>-Bereich deiner Seite einzufügen.

Beispiel:

   <script type="application/ld+json">
   {
     "@context": "https://schema.org",
     "@type": "Organization",
     "name": "WebDev Guide",
     "url": "https://www.webdev-guide.com"
   }
   </script>

Tipp 6: Lazy Loading für Bilder und Videos

Lazy Loading ist eine Technik, bei der Inhalte wie Bilder, Videos oder Skripte erst dann geladen werden, wenn sie tatsächlich benötigt werden, d. h. wenn sie in den sichtbaren Bereich des Bildschirms (Viewport) gelangen. Dies verbessert die Ladegeschwindigkeit und die Performance einer Webseite, da nur die Ressourcen geladen werden, die der Benutzer unmittelbar sieht.

Beispiel: Lazy Loading eines Bildes mit HTML

Beispiel:

<img src="image-placeholder.jpg" data-src="actual-image.jpg" alt="Lazy Loaded Image" loading="lazy">

Durch die Verwendung der Property loading="lazy" wird das Bild erst geladen, wenn es in den sichtbaren Bereich des Benutzers kommt.

Lazy Loading ist zwar gut für die Leistung, aber nicht für Inhalte, die für die Suchmaschinenoptimierung wichtig sind, wie z. B. der Haupttext, Überschriften und Metadaten. Stelle sicher, dass Dein Kerninhalt beim ersten Laden der Seite sichtbar und indizierbar ist, oder stelle sicher, dass Suchmaschinen-Bots darauf zugreifen können.

Das Laden von großen Medien wie Bildern und Videos kann die Seitenladezeit beeinflussen, was sich auf deine SEO auswirkt.

Verwende Lazy Loading, um Bilder und Videos erst zu laden, wenn sie im sichtbaren Bereich des Nutzers erscheinen. Nutze dafür HTML-Attribute wie loading="lazy" oder JavaScript-Lösungen.

Anstatt alle Elemente einer Seite beim ersten Laden herunterzuladen, werden Inhalte dynamisch nachgeladen, sobald der Benutzer auf der Seite scrollt. Dies reduziert die Initial-Ladezeit und spart Bandbreite, was vor allem auf mobilen Geräten von Vorteil ist.

Tipp 7: Verwende history.pushState für SPAs

Single Page Applications (SPAs) ändern den Inhalt der Seite dynamisch, ohne die URL zu aktualisieren, was Suchmaschinen verwirren kann.

Die Lösung: Verwende history.pushState oder replaceState in JavaScript, um die URL zu ändern, wenn sich der Seiteninhalt ändert, damit jede Seite von Suchmaschinen erkannt wird.

Beispiel:

   window.history.pushState({}, 'Title', '/new-url');

Tipp 8: Sorge für eine gute Page Performance

Seit der Einführung von Core Web Vitals durch Google ist die Ladegeschwindigkeit der Seite ein wichtiger Ranking-Faktor.

Optimiere deine JavaScript-Dateien, indem du Code-Splitting einsetzt und unnötige Skripte verzögerst. Verwende Browser-Caching und minifiziere dein JavaScript, um die Ladezeiten zu reduzieren.

Tipp 9: Achte auf Mobile-First SEO

Google verwendet Mobile-First Indexing, was bedeutet, dass die mobile Version deiner Website zuerst bewertet wird.

Stelle sicher, dass dein JavaScript für mobile Geräte optimiert ist und dass alle Inhalte auf mobilen Geräten zugänglich und benutzerfreundlich sind. JavaScript-basierte Menüs und Interaktionen sollten reibungslos auf mobilen Geräten funktionieren.

Tipp 10: Nutze Canonical URLs

Wenn JavaScript dynamische URLs erzeugt, kann es zu doppelten Inhalten kommen, was SEO schadet.

Also? Verwende Canonical Tags in deinen Seiten, um klarzustellen, welche URL die Hauptversion ist.

Beispiel:

   <link rel="canonical" href="https://www.webdev-guide.com/main-page">

SEO in Node.js und Svelte

Sowohl Node.js als auch Svelte sind populäre Web-Development-Frameworks, die auf unterschiedliche Weise mit SEO umgehen. Hier ist eine nähere Betrachtung, wie sie funktionieren und was du beachten solltest, wenn du mit diesen Frameworks SEO optimieren möchtest.

1. Node.js

Node.js ist eine serverseitige JavaScript-Laufzeitumgebung, die es ermöglicht, JavaScript-Code auf dem Server auszuführen. Node.js wird oft als Grundlage für serverseitige Anwendungen und Frameworks wie Express.js und Next.js verwendet.

SEO-Optimierung mit Node.js

Da Node.js serverseitig arbeitet, gibt es hier einige Möglichkeiten, SEO zu unterstützen:

  • Server-Side Rendering (SSR): Mit Node.js kannst du Inhalte auf dem Server rendern und HTML an den Browser senden, anstatt sich ausschließlich auf clientseitiges Rendering zu verlassen, wie es bei reinen SPAs (Single Page Applications) oft der Fall ist. Dies stellt sicher, dass Suchmaschinen-Bots den vollständigen HTML-Inhalt der Seite sehen können, anstatt auf clientseitiges JavaScript angewiesen zu sein.

  • Express.js & SEO: Express.js ist ein minimalistisches Node.js-Framework, das keine spezifischen SEO-Features hat, aber SSR oder Pre-rendering in Kombination mit anderen Tools ermöglicht. Du kannst Meta-Tags, kanonische URLs und strukturiertes Daten-Markup in die serverseitige Logik einbauen, um SEO zu verbessern.

Node.js SEO-Tipps:

Verwende SSR oder Pre-rendering, um sicherzustellen, dass Inhalte für Crawler sichtbar sind.

Stelle sicher, dass dynamisch erzeugte Seiten mit den richtigen Meta-Tags und strukturierter Daten ausgestattet sind.

Achte auf die Page Performance, da die Ladegeschwindigkeit ein wichtiger SEO-Faktor ist (z. B. JavaScript minifizieren, Caching verwenden).


2. Svelte

Svelte ist ein modernes Frontend-Framework, das sich von anderen Frameworks wie React oder Vue dadurch unterscheidet, dass es keinen Laufzeit-Overhead hat. Stattdessen wird der Code während des Build-Prozesses in hochperformantes JavaScript kompiliert, was besonders gut für die Performance ist.

SEO-Optimierung mit Svelte

Svelte rendert standardmäßig auf der Client-Seite, was zu SEO-Problemen führen kann, da Suchmaschinen Schwierigkeiten haben, Inhalte zu crawlen, die erst nach der Ausführung von JavaScript erscheinen. Allerdings gibt es Lösungen, um auch mit Svelte SEO-freundliche Anwendungen zu bauen.

  • Sapper (der Vorgänger von SvelteKit): Sapper war das offizielle Framework für SSR und Pre-rendering in Svelte. Es wurde durch SvelteKit ersetzt, das bessere Möglichkeiten bietet, SEO zu optimieren, einschließlich SSR und Pre-rendering.

  • Server-Side Rendering (SSR) mit SvelteKit: Mit SvelteKit kannst du Inhalte serverseitig rendern, sodass Suchmaschinen den gesamten HTML-Inhalt der Seite sehen können. Dies vermeidet Probleme, die auftreten können, wenn Inhalte nur clientseitig über JavaScript nachgeladen werden.

SvelteKit bietet eine eingebaute Funktion zur Generierung statischer Seiten, bei der bestimmte Seiten im Build-Prozess vorgerendert und als statische HTML-Dateien bereitgestellt werden. Dies ist ideal für SEO, da die Seiten ohne JavaScript vollständig geladen werden können.

Svelte SEO-Tipps:

Nutze das Svelte-Kit, um SSR oder Pre-rendering zu aktivieren. Damit stellst du sicher, dass alle wichtigen Inhalte für Suchmaschinen indexierbar sind. Implementiere dynamische Meta-Tags und strukturierte Daten in den gerenderten Seiten. Nimm Lazy Loading für Bilder und Videos - das hält die Ladezeiten kurz, und die Core Web Vitals freuen sich.

Vergleich: Node.js vs. Svelte für SEO

Aspekt Node.js Svelte (mit SvelteKit)
Server-Side Rendering Gut unterstützt mit Frameworks wie Next.js oder Express.js Vollständig unterstützt mit SvelteKit
Pre-rendering Kann durch statische Site-Generatoren oder Tools wie Next.js realisiert werden Integriert in SvelteKit, erlaubt das Vor-Rendern von Seiten
Page Performance Gut für serverseitige Optimierungen Hervorragend durch kompiliertes JavaScript und geringe Laufzeit
Meta-Tags und SEO Unterstützt durch SSR-Frameworks, die dynamische Inhalte rendern Meta-Tags und SEO-Optimierungen sind mit SvelteKit möglich
Crawling & Indexing Gut durch SSR und Pre-rendering Ebenfalls gut durch SvelteKit, aber reines Svelte (clientseitig) braucht Hilfsmittel wie Prerendering

Fazit

Node.js ist besonders stark bei serverseitigem Rendering, wenn du Frameworks wie Next.js oder Express.js verwendest. Du kannst komplexe SEO-Optimierungen vornehmen und hast volle Kontrolle über die serverseitige Logik. Svelte, insbesondere mit SvelteKit, bietet eine sehr gute Performance und unterstützt sowohl SSR als auch Pre-rendering. Für SEO ist es jedoch wichtig, SvelteKit zu verwenden, da dies alle Tools bietet, um Seiten effizient zu rendern und indexierbar zu machen. Beide Frameworks können für SEO optimiert werden, solange du Server-Side Rendering oder Pre-rendering einsetzt und sicherstellst, dass deine Inhalte, Meta-Daten und strukturierten Daten für Suchmaschinen verfügbar sind.

Updated: