Wer mit manuellen Fehlerseiten arbeitet hat vielleicht schon einmal folgende Fehlermeldung in den Google Webmastertools erhalten:
Wir haben festgestellt, dass Ihre Seite mit dem Fehler „404 (Datei wurde nicht gefunden)“ im Header den Status 200 (Erfolg) zurückgibt.
Google erwartet von Fehlerseiten einen 404 Status um zuordnen zu können, ob einen URL auf der Seite vorhanden ist oder nicht. Wird ein normaler Status (200) übermittelt ist der Bot verwirrt, denn er denkt in dem Fall die Seite würde existieren obwohl nur die Fehlerseite ausgeliefert wird.
In diesem Fall reicht es dem Header der Fehlerdatei einfach folgenden Code anzuhängen (über dem <head>-Bereich):
header("HTTP/1.0 404 Not Found");
Das Ganze muss natürlich noch in php-Tags eingefasst werden, dann wird der korrekte Status übermittelt.
Das habe ich vor kurzen auch gemacht, da Google bei mir über 10000 Seiten gespidert hat, die er nicht spidern sollte. Funktioniert sehr gut, allerdings dauert es etwas, bis die Seiten bei Google dann auch rausfallen …
Auch mit Deiner Header-Lösung habe ich bereits schlechte Erfahrungen gemacht. Scheinbar ignoriert Google diese Lösung von Zeit und Zeit und die gleiche Fehlermeldung taucht wieder auf.
Nach langem hin und her mit dieser Problematik habe ich mich gegen 404 Seiten entschieden und regle das mit einem php if 404 und header-location Startseite 301-Befehl.