Eine JavaScript-Weiterleitung ist eine Weiterleitung, die der Browser per Skript ausführt, meist über window.location. Der Server liefert zunächst eine normale Seite mit Status 200 aus, erst das ausgeführte JavaScript schickt den Besucher zur neuen URL.
Wie funktioniert eine JavaScript-Weiterleitung?
Anders als eine HTTP-Weiterleitung (301, 302, 307, 308) steckt die Information nicht im Statuscode und im Location-Header, sondern im Code der Seite. Ein Crawler erkennt sie erst, wenn er die Seite rendert und das Skript ausläuft. MDN nennt als Nachteil, dass sie nur auf Clients funktioniert, die JavaScript ausführen, und nicht für alle Ressourcentypen taugt.
Google rendert JavaScript und kann solche Weiterleitungen verarbeiten. Die Dokumentation zu Weiterleitungen rät dennoch, sie nur zu verwenden, wenn serverseitige Weiterleitungen oder Meta Refresh nicht möglich sind. Serverseitige Weiterleitungen gelten bei Google als zuverlässigste Variante.
Für den Browser gibt es zwei gängige Schreibweisen. location.href = … legt die Ausgangsseite im Verlauf ab. Bei location.replace(…) wird die aktuelle Seite laut MDN nicht im Verlauf gespeichert, der Zurück-Button führt also nicht dorthin.
| Art | Dauerhaft oder temporär? | Anfragemethode | Wirkung in Google | Wie sicher erkennt Google sie? |
|---|---|---|---|---|
| 301 Moved Permanently | dauerhaft | POST darf beim Folgen zu GET werden | Signal, dass das Ziel die kanonische URL werden soll | am sichersten (serverseitig) |
| 308 Permanent Redirect | dauerhaft | bleibt erhalten | wie 301 | am sichersten (serverseitig) |
| 302 Found | temporär | POST darf beim Folgen zu GET werden | kein Signal für das Ziel; es kann über andere Signale trotzdem indexiert werden | am sichersten (serverseitig) |
| 307 Temporary Redirect | temporär | bleibt erhalten | wie 302 | am sichersten (serverseitig) |
| Meta-Refresh ohne Verzögerung (0 s) | dauerhaft | – (Weiterleitung im HTML, kein 3xx-Statuscode) | wie 301 | nach den serverseitigen Weiterleitungen |
| Meta-Refresh mit Verzögerung (> 0 s) | temporär | – (Weiterleitung im HTML, kein 3xx-Statuscode) | wie 302 | nach den serverseitigen Weiterleitungen |
| JavaScript (location) (dieser Begriff) | dauerhaft | – (Weiterleitung im Browser) | wie 301, aber nur, wenn Google die Seite rendert | am unsichersten: schlägt das Rendering fehl, sieht Google sie nie |
Google sortiert die Arten danach, wie sicher es sie richtig deutet: serverseitige Weiterleitungen zuerst, JavaScript zuletzt. Die Angaben zur Anfragemethode stammen aus RFC 9110 (Abschnitt 15.4). Quellen: Google Search Central: Redirects and Google Search (last updated 2026-04-14); Google Search Central: How to specify a canonical URL (redirects as canonical signal); RFC 9110: HTTP Semantics, 15.4 Redirection 3xx. Stand: .
Wann sie vorkommt
- Single-Page-Apps, die clientseitig auf andere Routen oder Sprachversionen umleiten.
- Seiten, bei denen keine Serverkonfiguration möglich ist.
- Google selbst führt sie in der JavaScript-Dokumentation als Weg an, bei clientseitig gerenderten Seiten ein Soft 404 zu vermeiden: Die Seite leitet per JavaScript auf eine URL um, die mit 404 antwortet.
Beispiel
<script>
window.location.replace("https://beispiel.de/neue-seite/");
</script>
Dieselbe Weiterleitung als serverseitige Variante in nginx:
return 301 https://beispiel.de/neue-seite/;
Häufige Fehler
- Eine JavaScript-Weiterleitung steht dort, wo ein 301 möglich wäre.
- Die Skriptdatei ist per robots.txt gesperrt. Da ein Crawler gesperrte URLs nicht abruft, kann er die Weiterleitung dann nicht ausführen (Schlussfolgerung aus den robots.txt-Regeln).
- JavaScript-, Meta-Refresh- und HTTP-Weiterleitung greifen gleichzeitig. MDN rät, die Methoden nicht zu mischen.
Quellen
- Weiterleitungen und Google Suche – Google Search Centraldevelopers.google.com
- Grundlagen der JavaScript-SEO – Google Search Centraldevelopers.google.com
- Redirections in HTTP – MDN Web Docsdeveloper.mozilla.org
- Location: replace() method – MDN Web Docsdeveloper.mozilla.org
Stand: