HTTPQUERY
Deutsch

301 Moved Permanently

Verwendung

Beim Empfang des Statuscodes 301 Moved Permanently wird vom Client erwartet, dass er gespeicherte Links auf die neue URI aktualisiert. Die neue URI wird durch den Location-Header angegeben und vom Client für die automatische Weiterleitung verwendet.

Diese Antwort tritt häufig auf, wenn Server auf eine neue Domain umziehen oder ihre interne Dateistruktur neu organisieren, ohne eine Rückkehr zur früheren URI zu planen.

Methodenwechsel

User-Agents dürfen bei einer 301-Weiterleitung aus historischen Gründen POST in GET ändern. Die meisten Browser tun genau dies, wodurch der Methodenwechsel zum De-facto-Standardverhalten geworden ist. Der Statuscode 308 wurde eigens geschaffen, um die Beibehaltung der Methode ohne Mehrdeutigkeit zu garantieren. Für APIs und moderne Anwendungen sollten Sie bei permanenten Weiterleitungen 308 bevorzugen, wenn die ursprüngliche Methode erhalten bleiben muss.

Halten Sie 301-Weiterleitungen mindestens ein Jahr lang aktiv, idealerweise dauerhaft. Google erkennt 301er schnell, die vollständige Übertragung der Signale dauert jedoch Wochen. Browser cachen 301-Antworten aggressiv auf Basis der Cache-Control-Direktiven. Ohne explizite Cache-Header bleibt die Weiterleitung unbegrenzt im Browser-Cache bestehen. Das Entfernen einer 301 auf Serverseite löscht zwischengespeicherte Weiterleitungen in Browsern nicht.

Hinweis

Verwenden Sie 301, wenn die alte URL dauerhaft keine Inhalte mehr ausliefern soll. Verwenden Sie rel=“canonical”, wenn beide URLs weiterhin Inhalte ausliefern, eine davon aber für die Indexierung bevorzugt wird. Eine 301 zwingt den gesamten Traffic auf die neue URL, während canonical lediglich ein Hinweis ist, dem Suchmaschinen folgen, ohne ihn zu erzwingen.

SEO-Auswirkung

Google wertet eine 301 als starkes Signal dafür, dass das Weiterleitungsziel die bevorzugte URL ist. Ranking-Signale gehen von der alten URL auf die neue über. Setzen Sie 301 für dauerhafte URL-Änderungen, Domain-Migrationen und HTTPS-Umstellungen ein. Google folgt bis zu 10 Weiterleitungssprüngen. Inhalte zwischengeschalteter Weiterleitungs-URLs werden ignoriert. Werden gelöschte URLs per 301 auf die Startseite oder eine allgemeine Kategorieseite weitergeleitet, erkennt Google dies als Soft 404.

Beispiel

Der Client fordert eine HTML-Ressource an. Der Server antwortet mit 301 Moved Permanently und gibt die neue URI im Location-Header an. Ein Nachrichtenrumpf empfiehlt, die Lesezeichen zu aktualisieren, moderne Browser leiten jedoch sofort weiter.

Anfrage

GET /news.html HTTP/1.1
Host: example.com

Antwort

HTTP/1.1 301 Moved Permanently
Location: http://example.com/feeds/news.html
Content-Type: text/html; charset=UTF-8
Content-Length: 150

<h1>The Newsfeed has moved</h1>
<body>
The newsfeed has moved permanently to
<a href=/feeds/news.html>here</a>.
Please update your bookmarks.
</body>

Code-Referenzen

.NET

HttpStatusCode.MovedPermanently

Rust

http::StatusCode::MOVED_PERMANENTLY

Rails

:moved_permanently

Go

http.StatusMovedPermanently

Symfony

Response::HTTP_MOVED_PERMANENTLY

Python3.5+

http.HTTPStatus.MOVED_PERMANENTLY

Java

java.net.HttpURLConnection.HTTP_MOVED_PERM

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_MOVED_PERMANENTLY

Angular

@angular/common/http/HttpStatusCode.MovedPermanently