Right now we have a site with a LOT of static asp pages such as, www.site.com/123.asp. This is due to how our current site's CMS builds it's pages by default. I don't have an exact count but we have roughly 6000 asp files in the site right now. We are in the middle of a redesign and restructuring of the site, and are looking to migrate to SEO friendly URLs. The problem we're having right now is what do we do to redirect the old pages to the new friendly URLs? I know how to do redirects that is not the issue here. The problems I am coming up with right now are listed below.
1 - Is there a limit to the number of redirects in IIS? 2 - Would having even a few thousand redirects affect IIS performance? 3 - My understanding is that we would not be passing along page rank to the new URLs, is that true? (not a major question I can ask on more SEO forums if nobody here is sure) 4 - Would using something like the IIS URL Rewrite 2 module for IIS 7 help us out? Or would I still need to define several thousand unique redirects in it?
Our server right now is running Server 2003, however in the redesign I would be open to migrating to Server 2008 R2 if there is a good case for it (i.e. the URL Rewrite module).
Thanks for any guidance or help. I have been looking for a good way to do this for a while now and keep coming up with things that sound problematic and bad (such as having 6000 redirects).
Ouch! You might consider making this data-driven - that's probably the approach I'd take. Assuming the new site/CMS will be done in ASP.NET, change the .asp file extension to be handled by ASP.NET instead, then either have a catch-all HTTP handler for *.asp, or catch 404 errors in Global.asax. From there, see if there's a redirect defined for the URL (put these in a database table or something, and optionally stuff them in ASP.NET's Cache object on the fly to cut down on repeated lookups) and spit out a 301 redirect if so. Otherwise just 404.
The Url Rewrite 2-module for IIS7 is very flexible and allows you to define redirect rules based on patterns and data sources.
You can specify a pattern and then have a defined "list" in an xml-file with mappings between different IDs if that is what you want. That means that you can do the following:
/system/somepage.asp?id=345
You know that 345 in the old system actually maps to 49287, so it rewrites it with a single rule (but with mapping from a list) to:
/newsystem/49287/se_friendly_dummy_page
You can read about it here:
http://learn.iis.net/page.aspx/469/using-rewrite-maps-in-url-rewrite-module/
I've done this with a map with over 2000 entries, and didn't find it to be slow at all. However, it wasn't 2000 rules, which might be a difference. In my case it was 3 rules, but with a map of 2000 entries.
You could however map the asp filenames in a map and probably use less rules for it.