It would seem that a 301 redirect is a good way to notify Google (etc) that a page has permenently moved. It also seems classically, that the 404 page not found error is evil and nasssty. Is there any merit then in converting all "bad" 404's into "good" 301's ?
301 is the Apache code for a redirect. This should be used if for some reason you have moved a page (maybe due to changing your file extensions, reorganising your directory structure etc.) 404 is the default error code for page not found. This would typically be given is a user entered an incorrect URL (eg. if they type www.yourdomain.com/indx.html - missing the 'e') You do not want the spiders, or users getting 404 responses if possible so if your logs are showing that there is a link somewhere pointing to a page that doesn't exist use a 301 to redirect them, or create a page in it's place. Hope that helps. Bill
btw, the 301 and all the codes are used on all servers (even windows! shock shock horror horror) Search engines like websites to be fully operational so if they (or a visitor) hit a page given a 404 server response code, it doesn't look good to the visitor so the search engines mark you down for a 'bad user experience'. so 301 redirect to a relevant page, don't just 301 redirect all 404 pages to the index page
You can check your status codes here: http://www.seoconsultants.com/tools/headers.asp They also have a good list of definitions for various codes. A 404 may be revisited, if you have truly taken down the content, use a 410. http://www.seoconsultants.com/tools/headers.asp#code-404