|Is this a proper 404?|
I've created a custom 404 page. Not sure if it is a true 404
I'm on a shared server so I'm limited in creating custom 404 pages through their "Custom Error Pages" in the control panel of my host.
When I use a server header checker tool to validate here is what I get testing a missing page:
#1 Server Response: http://www.example.com/abc
HTTP Status Code: HTTP/1.1 200 OK
Last-Modified: Fri, 13 Oct 2006 22:40:17 GMT
Date: Sat, 14 Oct 2006 00:18:37 GMT
It's the '200 OK' that scares me. Is this a true 404?
[edited by: tedster at 1:51 am (utc) on Oct. 14, 2006]
[edit reason] use example.com [/edit]
You're right to be "scared". If the http header says "200" then it's a 200, and not a 404. You could be in duplicate (multi, multu duplicate) content land quickly.
My advice is to go back to the server default 404 as fast as you can, and then work things out with your host if they will accommodate.
I think most hosts have the .htaccess error code dynamically generated by the 'Control Panel' they run, which means:
1. They have to hand code the error line into the httpd.conf OR .htaccess.
(Doesn't happen with most.)
2. You have to set the .htaccess file up yourself.
If you have access:
ErrorDocument 404 /your-file.html
3. You have to find a work-around:
Servers do not send full headers to dynamic pages, so you should be able to set your custom error page to error.php, then use the php header() function to send a 'Page Not Found' 404 header, and finish loading your page.
(Always remember to 'NoIndex,NoFollow' any custom error page.)
In Apache, if you set the URL for the ErrorDocument as a full path with http:// on it then you never get a 404 response.
In Apache, make sure that the URL for the ErrorDocument is just a folder and file URL, like: /errors/error.404.html
The OP is using Windows/IIS and that often sends the wrong codes out. It is harder to set up than Apache.
Make sure you have meta robots noindex set up on all Custom Error Pages, but having nofollow too, is a bad idea in my opinion.
In my experience, a "custom 404" on Windows servers is implemented incorrectly MOST of the time, not just some of the time. The issues involved can be complex. For instance, in .NET the custom error may be returning a 302 status for incorrect .aspx urls even though IIS itself returns a correct 404 status for .asp extensions. Microsoft has really cooked up a witches brew here.
It is way beyond the scope of the Google forum to get into all that complication; best to take it to our IIS and ASP.NET Forum [webmasterworld.com]. But the message is clear, you should know exactly what you're aiming for --> a URL that does not exist should be returning a 404 [Not Found] or 410 [Gone] http header status.
If you use custom error handling on a Windows server, do not rest until you get this right.