Moin!
Dadurch "entstehen" diese nicht vorhandenen Seiten praktisch, weil Spiderbots dem Redirect folgen, die "falsche" URL also nutzbaren Inhalt bieten.
ich verstehe leider nicht was du damit meinst.
Kannst du mit bitte erklären, warum ich bei Fehler 402-404 nicht die Home-URL einragen soll?
Ein HTTP-Client (darunter fallen Browser genauso wie Suchmaschinen-Spider) sendet einen Request an den Server und erhält als Antwort immer einen HTTP-Statuscode, der über den Erfolg oder Mißerfolg des Requests Auskunft gibt. Zusätzlich zu diesem Code können noch so praktische Dinge wie der Inhalt einer HTML-Datei an der Antwort dranhängen - das muß aber nicht so sein.
In jedem Fall ist aber der eventuell mitgelieferte Inhalt immer im Lichte des HTTP-Statuscodes zu betrachten. Vor allem von den Suchspidern, denn die haben keine menschliche Intelligenz und können nicht "raten, was wohl gemeint war", selbst wenn man es ihnen explizit mit menschlichen Worten in den Inhalt reinschreibt, der mitgeliefert wird.
Status 200 ist der häufigste Statuscode. Er signalisiert das erfolgreiche Ausliefern der angeforderten URL. Das gilt übrigens auch für alle anderen Statuscodes der Reihe 2xx.
Die Reihe 3xx signalisiert ebenfalls Erfolg, allerdings auf einer etwas anderen Ebene, denn es wird nicht der tatsächliche Inhalt mitgeliefert. Typische sind:
Status 304 signalisiert, dass der Cache des Clients noch korrekt aktuell ist.
Status 301 und 302 sagen, dass die URL existiert, aber (temporär oder dauerhaft) eine andere URL verwendet werden soll.
Die Statuscodes der Reihe 4xx signalisieren, dass ein Problem aufgetreten ist, dass dem Client (und nicht dem Server) in die Schuhe zu schieben ist. Der Klassiker hierbei ist Status 404: Ressource nicht gefunden. Aber auch Status 401 (Authentifizierung fehlt oder ist falsch) und 403 (Zugriff absichtlich verweigert) gehören dazu. Auch nicht verkehrt: Status 410 für "Ressource wurde absichtlich entfernt und ist jetzt weg".
Zum Schluß noch die Reihe 5xx: Das sind Probleme, deren Grund dem Server in die Schuhe zu schieben ist. Bekannt ist hier Status 500 "Internal Server Error" für alles mögliche, was schiefgelaufen sein könnte.
Der menschliche Nutzer vor seinem Browser bekommt von diesen Statuscodes nichts mit. Wenn Statuscodes mit anzeigbaren Seiten geliefert werden, wird die Seite angezeigt, der Statuscode verschwindet irgendwo intern im Browser und wird nicht genutzt. Dabei ist es egal, ob das nun ein Status 200, 304 oder 404 war: Allenfalls durch den Seiteninhalt kann man als Mensch erkennen, ob der Request so erfolgreich war, wie man es sich wünscht. Bei den Redirect-Statuscodes ist der Browser sogar so freundlich und lädt die in der Antwort angegebene neue Adresse direkt ohne Nachfrage beim User nach.
Der Suchspider sieht die Welt anders. Für ihn sind die ausgelieferten Inhalte irrelevant, die hat er lediglich dem Indexer zur Verarbeitung vorzulegen. Interessant sind für ihn aber die HTTP-Statuscodes, denn die sagen ihm, ob die gelieferten Inhalte nutzbar sind, oder nicht.
Alles, was mit Status 200 ausgeliefert wird, ist nutzbarer Inhalt, wird also indiziert.
Alles, was mit Status 4xx ausgeliefert wird, ist KEIN nutzbarer Inhalt, wird also nicht indiziert.
Alles, was mit Status 301/302 ausgeliefert wird, ist eine Weiterleitung, der der Spider folgen wird.
Deine Konfiguration sagt jetzt dem Webserver: Wenn ein Request reinkommt, der EIGENTLICH mit Status 404 zu beantworten wäre, dann liefere dem Client (Browser, Spider) NICHT den Status 404 aus, sondern gib ihm ein Redirect auf die Startseite.
Wenn der Spider jetzt also http://www.example.org/blafasel-gibtsnich.html anfordert, erhält er NICHT die Statusantwort "404", sondern eine Weiterleitung auf die Startseite http://www.example.org/. Dieser Weiterleitung folgt er und schickt einen NEUEN Request für die Startseite. Und da die Startseite existiert, wird sie mit Status 200 ausgeliefert und indiziert.
Das bedeutet für den Spider: Die eigentliche URL kann erfolgreich (allerdings mit einer Weiterleitungsbefolgung) abgerufen werden, sie existiert also. Er erfährt NICHT, dass die URL auf dem Server in Wirklichkeit nicht existiert und deshalb auch nicht indiziert werden sollte - oder dass sie, falls sie früher mal existierte, aus dem Index entfernt werden sollte.
Schlaue Suchmaschinenspider prüfen mittlerweile auf das 404-Verhalten der Webserver, weil es zu viele unwissende Admins gibt, die durch die ungewollte Konfiguration solcher Weiterleitungen den Detektionsmechanismus für "nicht (mehr) existierende Inhalte" in die Irre führen. Es ist aber trotzdem keine gute Idee, Status 404 durch eine Weiterleitung zu ersetzen.
- Sven Rautenberg
"Love your nation - respect the others."