Welcome Ralph !
Personally, I'm not a big fan of META Refresh redirects. Leaves too much to chance. I'd much prefer using either server-side redirects, or if you need to assess some information first, a scripting solution that uses a 301 Permanent Redirect.
Can some sites get away with less than perfect solutions? Yes. Especially if they have links pointing to internal pages so that the spiders can find their way in.
Two of the three you mentioned above are using Server-side redirects. Incorrectly IMHO, though IBM's isn't a bad solution. Frankly, with what they're doing on the server-side redirects it would be as easy to do it correctly --with a 301-- as it is to do it incorrectly --with a 302. But they're so big and have enough backlinks pointing internally that they can kind of get away with it.
Let's take a look at what each is doing on their main domain name just for fun, compliments of WebBug.
First www.ibm.com:
HTTP/1.1 302 Found
Date: Mon, 14 Jun 2004 23:38:11 GMT
Server: IBM_HTTP_SERVER/1.3.26.3 Apache/1.3.26 (Unix)
Location: http://www.ibm.com/us/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
ca
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://www.ibm.com/us/">here</A>.<P>
</BODY></HTML>
Personally, I would use a 301 instead, but at least their server writes a good old plain A HREF link for spiders to follow.
Next up, www.jcpenney.com:
HTTP/1.1 302 Object moved
Location: http://www3.jcpenney.com/
All I can say to that one is ACK! FWIW, it looks like they're doing some load balancing because one time it will be www1, the next time www3, etc. Still, use a 301, not a 302!
Last up is www.sears.com:
HTTP/1.1 200 OK
Server: Netscape-Enterprise/4.1
Date: Mon, 14 Jun 2004 23:42:12 GMT
Content-type: text/html
Etag: "d88971ec-1-214-4098cd11"
Last-modified: Wed, 05 May 2004 11:16:33 GMT
Content-length: 532
Accept-ranges: bytes
Connection: close
<html>
<head>
<title>sears.com</title>
<META HTTP-EQUIV="Pragma" Content="no-cache">
<META HTTP-EQUIV="Expires" Content="-1">
<META HTTP-EQUIV="Cache-Control" Content="no-cache">
<script LANGUAGE="JavaScript">
var queryString = window.location.search;
if (queryString.indexOf("eid") > 0){
var indexPage = "/sr/entry.jsp";
newPage = indexPage + queryString;
}
else{
var indexPage = "/sr/index.jsp";
newPage = indexPage;
}
window.location = newPage;
</script>
</head>
</html>Now that's just silly! The main page returns a 200 OK code, then is relying on Javascript to do the forwarding to a new URL (/sr/index.jsp) which then sets a cookie. Try going to their main page without JS enabled and you'll get exactly nowhere.
Of the three choices, IBM's is the best, but it could be improved. If you want to see proof of how something like this can play havoc with a site, check out these "site:" commands on each domain.
IBMJC PenneySearsLook at all of those pages that can't be spidered on the latter two. Also look at the number of pages Google has indexed for each. You'll never convince me that JC Penney's site is only 400 pages. Or even that Sears only has 5,800 pages in their site.
IBM, while they're not doing it the way I would, are far, far better. Almost 70,000 pages indexed. I'd be willing to bet that the other two would be up in that range if they weren't making life so difficult for the spiders.