Forum Moderators: Robert Charlton & goodroi
But I've used <meta> refreshes on several sites for this very purpose and it works just fine. Its very useful for people moving from a free hosting service to a conventional hosting package because free hosts rarely allow clients to work with .htaccess files.
For the past 3 or 4 years now, Google and Yahoo! (and perhaps MSN, but I haven't checked) have been treating <meta> refresh with a time setting of 0 as if they were 301 redirects. Before that, <meta> refreshes were used for SPAMming and were sometimes the cause of penalties, so you'll often see warnings about them on old pages.
Are you sure about that? I hate to sound dumb, but it certainly flies in the face of what I think is contemporary conventional wisdom.
[edited by: Go60Guy at 9:14 pm (utc) on Sep. 21, 2007]
A few months later tried it for myself on a throwaway site I had running on a free host. Everything went fine. Not a year later I had a client whose site runs on a IIs server who had created a bunch of new pages that were buried three directory levels too deep and had page names from hell. Since I know next to nothing about working on IIs servers, I rolled out the <meta> refreshes again. Old URLs faded and new URLs were picked up in short order. Since then, I've had many other people share similar experiences over on the Google newsgroups.
Somewhere along the line I confirmed that it worked for Yahoo! as well. When I do it, I make sure the timeout is set to 0, and the pages have a bare minimum of content - consisting mostly a clear, simple link to the new URL and a <h1> saying 'This Page Has Moved' so there's no doubt about the intent of the page or the <meta> tag, but I'm sure that's overkill now.
...conventional wisdom.
Go60 - Conventional wisdom definitely used to be that a meta refresh=0 was not treated as a 301. Yahoo announced a year or two ago that they'd changed their approach....
Yahoo Search Help
How does the Yahoo! Web Crawler handle redirects?
[help.yahoo.com...]
META Refresh: <meta http-equiv="refresh" content=...> is recognized as a 301 if it specifies little or no delay or as a 302 if it specifies noticeable delay.
I can't find any authoritative references about Google's approach, but chances are that it's similar. There's a discussion on Google Groups citing Adam Lasnik, which indicates a treatment similar to Yahoo's, but also suggesting that .htaccess 301s and 302s are preferable. I can't find confirmation of this elsewhere.
Just thinking out loud on this...
The possible doorway page abuse is minimized by treating the redirected page as the "old" page in a 301, as the onpage optimization on the old page wouldn't be seen. If a page on a host where you can't perform a 301 were meta refresh redirected to a copy of itself on your own host, though, there'd be no traditional doorway deception involved... and Google would be solving a problem for webmasters who've built up reputations on subdomains, eg, of domains that they don't control.
A 301 also avoids the (potential "hijacking") problems that would accompany treatment as a 302.
That said, I certainly wouldn't use a meta refresh instead of .htaccess if I had the choice.